Администрирование · 10 мин
Как загрузить базу 1С в SQL Server
Как загрузить базу 1С в SQL Server: подготовка сервера, создание базы через консоль кластера, загрузка dt-файла, типичные ошибки и проверка результата.
Переход с файлового варианта 1С на клиент-серверный с хранением данных в SQL Server — стандартная задача при росте числа пользователей и объёма базы. Процесс включает подготовку сервера СУБД, создание пустой базы в кластере 1С и загрузку в неё выгрузки в формате dt. При правильной последовательности операция занимает от пары часов до рабочего дня в зависимости от размера данных.
Главное, что нужно понять перед началом: 1С не работает с SQL-базой напрямую через импорт таблиц. Вся структура данных создаётся средствами платформы, а администратор лишь указывает сервер и имя базы. Поэтому «загрузить базу в SQL» означает связку действий в консоли кластера серверов 1С и в конфигураторе.
В статье разобран типовой сценарий для связки «1С:Предприятие 8.3 + Microsoft SQL Server», но общая логика применима и к PostgreSQL. Отдельно описаны подготовка, загрузка dt-файла, проверка результата и типичные ошибки, из-за которых база не создаётся или работает медленно.
Что подготовить перед загрузкой базы в SQL
Для клиент-серверного варианта потребуются три компонента: установленный SQL Server (или PostgreSQL с патчами для 1С), сервер 1С:Предприятия той же версии платформы, что используется в файловой базе, и актуальная выгрузка данных. Все компоненты могут стоять на одной машине для небольших внедрений, но для рабочих систем сервер СУБД и сервер 1С обычно разносят.
Проверьте совместимость версий: конкретный релиз платформы 1С поддерживает определённые версии SQL Server. Эта информация есть в документации к платформе. Использование неподдерживаемой версии СУБД приводит к ошибкам при создании базы или к нестабильной работе.
Также заранее определите учётную запись, под которой сервер 1С будет подключаться к SQL Server. Практичный вариант — отдельный SQL-логин с правами на создание баз данных (роль dbcreator) либо заранее созданная пустая база, где у логина есть роль db_owner.
Как выгрузить базу из файлового варианта в dt-файл
Выгрузка делается через конфигуратор. Откройте файловую базу в конфигураторе под пользователем с полными правами и перейдите в меню «Администрирование» → «Выгрузить информационную базу». Укажите путь к файлу с расширением .dt и дождитесь завершения. На время выгрузки пользователи должны выйти из базы — монопольный режим обязателен.
Размер dt-файла обычно заметно меньше самой базы за счёт сжатия, но для больших баз выгрузка может занять несколько часов. Убедитесь, что на диске достаточно места: нужно пространство под dt-файл и под будущую базу в SQL, которая после загрузки и создания индексов может оказаться в несколько раз больше выгрузки.
Альтернатива dt — выгрузка через пакетный режим конфигуратора с параметрами командной строки. Это удобно для автоматизации, когда перенос выполняется регулярно, например для создания тестовой копии рабочей базы.
"C:\Program Files\1cv8\8.3.24.1467\bin\1cv8.exe" DESIGNER /F"D:\Bases\Trade" /N"Администратор" /DumpIB"D:\Backup\trade.dt"Создание информационной базы в кластере серверов 1С
Откройте консоль управления серверами 1С (оснастка «Серверы 1С:Предприятия»), разверните кластер, перейдите в ветку «Информационные базы» и выберите «Создать» → «Информационная база». В появившемся окне заполните параметры подключения к СУБД.
Ключевые поля: имя базы в кластере (отображается пользователям), тип СУБД (MS SQL Server), имя сервера баз данных, имя базы данных в SQL и параметры аутентификации. Если оставить включённой опцию «Создать базу данных в случае её отсутствия», платформа сама создаст пустую базу на SQL Server с корректной структурой. Это предпочтительный путь — вручную создавать таблицы в SQL не нужно и нельзя.
Параметр «Блокировка регламентных заданий» на этапе загрузки лучше включить: это исключит запуск фоновых задач до завершения переноса. После загрузки данных блокировку снимают.
- 1Откройте консоль кластера серверов 1С и перейдите в раздел «Информационные базы»
- 2Выберите «Создать» → «Информационная база» и укажите имя базы
- 3Заполните тип СУБД, сервер, имя базы данных и учётные данные SQL
- 4Отметьте «Создать базу данных в случае её отсутствия» и включите блокировку регламентных заданий
- 5Нажмите «ОК» и дождитесь создания базы на SQL Server
- 6Откройте созданную базу в конфигураторе для загрузки данных
Загрузка dt-файла в SQL-базу
Теперь пустая база существует в SQL, и в неё нужно поместить данные. Запустите конфигуратор, выберите созданную серверную базу в списке и откройте её. Платформа может предложить выполнить реструктуризацию — соглашайтесь, это нормальная часть первичной инициализации.
Перейдите в «Администрирование» → «Загрузить информационную базу» и укажите ранее созданный dt-файл. Процесс идёт в монопольном режиме и для объёмных баз занимает значительное время. Во время загрузки SQL Server активно пишет в журнал транзакций — следите за свободным местом на дисках СУБД.
После завершения загрузки конфигуратор предложит обновить конфигурацию базы данных. Примите обновление и дождитесь окончания реструктуризации. Только после этого базу можно открывать в режиме «Предприятие».
Настройки SQL Server, влияющие на скорость и стабильность
Модель восстановления базы влияет на скорость загрузки и рост журнала транзакций. Для рабочих баз 1С чаще рекомендуют простую (Simple) модель, если нет требований к поминутному восстановлению: журнал не раздувается, а массовая загрузка идёт быстрее. Изменить модель можно в свойствах базы в SQL Server Management Studio на вкладке Options.
Обратите внимание на начальный размер файлов базы и прирост. Автоприрост по умолчанию в 1 МБ при загрузке большого dt вызовет тысячи операций расширения файла и замедлит процесс. Задайте адекватный начальный размер данных и журнала и прирост фиксированным значением, например в сотнях мегабайт.
После загрузки имеет смысл обновить статистику и перестроить индексы средствами SQL Server — это улучшит скорость первых запросов пользователей. Такие операции выполняются штатными средствами СУБД и не затрагивают логику 1С.
Загрузку большого dt удобнее запускать с клиентского компьютера, подключённого к серверу по локальной сети, а лучше — непосредственно на сервере 1С через терминальный доступ. Загрузка через медленный канал связи — частая причина многократного роста времени переноса.
Проверка результата и типичные ошибки
После завершения загрузки откройте базу в режиме «Предприятие» и сверьте ключевые показатели с исходной файловой базой: оборотно-сальдовую ведомость, количество документов за период, остатки по складу. Совпадение контрольных цифр — основной признак успешного переноса.
Дополнительно проверьте, что в SQL Server Management Studio база находится в состоянии Online, а в консоли кластера снята блокировка регламентных заданий (если они нужны). Убедитесь, что пользователи могут подключиться через тонкий клиент или веб-клиент по новому подключению.
Как проверить результат
База открывается без ошибок, списки документов заполнены
Ошибки соединения с СУБД или пустые списки
Обороты и остатки совпадают с файловой базой
Расхождения в суммах или отсутствие части документов
Статус Online, файлы данных и журнала на дисках с запасом места
Статус Suspect/Recovery Pending или переполненный журнал
Блокировка снята, задания выполняются по расписанию
Задания не стартуют после переноса
Частые ошибки при загрузке
Альтернативные способы переноса
Помимо связки «dt + консоль кластера», существует вариант прямого копирования на уровне СУБД: backup/restore средствами SQL Server. Он подходит, когда база уже работает в SQL и нужно перенести её на другой сервер. В этом случае после восстановления копии информационная база регистрируется в кластере с указанием существующей базы данных без её пересоздания.
Для переноса между разными СУБД (например, с SQL Server на PostgreSQL) единственный надёжный способ — выгрузка и загрузка через dt, так как форматы хранения различаются. Средства копирования самой СУБД здесь неприменимы.
Сравнение способов переноса
Универсальный способ: файловая база → SQL, переход между СУБД. Минус — долго на больших базах и требует монопольного режима
Быстрый перенос уже работающей SQL-базы на другой сервер той же СУБД. Не подходит для перехода из файлового варианта или между разными СУБД
Не перенос в SQL, а временный вариант работы. Подходит только для малых баз и небольшого числа пользователей
FAQ
Можно ли загрузить базу 1С в SQL без файла dt?
Да, если база уже находится в SQL Server — используйте резервную копию средствами СУБД и восстановление на новом сервере. Для перехода из файлового варианта dt-выгрузка обязательна: прямого преобразования файла 1Cv8.1CD в SQL-базу не существует.
Нужно ли вручную создавать таблицы в SQL Server?
Нет. Структуру таблиц, индексов и представлений платформа 1С создаёт автоматически при создании информационной базы и при обновлении конфигурации. Ручное изменение структуры в СУБД нарушает работу базы и лишает поддержки.
Сколько времени занимает загрузка?
Зависит от размера базы, скорости дисков SQL Server и канала связи. Небольшие базы загружаются за десятки минут, базы в десятки гигабайт — за несколько часов. Планируйте перенос на нерабочее время с запасом.
Что делать, если загрузка dt прервалась с ошибкой?
База в SQL остаётся в непоследовательном состоянии. Безопасный путь — удалить информационную базу из кластера вместе с базой данных, устранить причину (место на диске, версия платформы, права) и повторить процесс с самого начала.
Подойдёт ли бесплатная редакция SQL Server Express?
Технически платформа работает с Express-редакцией, но у неё есть ограничения по размеру базы и используемым ресурсам. Для рабочих баз среднего и крупного масштаба её возможностей обычно недостаточно; для небольших баз или тестовых стендов вариант приемлем.
Можно ли продолжать работать в файловой базе после переноса?
Технически файл остаётся, но параллельная работа в двух копиях приведёт к расхождению данных. После успешной проверки SQL-базы файловую копию следует вывести из эксплуатации, оставив её как архивную резервную копию.
Что важно запомнить
Загрузка базы 1С в SQL выполняется в три этапа: выгрузка dt из файловой базы, создание информационной базы в консоли кластера (платформа сама создаёт базу в СУБД) и загрузка dt через конфигуратор. Обязательны резервная копия, совпадение версий платформы, достаточные права в SQL и сверка итогов после переноса.