Администрирование · 10 мин
Как залить базу в 1С на SQL Server
Как загрузить базу 1С на SQL Server: создание базы через консоль кластера, загрузка dt-файла, настройка прав, проверка результата и типичные ошибки.
Переход с файлового варианта 1С на клиент-серверный начинается с одной операции — загрузки базы данных на SQL Server. Сама процедура занимает от получаса до нескольких часов в зависимости от объёма данных, но ошибки в ней дорого обходятся: от невозможности запустить базу до потери данных при неправильно выбранной модели восстановления. Поэтому порядок действий важно соблюсти от подготовки до проверки.
Существует два рабочих способа залить базу: выгрузить данные из файловой базы в формате .dt через конфигуратор и загрузить в новую SQL-базу, либо развернуть резервную копию средствами самого SQL Server и привязать её к серверу 1С. Первый способ универсален и безопаснее, второй быстрее на больших базах. Ниже разобраны оба, а также настройка прав, проверка результата и типичные ошибки.
Что подготовить перед загрузкой базы
До начала работы проверьте, что сервер 1С:Предприятия установлен, служба агента сервера запущена, а SQL Server доступен по сети с машины, где работает кластер. На SQL Server должна быть учётная запись с правами на создание баз данных (роль dbcreator или sysadmin) — именно под ней сервер 1С будет создавать и обслуживать базу.
Убедитесь в совместимости версий: платформа 1С на сервере должна быть не старше той, под которой работала исходная база, иначе загруженную базу придётся конвертировать, а откат назад станет невозможен. Для способа с .dt-файлом дополнительно нужна клиентская машина с конфигуратором и достаточным объёмом диска — выгрузка крупной базы может занять десятки гигабайт.
Способ с .dt подходит без ограничений, загрузка займёт разумное время
Выгрузка в .dt идёт часами и требует много памяти — рассмотрите перенос через бэкап SQL
База не откроется без конвертации, обновите платформу на сервере заранее
Создание базы невозможно — запросите роль dbcreator у администратора СУБД
Способ 1: загрузка через выгрузку в .dt
Это стандартный и самый контролируемый путь. Сначала откройте исходную файловую базу в конфигураторе под пользователем с полными правами и выполните «Администрирование → Выгрузить информационную базу», указав файл с расширением .dt. Перед выгрузкой убедитесь, что в базе не работают пользователи — конфигуратор потребует монопольного доступа.
Далее создайте пустую базу на сервере. Откройте консоль кластера серверов 1С, выберите кластер, ветку «Информационные базы» и создайте новую базу: укажите имя, тип СУБД (MS SQL Server), адрес сервера баз данных, имя создаваемой базы и учётные данные для доступа к SQL Server. При создании оставьте флаг «Создать базу данных в случае её отсутствия» включённым, а флаг блокировки регламентных заданий на время загрузки лучше установить.
После создания пустой базы откройте её в конфигураторе и выполните «Администрирование → Загрузить информационную базу», выбрав ранее созданный .dt-файл. Процесс идёт в один поток и на больших базах занимает часы — не прерывайте его и не выключайте клиентскую машину. По завершении конфигуратор может предложить реструктуризацию — соглашайтесь.
- 1Завершите работу пользователей в исходной базе и сделайте резервную копию
- 2В конфигураторе исходной базы выполните выгрузку в файл .dt
- 3В консоли кластера серверов 1С создайте новую пустую информационную базу с типом MS SQL Server
- 4Откройте новую базу в конфигураторе и выполните загрузку из .dt
- 5Дождитесь завершения, согласитесь на реструктуризацию при запросе
- 6Запустите базу в режиме предприятия и проверьте открытие основных разделов
- 7Включите блокировку регламентных заданий на время первых проверок, затем снимите
Способ 2: восстановление бэкапа средствами SQL Server
Если исходная база уже работает на SQL Server (например, вы переносите её на новое оборудование), быстрее скопировать её штатными средствами СУБД. Сделайте полную резервную копию через SQL Server Management Studio: правый клик по базе → «Задачи» → «Создать резервную копию», тип — полная.
На целевом сервере выполните «Восстановить базу данных», указав файл копии и новое имя базы. После восстановления создайте в консоли кластера 1С новую информационную базу, указав то же имя базы данных, но снимите флаг создания базы — сервер 1С подключится к уже существующей. При необходимости создайте на SQL Server отдельный логин и сопоставьте его с пользователем восстановленной базы.
Этот способ переносит данные «как есть», включая индексы и статистику, и работает значительно быстрее, чем цикл выгрузки-загрузки. Минус — он не применим для перехода с файлового варианта и требует доступа к обоим SQL Server.
Сравнение способов
Универсальный способ, подходит для перехода с файловой базы. Медленный на больших объёмах, требует много памяти и времени
Быстрый перенос между двумя SQL Server. Не подходит для файловой базы и требует прав администратора СУБД
Не существует как отдельный механизм для SQL — не путайте с копированием файловой базы, для SQL так делать нельзя
Настройка прав и параметров базы на SQL Server
После создания базы проверьте, под какой учётной записью сервер 1С обращается к СУБД. Рекомендуется выделенная учётная запись (Windows-аутентификация предпочтительнее) с ролью db_owner только на конкретную базу 1С — не давайте ей права на другие базы. Если используется SQL-аутентификация, логин и пароль указываются в свойствах информационной базы в консоли кластера.
Обратите внимание на модель восстановления базы. По умолчанию SQL Server может создать базу в полной модели (Full), при которой журнал транзакций растёт без ограничений и быстро заполняет диск. Для большинства баз 1С достаточно простой модели (Simple): её задают в свойствах базы в SSMS на вкладке «Параметры». Если требуется возможность восстановления на произвольный момент времени, оставьте Full, но настройте регулярное резервное копирование журнала.
Проверка результата после загрузки
Первый признак успеха — база открывается в режиме предприятия без ошибок конвертации и показывает актуальные данные: последние документы, остатки по счетам, справочники. Сверьте пару контрольных значений с исходной базой: например, оборотно-сальдовую ведомость за последний закрытый месяц или остатки по складу.
Затем проверьте технические аспекты: запустите тестирование и исправление информационной базы (минимум проверку логической целостности), убедитесь, что регламентные задания настроены и не дублируются с заданиями старой базы, а пользователи могут подключиться через тонкий клиент или веб-клиент. Если база переносилась на новый сервер, старую копию переведите в режим «только чтение» или заблокируйте, чтобы не вести учёт параллельно в двух местах.
Как проверить результат
База открывается, данные на месте, отчёты строятся
Ошибка конвертации, пустые справочники или отсутствие документов
ОСВ и остатки совпадают с исходной базой
Расхождения в суммах — загрузка неполная или повреждена
Размер журнала стабилен при простой модели восстановления
Файл журнала быстро растёт и заполняет диск
Выполняются по расписанию только на новой базе
Задания дублируются или не запускаются вовсе
Типичные ошибки и ограничения
Наиболее частая проблема — нехватка памяти или дискового пространства при загрузке большого .dt. Конфигуратор при загрузке активно использует оперативную память клиентской машины и временные таблицы на SQL Server, поэтому диск с tempdb должен иметь запас свободного места, сопоставимый с размером базы. Вторая типичная ситуация — попытка загрузить .dt в базу, созданную под другую версию платформы: выгружайте и загружайте под одной версией.
Отдельно отметим ограничения: файл .dt не переносит настройки кластера, список пользователей информационной базы с их паролями переносится, но настройки разделения прав на уровне СУБД — нет. Регламентные задания после загрузки часто требуют перенастройки, а внешние компоненты и расширения могут потребовать повторной установки под серверную архитектуру.
FAQ: частые вопросы о заливке базы 1С на SQL
Можно ли залить базу 1С на SQL Server без конфигуратора?
Да, если исходная база уже работает на SQL Server — через восстановление бэкапа в SSMS и последующую регистрацию базы в консоли кластера. Для файловой базы без конфигуратора не обойтись: формат .dt создаётся и загружается только через него.
Сколько времени занимает загрузка базы через .dt?
Зависит от объёма данных, мощности клиентской машины и сервера. База в несколько гигабайт загружается за десятки минут, база в 50 ГБ и более — за несколько часов. Планируйте операцию на нерабочее время и следите, чтобы процесс не прерывался.
Нужно ли останавливать сервер 1С на время загрузки?
Нет, службу агента сервера останавливать не требуется. Достаточно, чтобы в исходной базе не было активных сеансов на момент выгрузки, а новая база на время загрузки была закрыта для пользователей.
Что делать, если при загрузке появилась ошибка нехватки места в tempdb?
Освободите место на диске, где расположены файлы tempdb, или перенесите tempdb на диск с достаточным запасом. После этого удалите частично созданную базу и повторите загрузку с нуля — продолжить прерванную загрузку нельзя.
Переносятся ли пользователи и их пароли при загрузке .dt?
Список пользователей информационной базы с паролями переносится вместе с данными. Но если аутентификация была привязана к доменным учётным записям или к кластеру, эти настройки на новом сервере нужно проверить и при необходимости перенастроить.
Что важно запомнить
Залить базу 1С на SQL Server можно двумя способами: загрузкой .dt через конфигуратор в пустую базу из консоли кластера (универсально) или восстановлением бэкапа средствами SQL Server (быстро, но только между SQL-серверами). Обязательные условия: резервная копия, совместимые версии платформы, права на создание базы, правильная модель восстановления и проверка данных после загрузки. Никогда не повторяйте загрузку поверх прерванной — пересоздавайте базу заново.