Администрирование · 9 мин
Как перевести файловую базу 1С на SQL-сервер
Как перевести файловую базу 1С на SQL Server: выгрузка DT, создание базы, загрузка, настройка прав и проверка результата. Пошаговая инструкция.
Переход с файлового режима работы 1С на клиент-серверный (SQL) — стандартная задача при росте числа пользователей и объёма данных. Файловая база хранится в одном файле 1Cv8.1CD и при одновременной работе более 5–10 пользователей начинает тормозить, а риск повреждения файла растёт. SQL-вариант переносит хранение данных на сервер СУБД (обычно Microsoft SQL Server или PostgreSQL), что снимает эти ограничения.
Сам переход технически прост: данные выгружаются из файловой базы в файл выгрузки (.dt), затем загружаются в новую базу, созданную на SQL-сервере. Конфигурация, справочники, документы и регистры переносятся полностью — дорабатывать прикладное решение не требуется, если оно не содержит кода, жёстко привязанного к файловому режиму.
Основные сложности — не в самой выгрузке, а в подготовке: нужно корректно установить и настроить СУБД, выдать права, убедиться, что версия платформы 1С совместима с версией SQL Server, и правильно организовать переключение пользователей. Ниже разобран весь процесс по шагам.
Когда переход на SQL действительно нужен
Файловый режим корректно работает при небольшом числе одновременных пользователей и умеренном объёме базы. Тревожные признаки, указывающие на необходимость перехода: заметные паузы при проведении документов, ошибки блокировок, рост файла 1Cv8.1CD сверх нескольких гигабайт, регулярные сбои при одновременной работе.
Также SQL-режим нужен, если требуется регламентное резервное копирование средствами СУБД, разграничение прав на уровне сервера, работа через веб-сервер с большой нагрузкой или интеграция с внешними системами напрямую на уровне данных (через представления и выборки).
Как выбрать действие
Что подготовить перед миграцией
Понадобится: установленный и настроенный сервер 1С:Предприятия, СУБД (Microsoft SQL Server, PostgreSQL с патчами для 1С или другая поддерживаемая), учётная запись с правами на создание баз данных, а также свободное дисковое пространство — файл выгрузки и новая база потребуют места, сопоставимого с размером исходной базы.
Проверьте совместимость версий: платформа 1С поддерживает определённые версии SQL Server, и этот список указан в системных требованиях конкретного релиза платформы. Использование неподдерживаемой версии СУБД приводит к ошибкам при создании базы или нестабильной работе.
Обязательно сделайте полную резервную копию файловой базы до начала работ. Самый надёжный способ — скопировать каталог базы целиком при остановленной работе пользователей, а не только выгрузку .dt.
Шаг 1. Выгрузка файловой базы в .dt
Откройте файловую базу в режиме конфигуратора под пользователем с полными правами. Перейдите в меню «Администрирование» → «Выгрузить информационную базу» и укажите путь для сохранения файла .dt. Для больших баз процесс занимает продолжительное время — не прерывайте его.
Файл .dt содержит полный слепок базы: конфигурацию, данные, настройки, пользователей. Именно этот формат используется как транспорт между файловым и клиент-серверным режимами, потому что структура таблиц SQL создаётся платформой автоматически при загрузке.
Шаг 2. Настройка SQL Server и создание базы
На сервере СУБД создайте учётную запись, под которой сервер 1С будет обращаться к базе. Для MS SQL Server обычно используют отдельный логин с правами на создание и владение базой данных. Сама база данных на SQL Server создаётся автоматически — вручную создавать таблицы не нужно и не следует.
Откройте консоль управления сервером 1С (оснастка «Центральные серверы 1С:Предприятия»), создайте новую информационную базу: укажите имя, тип СУБД, имя сервера баз данных, имя создаваемой базы и учётные данные. Флаг «Создать базу данных в случае её отсутствия» позволит платформе самой создать пустую базу на SQL Server.
Шаг 3. Загрузка данных и проверка результата
Добавьте новую клиент-серверную базу в список баз на рабочем месте (или через общий список bases.v8i), откройте её в конфигураторе и выполните «Администрирование» → «Загрузить информационную базу», указав файл .dt. После загрузки платформа может предложить выполнить реструктуризацию — согласитесь.
После загрузки проверьте ключевые сценарии: вход под типовыми пользователями, открытие и проведение документов, формирование основных отчётов, работу обменов и регламентных заданий. Убедитесь, что список пользователей и их права перенеслись корректно.
Как проверить результат
Все пользователи заходят со своими паролями, права соответствуют ролям
Пользователи отсутствуют в списке или получают ошибки доступа
Документы проводятся без ошибок блокировок и ссылочной целостности
Ошибки «объект не найден», битые ссылки, сбои проведения
Обороты и остатки совпадают с файловой копией на дату миграции
Расхождения в итогах регистров
Задания выполняются на сервере по расписанию
Задания не стартуют или падают с ошибками в журнале
Типичные ошибки и ограничения
Частая ошибка — попытка перенести базу копированием файла 1Cv8.1CD на сервер SQL. Это бессмысленно: SQL Server не работает с форматом 1CD, перенос возможен только через выгрузку/загрузку .dt или через публикацию обмена. Другая распространённая проблема — недостаток прав учётной записи СУБД, из-за чего создание базы завершается ошибкой.
Учтите ограничения: в клиент-серверном режиме некоторые операции выполняются на сервере, поэтому пути к файлам в коде конфигурации должны быть доступны с сервера, а не с клиентских машин. Если конфигурация использует локальные пути (например, C:\ для обменов), их потребуется перенастроить на сетевые ресурсы.
Альтернативы и обратный переход
Если полноценный SQL Server недоступен, рассмотрите PostgreSQL со сборками, адаптированными для 1С, — это поддерживаемый вариант, снижающий затраты на лицензии СУБД. Для небольших компаний альтернативой может быть работа через веб-сервер с файловой базой, но это не снимает ограничений файлового режима по нагрузке.
Обратный переход (из SQL в файловый режим) выполняется симметрично: выгрузка .dt из клиент-серверной базы и загрузка в файловую. Это удобно для создания локальных копий для разработки и тестирования.
Что важно запомнить
Переход выполняется через выгрузку .dt и загрузку в базу, созданную на SQL Server средствами платформы. Критичны три вещи: резервная копия до начала, совместимость версий платформы и СУБД, проверка пользователей, документов и отчётов после загрузки. Структуру базы в SQL вручную не трогают.
Частые вопросы
Можно ли перенести базу на SQL без выгрузки .dt, напрямую?
Нет. Формат файловой базы (1Cv8.1CD) несовместим с СУБД на уровне хранения. Единственный штатный способ — выгрузка в .dt и загрузка в клиент-серверную базу. Альтернатива для больших баз — выгрузка через механизмы обмена, но это дольше и сложнее.
Сколько времени занимает миграция?
Зависит от размера базы и производительности дисков. Небольшая база выгружается и загружается за десятки минут, база в десятки гигабайт может потребовать нескольких часов на каждый этап. Планируйте миграцию на нерабочее время с запасом.
Потеряются ли пользователи и права при переходе?
Нет, список пользователей и их роли хранятся внутри информационной базы и переносятся вместе с выгрузкой .dt. Однако если использовалась аутентификация операционной системы, привязки к учётным записям Windows нужно проверить отдельно.
Нужно ли дорабатывать конфигурацию под SQL?
Обычно нет — типовые конфигурации работают в обоих режимах без изменений. Доработки могут понадобиться, если в коде есть обращения к локальным файлам, COM-объекты, запускаемые на клиенте, или прямые вызовы, рассчитанные на файловый режим.
Что делать, если при загрузке .dt возникла ошибка?
Проверьте журнал регистрации и технологический журнал сервера 1С: типичные причины — нехватка места на диске СУБД, недостаток прав учётной записи, повреждение файла выгрузки. Повторите выгрузку .dt из исходной базы и загрузку заново, исходная файловая база при этом остаётся нетронутой.
Можно ли держать одновременно файловую и SQL-копию?
Да, это удобно для тестирования: загрузите .dt в SQL-базу, а файловую оставьте как эталон. Но не работайте в обеих базах параллельно в боевом режиме — данные разойдутся, и объединить их штатными средствами будет нельзя.