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

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

Как загрузить базу 1С в SQL Server

Как загрузить базу 1С в SQL Server: создание базы через консоль кластера, загрузка DT-файла, права, collation и проверка результата. Пошаговая инструкция.

Загрузка базы 1С в SQL Server — стандартная задача при переходе с файлового режима на клиент-серверный, при переносе базы на новый сервер или при развёртывании копии для тестирования. Процедура состоит из двух этапов: регистрации пустой базы в консоли кластера серверов 1С (или создании базы средствами конфигуратора) и загрузки в неё данных из выгрузки в формате .dt.

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

Ниже разобран полный цикл: подготовка сервера, создание базы, загрузка данных, настройка прав и типичные ошибки. Инструкция применима к связке «1С:Предприятие 8.3 + Microsoft SQL Server» вне зависимости от конкретной конфигурации — УТ, ERP, Бухгалтерия или ЗУП переносятся одинаково.

Что понадобится перед началом работы

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

Учётная запись, от имени которой сервер 1С подключается к SQL Server, должна иметь право создавать базы данных (роль dbcreator или sysadmin на время развёртывания). После создания базы ей достаточно роли db_owner на конкретную базу. Использовать для постоянной работы учётную запись sa — плохая практика.

Файл выгрузкиАктуальный .dt

Свежесть выгрузки и достаточно ли места на диске (файл может быть большим)

SQL ServerСлужба запущена

Служба SQL Server работает, экземпляр доступен по сети

Праваdbcreator или sysadmin

Учётная запись сервера 1С может создавать базы данных

Место на дискеЗапас 2–3 объёма базы

SQL Server при загрузке создаёт данные и журнал транзакций

Подготовка SQL Server: collation и параметры

Критичный параметр — collation (параметры сортировки) экземпляра SQL Server. Для баз 1С требуется Cyrillic_General_CI_AS. Если экземпляр установлен с другой collation, база создастся, но поиск и сортировка строк будут работать некорректно, а часть операций может завершаться ошибками. Проверить collation можно в свойствах сервера в SQL Server Management Studio.

Также убедитесь, что на дисках достаточно места: при загрузке .dt платформа создаёт файлы данных и журнал транзакций, суммарный размер которых сопоставим с размером исходной базы, а в пике — больше. Рекомендуется заранее задать модель восстановления: для рабочих баз — Full с регулярным бэкапом журнала, для тестовых копий достаточно Simple, иначе журнал быстро разрастётся.

Создание пустой базы через консоль кластера 1С

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

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

Порядок создания базы
  1. 1
    Откройте консоль кластера 1С и перейдите в ветку «Информационные базы»
  2. 2
    Выберите «Создать» → «Информационная база» и заполните параметры подключения к SQL Server
  3. 3
    Установите флажок «Создать базу данных в случае её отсутствия» и включите блокировку регламентных заданий
  4. 4
    Нажмите «ОК» и убедитесь, что база появилась и в консоли кластера, и в списке баз в SQL Server Management Studio

Загрузка данных из файла .dt

Добавьте созданную базу в список информационных баз на клиенте 1С и откройте её в режиме «Конфигуратор». Платформа предложит создать структуру — согласитесь. Затем выберите «Администрирование» → «Загрузить информационную базу» и укажите путь к файлу .dt. Процесс может занять от нескольких минут до нескольких часов в зависимости от размера базы.

Во время загрузки не прерывайте сеанс и не перезагружайте серверы. Если загрузка оборвётся, база на SQL Server окажется в неопределённом состоянии — её проще удалить и создать заново, чем пытаться восстановить. После завершения загрузки платформа может запросить реструктуризацию — это нормально, нужно принять изменения.

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

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

Затем выполните обновление статистики и перестройте индексы на SQL Server — свежезагруженная база часто работает медленно, пока оптимизатор не получит актуальную статистику. После проверки снимите блокировку регламентных заданий и настройте план обслуживания: резервное копирование, обновление статистики, контроль размера журнала транзакций.

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

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

База открывается в режиме «Предприятие»
Норма

Вход под пользователем проходит, интерфейс загружается

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

Ошибка подключения к SQL Server или отсутствие пользователей

Контрольные итоги
Норма

Остатки и обороты совпадают с исходной базой

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

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

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

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

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

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

Скорость работы
Норма

Формы и отчёты открываются без длительных пауз

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

Выраженные тормоза — проверьте статистику и индексы

Типичные ошибки и их причины

Самая частая проблема — ошибка создания базы из-за недостатка прав: консоль кластера сообщает, что не удалось создать базу данных на SQL Server. Решение — выдать учётной записи сервера 1С роль dbcreator. Вторая распространённая ошибка — неверное имя экземпляра: если SQL Server установлен как именованный экземпляр, его нужно указывать в формате «СЕРВЕР\ИМЯ».

Ещё одна группа проблем связана с памятью и временем ожидания при загрузке больших баз: обрывы соединения, тайм-ауты. В таких случаях помогает загрузка с сервера, расположенного рядом с SQL Server, и временное увеличение тайм-аутов. Также проверьте, что антивирус не сканирует каталоги данных SQL Server — это типичная причина медленной загрузки.

Типичные ошибки
01
Попытка перенести базу файлами MDF/LDF через Attach — 1С такую базу не увидит, перенос выполняется только через .dt
02
Работа под учётной записью sa или с правами sysadmin в постоянном режиме — риск безопасности, достаточно db_owner на конкретную базу
03
Забытый флажок блокировки регламентных заданий — фоновые задачи запускаются в ещё не догруженной базе и падают с ошибками
04
Отсутствие резервной копии исходной базы перед переносом — при сбое загрузки нет точки отката

Альтернативные способы развёртывания

Если база очень большая и загрузка .dt занимает неприемлемо много времени, есть обходной путь: развернуть на SQL Server резервную копию уже существующей серверной базы (backup/restore средствами SQL Server), а затем зарегистрировать её в консоли кластера без флажка создания базы. Этот способ подходит при переносе между серверами SQL, но не при переходе с файлового режима.

Для подготовки тестовых копий рабочей базы именно backup/restore — самый быстрый вариант: восстанавливаете копию под новым именем, регистрируете в кластере и включаете блокировку регламентных заданий, чтобы копия не отправляла реальные письма и обмены.

Сравнение способов переноса

Выгрузка/загрузка .dt

Универсальный способ, работает из файлового режима и между разными версиями платформы. Медленный на больших базах.

Backup/restore на SQL Server

Быстро даже для больших баз, но подходит только при переносе между серверами SQL и требует прав администратора СУБД.

Итог

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

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

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

Можно ли загрузить базу 1С в SQL Server Express?

Да, технически это работает, и для небольших баз такой вариант применяют. Но у Express-версии есть ограничения по размеру базы и используемой памяти, поэтому для рабочих баз среднего и крупного размера она не подходит. Проверьте актуальные лимиты вашей версии SQL Server Express перед развёртыванием.

Чем отличается файл .dt от резервной копии SQL Server?

Файл .dt — это выгрузка информационной базы средствами платформы 1С: он содержит данные и конфигурацию в формате 1С и не зависит от СУБД. Резервная копия SQL Server (.bak) — это копия базы на уровне СУБД. Для переноса между файловым и серверным режимом подходит только .dt.

Загрузка .dt прервалась на середине. Что делать?

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

Нужно ли устанавливать SQL Server и сервер 1С на один компьютер?

Не обязательно. Для небольших внедрений совмещение допустимо и упрощает настройку, но при росте нагрузки серверы разносят, чтобы СУБД и кластер 1С не конкурировали за память и процессор. В обоих случаях важно, чтобы между ними была стабильная сеть.

Почему после загрузки база работает медленно?

Свежезагруженная база не имеет актуальной статистики, а индексы могут быть фрагментированы. Выполните обновление статистики и перестройку индексов средствами SQL Server, проверьте, что антивирус исключает каталоги данных, и убедитесь, что серверу выделено достаточно оперативной памяти.