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

Администрирование · 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 — выгрузка через пакетный режим конфигуратора с параметрами командной строки. Это удобно для автоматизации, когда перенос выполняется регулярно, например для создания тестовой копии рабочей базы.

bash
"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
    Откройте консоль кластера серверов 1С и перейдите в раздел «Информационные базы»
  2. 2
    Выберите «Создать» → «Информационная база» и укажите имя базы
  3. 3
    Заполните тип СУБД, сервер, имя базы данных и учётные данные SQL
  4. 4
    Отметьте «Создать базу данных в случае её отсутствия» и включите блокировку регламентных заданий
  5. 5
    Нажмите «ОК» и дождитесь создания базы на SQL Server
  6. 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, а в консоли кластера снята блокировка регламентных заданий (если они нужны). Убедитесь, что пользователи могут подключиться через тонкий клиент или веб-клиент по новому подключению.

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

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

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

База открывается без ошибок, списки документов заполнены

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

Ошибки соединения с СУБД или пустые списки

Сверка контрольных итогов
Норма

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

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

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

Состояние базы в SQL Server
Норма

Статус Online, файлы данных и журнала на дисках с запасом места

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

Статус Suspect/Recovery Pending или переполненный журнал

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

Блокировка снята, задания выполняются по расписанию

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

Задания не стартуют после переноса

Частые ошибки при загрузке

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

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

Помимо связки «dt + консоль кластера», существует вариант прямого копирования на уровне СУБД: backup/restore средствами SQL Server. Он подходит, когда база уже работает в SQL и нужно перенести её на другой сервер. В этом случае после восстановления копии информационная база регистрируется в кластере с указанием существующей базы данных без её пересоздания.

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

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

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

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

Backup/restore в SQL Server

Быстрый перенос уже работающей 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 и сверка итогов после переноса.