К статье
Практический материал

Администрирование · 13 мин

Как перенести базу данных 1С на SQL-сервер

Подробная инструкция по переносу базы 1С из файлового режима на SQL Server: подготовка, выгрузка через конфигуратор, настройка СУБД и проверка результата.

Переход с файлового режима работы 1С на клиент-серверный вариант с SQL — стандартная задача при росте компании: увеличивается число пользователей, растёт объём данных, и файловая база начинает тормозить, падать с ошибками или блокироваться при одновременной работе. Перенос решает эти проблемы, но требует аккуратности: ошибка на этапе выгрузки или настройки сервера может привести к потере данных или простою учёта.

Суть переноса проста: данные из файловой базы выгружаются в специальный файл формата .dt, затем загружаются в новую пустую базу, созданную на сервере СУБД. Однако «под капотом» есть нюансы: выбор версии SQL Server, размещение базы, права доступа, настройки производительности. Ниже разобран весь процесс от подготовки до проверки результата.

Инструкция ориентирована на связку «1С:Предприятие 8.3 + Microsoft SQL Server» — самую распространённую комбинацию. Для PostgreSQL и других поддерживаемых СУБД общая логика та же, отличаются детали установки и настройки сервера.

Когда переход на SQL действительно нужен

Файловый режим 1С хорошо работает при небольшом числе пользователей и умеренном объёме данных. Типичные признаки того, что пора переходить на клиент-серверный вариант: база заметно замедлилась при одновременной работе нескольких сотрудников, периодически возникают ошибки «конфликт блокировок» или «файл базы данных повреждён», регламентные операции (проведение документов, закрытие месяца) занимают неприлично много времени.

SQL-вариант даёт несколько принципиальных преимуществ. Во-первых, надёжность: СУБД ведёт журнал транзакций, и при сбое сервера данные не повреждаются. Во-вторых, масштабируемость: серверная СУБД эффективнее обрабатывает параллельные запросы. В-третьих, возможности администрирования: регламентные задания выполняются на сервере без участия клиентских машин, доступны штатные средства резервного копирования СУБД.

При этом переход не бесплатен в обслуживании: требуется отдельный сервер (физический или виртуальный), лицензии на сервер 1С и СУБД (или использование бесплатной PostgreSQL), а также компетенции администратора. Для базы с двумя-тремя пользователями переход может быть экономически неоправдан.

БлокировкиОшибки конфликта блокировок

Возникают при одновременной работе пользователей

СкоростьМедленное проведение документов

Особенно заметно на больших объёмах данных

СбоиПовреждение файла базы

После обрыва сети или отключения питания

ПользователиБолее 5–10 активных

Файловый режим не рассчитан на интенсивную параллельную работу

Подготовка: резервная копия и проверка совместимости

Первое и непреложное правило: перед любыми манипуляциями сделайте полную копию исходной базы. Самый надёжный способ — скопировать файл 1Cv8.1CD из каталога файловой базы при отсутствии подключённых пользователей. Дополнительно сделайте выгрузку в .dt через конфигуратор — это второй, независимый уровень страховки.

Далее проверьте совместимость версий. Платформа 1С имеет требования к поддерживаемым версиям SQL Server — актуальный перечень указан в системных требованиях конкретного релиза платформы на портале 1С. Использование неподдерживаемой версии СУБД приводит к ошибкам при создании базы или нестабильной работе. Также убедитесь, что разрядность сервера 1С и клиентских компонент соответствует архитектуре системы.

Оцените размер исходной базы и заложите запас дискового пространства на сервере: файлы данных и журнала транзакций SQL Server в сумме обычно занимают заметно больше места, чем файл 1Cv8.1CD. Для загрузки .dt потребуется дополнительное свободное место и на сервере, и на машине, где выполняется загрузка.

Установка и настройка SQL Server и сервера 1С

На выделенном сервере установите SQL Server (подойдёт редакция Standard, а для небольших баз — Express с ограничением на размер базы и объём памяти; уточните актуальные лимиты в документации Microsoft). При установке выберите смешанный режим аутентификации или аутентификацию Windows — оба варианта поддерживаются платформой 1С.

Затем установите компоненты «Сервер 1С:Предприятия» и «Администрирование сервера 1С» с дистрибутива платформы. После установки запустите консоль управления серверами 1С, убедитесь, что кластер создан и работает агент сервера. Создайте на SQL Server отдельную учётную запись для 1С с правами на создание баз данных (роль dbcreator на этапе развёртывания).

Рекомендуемые базовые настройки SQL Server для 1С: установите ограничение максимального объёма памяти сервера (чтобы SQL не отнимал всю оперативную память у ОС и сервера 1С), включите автоматическое обновление статистики, убедитесь, что модель восстановления базы соответствует вашей политике резервного копирования. Для журнала транзакций в рабочей базе обычно используют полную модель восстановления с регулярным бэкапом журнала; на этапе первичной загрузки допустимо временно переключиться на простую модель, чтобы журнал не разросся.

Создание пустой базы на SQL Server

Новую информационную базу создают через консоль кластера серверов 1С. Откройте консоль, перейдите в раздел «Информационные базы» и создайте новую базу, указав: имя базы, тип СУБД (MS SQL Server), адрес сервера СУБД, имя создаваемой базы данных на SQL Server, учётные данные пользователя СУБД.

Обратите внимание на параметры создания: укажите смещение дат (обычно 2000), язык — русский. Флаг «Создать базу данных в случае её отсутствия» позволит серверу 1С самому создать базу на SQL Server. Блокировку регламентных заданий на этом этапе имеет смысл включить, чтобы после загрузки данных не запустились фоновые процессы до завершения настройки.

После создания база появится в списке, но будет пустой — без конфигурации и данных. Убедитесь, что база данных физически создана на SQL Server (это видно в SQL Server Management Studio), и файлы данных и журнала размещены на дисках с достаточным объёмом свободного места.

Выгрузка данных из файловой базы и загрузка в SQL

Откройте файловую базу в режиме конфигуратора при отсутствии активных сеансов пользователей. Перейдите в меню «Администрирование — Выгрузить информационную базу» и укажите путь для файла выгрузки с расширением .dt. Процесс может занять от нескольких минут до нескольких часов в зависимости от размера базы — не прерывайте его и обеспечьте стабильное питание и сеть.

Затем откройте в конфигураторе новую пустую базу на SQL Server (добавьте её в список баз через диалог запуска, выбрав вариант «На сервере 1С:Предприятия»). Выполните «Администрирование — Загрузить информационную базу» и укажите файл .dt. На вопрос о подключении к базе после загрузки ответьте утвердительно.

Загрузка обычно занимает больше времени, чем выгрузка: платформа создаёт структуру таблиц, индексы и переносит данные. Для больших баз имеет смысл выполнять загрузку с машины, расположенной в одной сети с сервером, чтобы исключить узкое место в виде медленного канала.

Порядок переноса базы на SQL
  1. 1
    Сделайте копию файла 1Cv8.1CD и контрольную выгрузку .dt
  2. 2
    Проверьте совместимость версий платформы и SQL Server
  3. 3
    Установите SQL Server и сервер 1С, создайте учётную запись для 1С
  4. 4
    Создайте пустую информационную базу в консоли кластера
  5. 5
    Выгрузите данные из файловой базы в файл .dt
  6. 6
    Загрузите .dt в новую базу на SQL Server
  7. 7
    Проверьте целостность данных и настройте регламентные задания
  8. 8
    Настройте план резервного копирования средствами СУБД
Выполняйте перенос в нерабочее время и зафиксируйте «точку отсечки»: после начала выгрузки пользователи не должны вносить данные в старую базу. Иначе документы, созданные во время переноса, придётся переносить вручную.
ПЗ
Практическое замечание

Проверка результата и настройка после переноса

После загрузки войдите в базу в режиме предприятия под учётной записью администратора. Проверьте ключевые показатели: откройте несколько типовых отчётов (оборотно-сальдовая ведомость, остатки склада, взаиморасчёты) и сравните итоги с данными файловой базы. Проверьте наличие справочников, документов за последние периоды, корректность прав пользователей.

Затем выполните тестирование и исправление уже на SQL-базе (в режиме, доступном для клиент-серверных баз) и обновите статистику/перестройте индексы средствами СУБД — это положительно влияет на производительность после массовой загрузки. Снимите блокировку регламентных заданий, проверьте, что они выполняются на сервере.

Настройте резервное копирование средствами SQL Server: полный бэкап ежедневно, бэкап журнала транзакций с интервалом, соответствующим допустимой потере данных. Помните: выгрузка .dt — это инструмент переноса и страховки, а не замена регулярным бэкапам СУБД.

Контрольные точки

Как проверить результат переноса

Итоги отчётов
Норма

ОСВ и остатки совпадают с файловой базой

Тревожный признак

Расхождения в суммах или отсутствие данных

Сеансы пользователей
Норма

Пользователи подключаются к серверной базе

Тревожный признак

Ошибки подключения, обращения к старой базе

Регламентные задания
Норма

Выполняются на сервере без ошибок

Тревожный признак

Задания заблокированы или падают с ошибками

Бэкап SQL
Норма

Тестовое восстановление проходит успешно

Тревожный признак

План обслуживания не настроен или завершается ошибкой

Типичные ошибки и ограничения

Частая ошибка — попытка перенести базу простым копированием файлов на SQL Server или «подключением» файла 1Cv8.1CD к СУБД. Это невозможно: файловый и клиент-серверный форматы хранения принципиально различны, перенос выполняется только через выгрузку/загрузку .dt или через механизмы обмена.

Вторая типичная проблема — нехватка ресурсов при загрузке: переполнение журнала транзакций, нехватка дискового пространства, тайм-ауты при медленной сети. Решения: временно переключить модель восстановления на простую, освободить место, выполнять загрузку локально на сервере или из той же сети.

Третья группа ошибок связана с правами: учётная запись 1С не имеет прав на создание базы, служба агента сервера 1С запущена под учётной записью без доступа к SQL Server, заблокированы порты кластера. Проверяйте права заранее и используйте осмысленные учётные записи, а не встроенные системные.

Типичные ошибки при переносе
01
Попытка переноса копированием файлов вместо выгрузки .dt — база не откроется на SQL
02
Перенос без резервной копии — при сбое данные теряются безвозвратно
03
Загрузка при переполненном диске журнала — обрыв процесса и недогруженная база
04
Забытая блокировка регламентных заданий — фоновые процессы запускаются до окончания настройки
05
Отсутствие плана бэкапа на SQL — новая база остаётся без защиты

Альтернативные варианты и частные случаи

Если Microsoft SQL Server недоступен по лицензионным соображениям, рассмотрите PostgreSQL в сборке, адаптированной для 1С, — платформа официально поддерживает эту СУБД. Общая схема переноса идентична: пустая база создаётся через консоль кластера, данные загружаются из .dt.

Для очень больших баз, где выгрузка/загрузка .dt занимает неприемлемо много времени, существуют альтернативные подходы: перенос через средства репликации СУБД с предварительным преобразованием (требует глубокой квалификации) или поэтапный переход с параллельной работой и свёрткой остатков. В типовых сценариях малого и среднего бизнеса стандартная выгрузка .dt остаётся оптимальным и поддерживаемым вендором способом.

Отдельный случай — перенос между разными СУБД (например, с SQL Server на PostgreSQL). Он также выполняется через .dt, поскольку формат выгрузки не зависит от используемой СУБД. Это же работает и в обратную сторону — для возврата в файловый режим.

Маршрут решения

Как выбрать подход

База до нескольких десятков гигабайт, есть окно простояСтандартная выгрузка .dt и загрузка в новую базу на SQL
Нет лицензии на MS SQL ServerИспользуйте PostgreSQL в сборке для 1С — схема переноса та же
База повреждена или есть ошибкиСначала тестирование и исправление в файловом режиме, потом перенос
Простой недопустим, база очень большаяРассмотрите поэтапный переход со свёрткой остатков с привлечением специалиста
Итог

Что важно запомнить

Перенос базы 1С на SQL выполняется только через выгрузку в .dt и загрузку в новую серверную базу. Обязательные условия успеха: резервная копия до начала работ, совместимые версии платформы и СУБД, достаточно дискового пространства, проверка итогов после загрузки и настроенный план резервного копирования на SQL Server.

Частые вопросы

Можно ли перенести базу на SQL без остановки работы пользователей?

Полностью без простоя обойтись сложно: на время выгрузки .dt пользователи должны выйти из базы, иначе данные будут несогласованными. Минимизировать простой можно, выполнив выгрузку в нерабочее время и заранее подготовив сервер и пустую базу.

Сколько времени занимает перенос базы на SQL?

Зависит от размера базы и производительности оборудования. Небольшие базы переносятся за десятки минут, крупные — за несколько часов. Загрузка .dt обычно длится дольше выгрузки, поэтому закладывайте запас времени и проведите тестовый перенос заранее.

Нужна ли отдельная лицензия 1С для работы с SQL?

Да, для клиент-серверного режима требуется лицензия на сервер 1С:Предприятия, а также клиентские лицензии на пользователей. Дополнительно учитывайте лицензирование самой СУБД, если используете коммерческий SQL Server.

Что делать, если загрузка .dt прервалась с ошибкой?

Не пытайтесь продолжить загрузку в ту же базу — она находится в неопределённом состоянии. Удалите базу данных на SQL Server, устраните причину сбоя (место на диске, права, тайм-ауты), создайте базу заново и повторите загрузку с начала.

Можно ли вернуться с SQL обратно в файловый режим?

Да, обратный перенос выполняется тем же способом: выгрузка базы из серверного варианта в файл .dt и загрузка в новую файловую базу. Учтите, что при большом объёме данных файловый режим снова упрётся в ограничения производительности.

Теряются ли настройки пользователей и права при переносе?

Нет, файл .dt содержит полную информационную базу, включая пользователей, роли и настройки. После загрузки проверьте, что список пользователей и их права соответствуют исходной базе, и при необходимости обновите пароли.