Администрирование · 11 мин
Как перенести файловую базу 1С на SQL
Как перенести файловую базу 1С на SQL Server: подготовка, выгрузка dt, создание базы на сервере, настройка прав и проверка результата. Частые ошибки и FAQ.
Файловый режим работы 1С удобен для небольших баз с несколькими пользователями, но по мере роста объёма данных и числа одновременных подключений он становится источником проблем: замедляется проведение документов, возникают блокировки и ошибки доступа к файлам. Перенос базы на клиент-серверный вариант с СУБД (чаще всего Microsoft SQL Server или PostgreSQL) снимает эти ограничения и открывает доступ к нормальным средствам резервного копирования и администрирования.
Перенос сводится к трём этапам: выгрузке данных из файловой базы в файл формата dt, развёртыванию пустой базы на SQL-сервере и загрузке в неё данных. Сама процедура несложная, но требует подготовки: нужно правильно установить и настроить СУБД, выдать права, выбрать подходящий момент для остановки работы пользователей.
Ниже разобраны все шаги с проверками результата, типичными ошибками и ограничениями, о которых стоит знать до начала работы.
Когда перенос на SQL действительно нужен
Не каждая база требует клиент-серверного режима. Файловая база адекватно работает при небольшом объёме данных и нескольких одновременных пользователях. Переход на SQL оправдан, когда база заметно выросла, пользователей больше десятка, а работу сопровождают регулярные конфликты блокировок, долгое проведение документов и ошибки «файл базы данных повреждён или занят».
Дополнительные аргументы в пользу SQL: необходимость регламентных заданий без открытого сеанса, требования к отказоустойчивости, разграничение прав на уровне СУБД и штатные средства резервного копирования. Если база небольшая и жалоб нет — перенос можно отложить, он не даст заметного выигрыша.
Как выбрать действие
Подготовка: что проверить до начала переноса
Первое и главное правило — сделайте резервную копию файловой базы. Минимально достаточно скопировать файл 1Cv8.1CD при остановленной работе всех пользователей, но надёжнее выполнить выгрузку в dt через конфигуратор. Обе копии сохраните на отдельном носителе или сетевом ресурсе.
Далее проверьте версию платформы 1С: она должна быть совместима с выбранной СУБД. Для Microsoft SQL Server убедитесь, что его редакция и версия поддерживаются используемой версией платформы — эта информация есть в системных требованиях на портале 1С. Проверьте свободное место на дисках сервера: база на SQL после загрузки обычно занимает больше места, чем файл 1CD, плюс потребуется пространство под журнал транзакций и временные файлы.
Согласуйте с пользователями окно для переноса: на время выгрузки и загрузки работа в базе должна быть полностью прекращена, иначе часть данных будет потеряна. Для больших баз выгрузка и загрузка могут занять часы — закладывайте это время в план.
Выгрузка базы в файл dt
Запустите конфигуратор от имени администратора базы и откройте файловую базу. Убедитесь, что кроме вас в базе нет активных сеансов: пункт меню «Администрирование — Активные пользователи» покажет текущие подключения. Завершите чужие сеансы при необходимости.
Выполните выгрузку: меню «Администрирование — Выгрузить информационную базу». Укажите путь и имя файла с расширением dt. Выгрузку лучше сохранять на локальный диск с достаточным свободным местом, а не на сетевую папку — так быстрее и надёжнее. Дождитесь сообщения об успешном завершении.
После выгрузки рекомендуется сразу проверить целостность файла: размер должен быть сопоставим с размером исходной базы (обычно 30–70% от него, так как данные сжимаются). Для больших баз полезно выполнить тестовую загрузку в пустую файловую базу — это подтвердит, что файл dt читается корректно, до начала работ с сервером.
- 1Завершите все сеансы пользователей в базе
- 2Откройте базу в конфигураторе под администратором
- 3Выберите «Администрирование — Выгрузить информационную базу»
- 4Укажите локальный путь для файла dt
- 5Дождитесь сообщения об успешной выгрузке
- 6Проверьте размер файла и при возможности сделайте тестовую загрузку
Подготовка SQL-сервера и создание пустой базы
На сервере должна быть установлена СУБД и, при использовании кластера 1С, сервер 1С:Предприятия той же версии платформы. Учётная запись, от имени которой работает сервер 1С (или пользователь, указанный при создании базы), должна иметь права на создание баз данных в СУБД и полные права на создаваемую базу.
Для Microsoft SQL Server обратите внимание на несколько настроек. Модель восстановления для новой базы часто ставят Simple, чтобы журнал транзакций не разрастался, — но при этом пропадает возможность восстановления на произвольный момент времени, поэтому выбор зависит от вашей политики резервного копирования. Проверьте, что служба SQL Server Browser и доступ по TCP/IP включены, если сервер 1С и СУБД находятся на разных машинах.
Создать пустую базу проще всего через консоль кластера серверов 1С (оснастка «Серверы 1С»): добавьте новую информационную базу, укажите тип СУБД, имя сервера баз данных, имя базы и учётные данные. При этом флажок «Создать базу данных в случае её отсутствия» создаст пустую БД на сервере автоматически. Альтернатива — запуск конфигуратора с параметром создания базы, но консоль нагляднее.
Загрузка данных и подключение пользователей
Откройте созданную пустую базу в конфигураторе — при первом входе платформа спросит подтверждение. Затем выполните «Администрирование — Загрузить информационную базу» и укажите ранее выгруженный файл dt. Загрузка большой базы может занять продолжительное время, не прерывайте процесс.
После загрузки выполните тестирование и исправление базы уже в клиент-серверном режиме: хотя бы проверку логической целостности. Это выявит проблемы, которые могли не проявляться в файловом варианте. Затем запустите базу в режиме предприятия, проверьте работу ключевых документов, отчётов и обменов.
Пользователям нужно обновить список баз: старый путь к файловой базе заменяется на подключение через сервер 1С (указывается имя сервера кластера и имя информационной базы). Если база публиковалась через веб-сервер — обновите публикацию. Старую файловую базу не удаляйте сразу: оставьте её в архиве как резервную копию на переходный период.
Как проверить результат
Сообщение об успешной загрузке без ошибок в журнале
Обрыв процесса, ошибки в окне сообщений
База открывается, справочники и документы на месте
Ошибки доступа или пустые списки
Документ проводится, отчёт формируется корректно
Ошибки СУБД, таймауты, неверные итоги
Все сеансы устанавливаются через сервер 1С
Ошибка «информационная база не обнаружена»
Типичные ошибки при переносе
Одна из самых частых проблем — недостаток прав учётной записи на SQL-сервере: база не создаётся или платформа не может к ней подключиться. Вторая — несовпадение разрядности или версии компонентов: сервер 1С, СУБД и клиентские драйверы должны быть совместимы. Третья — попытка загрузить dt, выгруженный более новой версией платформы, в базу на старой версии: такая загрузка невозможна.
Отдельная группа ошибок связана с производительностью после переноса: если база на SQL работает медленнее файловой, чаще всего виноваты не настроенные параметры СУБД, нехватка оперативной памяти на сервере или размещение базы и журнала на одном медленном диске. Перенос сам по себе не ускоряет работу — он снимает ограничения файлового режима, а за скорость отвечает грамотная настройка сервера.
Ограничения и альтернативные варианты
Способ «выгрузка в dt — загрузка на сервер» является штатным и единственным официально поддерживаемым для смены режима работы. Прямое копирование файла 1CD на SQL-сервер невозможно — форматы хранения принципиально разные. Сторонние инструменты прямой перекачки данных между СУБД существуют, но не поддерживаются вендором и рискованны.
Из ограничений стоит помнить: файл dt не переносит настройки кластера, публикации и регламентные задания на уровне сервера — их нужно настраивать заново. Пользователи и их права внутри базы переносятся, но аутентификацию операционной системы, возможно, придётся перенастроить.
Если полноценный SQL-сервер недоступен, промежуточными вариантами остаются файловый режим через веб-сервер (снимает часть проблем с блокировками при сетевом доступе) и PostgreSQL как бесплатная альтернатива Microsoft SQL Server — платформа 1С поддерживает обе СУБД, но для PostgreSQL нужна специальная сборка от вендора или совместимая версия.
Сравнение вариантов СУБД
Штатный и наиболее распространённый вариант, удобные средства администрирования; требует лицензий на сервер и доступ
Бесплатная СУБД, поддерживается платформой; требует совместимую сборку и более внимательной настройки
Не требует СУБД вообще, снимает часть проблем сетевого доступа; ограничения файлового режима сохраняются
Планируйте перенос на выходные или ночь и сначала отрепетируйте его на копии: замерьте время выгрузки и загрузки, чтобы реальное окно простоя не стало сюрпризом. База в 20–30 ГБ может загружаться на сервер несколько часов.
Частые вопросы о переносе базы 1С на SQL
Можно ли перенести базу на SQL без остановки работы пользователей?
Нет. Выгрузка в dt фиксирует состояние базы на момент начала выгрузки, поэтому все изменения, сделанные во время переноса, будут потеряны. Работу нужно остановить на всё время выгрузки, загрузки и проверки.
Переносятся ли пользователи и их пароли при загрузке dt?
Да, список пользователей, их права и пароли хранятся внутри информационной базы и переносятся вместе с данными. Но если использовалась аутентификация операционной системы, привязку к доменным учётным записям может потребоваться настроить заново.
Почему база на SQL занимает больше места, чем файл 1CD?
Файл 1CD хранит данные в сжатом виде, а СУБД дополнительно создаёт индексы, служебные структуры и журнал транзакций. Заранее заложите запас дискового пространства — ориентировочно в полтора-два раза больше размера исходного файла.
Можно ли вернуться с SQL обратно на файловый режим?
Да, процедура обратимая: выгрузите базу из клиент-серверного варианта в dt и загрузите её в новую файловую базу. Все данные переносятся, так как формат выгрузки не зависит от режима работы.
Ускорит ли перенос на SQL работу базы автоматически?
Не обязательно. Клиент-серверный режим снимает ограничения файлового доступа и устраняет конфликты блокировок, но итоговая скорость зависит от настройки СУБД, ресурсов сервера и качества конфигурации. На слабом сервере база может работать даже медленнее.
Нужно ли обновлять платформу перед переносом?
Специально — нет, но версия платформы на сервере 1С должна быть не ниже той, на которой выгружался файл dt. Если планировалось обновление платформы, удобно совместить его с переносом, чтобы не останавливать работу дважды.
Что важно запомнить
Перенос файловой базы 1С на SQL выполняется через выгрузку в dt и загрузку в базу, созданную на сервере СУБД. Обязательны резервная копия, остановка работы пользователей, проверка прав на сервере и контроль результата после загрузки. Старую файловую базу сохраняйте как архив до полного перехода.