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

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

Как выгрузить SQL-базу 1С: способы, команды и проверка результата

Практическое руководство по выгрузке SQL-базы 1С через SQL Server Management Studio, командную строку и средствами конфигуратора. Проверка результата и типичные ошибки.

Выгрузка SQL-базы 1С — стандартная задача администратора, которая выполняется для резервного копирования, переноса базы на другой сервер или перед обновлением конфигурации. В отличие от файлового варианта, где достаточно скопировать файл 1Cv8.1CD, клиент-серверная база хранится в СУБД (чаще всего Microsoft SQL Server, реже PostgreSQL), и выгружать её нужно средствами самой СУБД.

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

Ниже разобраны оба способа с конкретными командами, условиями выбора между ними, способами проверки результата и типичными ошибками, которые приводят к потере данных.

Выгрузка .dt и SQL-бекап: в чём разница и что выбрать

Файл .dt создаётся через конфигуратор 1С (Администрирование → Выгрузить информационную базу). Это логическая выгрузка: платформа читает данные из SQL-базы и сохраняет их в собственном формате. Такой файл можно загрузить в базу на другой СУБД или в файловый вариант, но процесс длительный, требует монопольного доступа и заметно нагружает сервер.

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

Сравнение способов выгрузки

Выгрузка .dt через конфигуратор

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

Backup .bak средствами SQL Server

Подходит для регулярных резервных копий и быстрого восстановления. Минусы: привязка к SQL Server, нельзя загрузить в файловую базу.

Копирование файлов MDF/LDF

Допустимо только после остановки службы SQL Server или отсоединения базы. Иначе высок риск получить повреждённую копию.

Подготовка перед выгрузкой

Перед любой выгрузкой убедитесь, что у вас есть необходимые права. Для выгрузки .dt нужны права администратора информационной базы в 1С. Для создания бекапа через SQL Server — учётная запись с ролью, допускающей BACKUP DATABASE (обычно db_owner, db_backupoperator или sysadmin).

Оцените объём базы и свободное место на диске. Файл .dt нередко занимает сопоставимый с базой объём, а на время выгрузки потребуется запас под временные файлы. Для .bak-файла размер обычно меньше размера базы, особенно при включённом сжатии бекапа, но гарантировать это нельзя — ориентируйтесь на фактический размер данных.

Выгрузка базы через конфигуратор в файл .dt

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

Если в базе работают пользователи, сначала завершите их сеансы через консоль кластера серверов 1С или через «Администрирование → Пользователи» в режиме предприятия с установкой блокировки сеансов. Без монопольного доступа конфигуратор откажется выполнять выгрузку.

Выгрузка .dt через конфигуратор
  1. 1
    Завершите сеансы пользователей и установите блокировку соединений
  2. 2
    Откройте конфигуратор под администратором базы
  3. 3
    Меню: Администрирование → Выгрузить информационную базу
  4. 4
    Укажите путь к файлу .dt на диске с достаточным свободным местом
  5. 5
    Дождитесь сообщения об успешном завершении и проверьте размер файла

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

Создание резервной копии средствами SQL Server

Самый надёжный способ выгрузить SQL-базу — полный backup через SQL Server Management Studio (SSMS). Подключитесь к серверу, найдите нужную базу в списке, щёлкните правой кнопкой и выберите Tasks → Back Up. Укажите тип Full, задайте путь к файлу .bak и запустите операцию.

Тот же результат даёт команда T-SQL, которую удобно использовать в скриптах и планировщике заданий:

sql
BACKUP DATABASE [MyBase1C] TO DISK = N'D:\Backups\MyBase1C_full.bak' WITH COMPRESSION, CHECKSUM, INIT;

Опция COMPRESSION уменьшает размер файла (доступна не во всех редакциях SQL Server), CHECKSUM добавляет проверку целостности при записи, INIT перезаписывает файл. Для регулярных копий настройте автоматический запуск скрипта через планировщик Windows или задания SQL Server Agent.

Выгрузка для PostgreSQL и других СУБД

Если база 1С работает на PostgreSQL, резервная копия создаётся утилитой pg_dump или pg_dumpall. Рекомендуется использовать формат custom (-Fc), который поддерживает сжатие и выборочное восстановление через pg_restore.

bash
pg_dump -U postgres -Fc -f /backups/mybase1c.dump mybase1c

Учитывайте, что дамп PostgreSQL восстанавливается только в совместимую версию СУБД, а для переноса на другую платформу СУБД всё равно потребуется выгрузка .dt. Универсальное правило: backup средствами СУБД — для восстановления «как было», .dt — для переноса «куда угодно».

Проверка результата выгрузки

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

Для .bak проверьте целостность командой RESTORE VERIFYONLY, а для полной уверенности восстановите копию в тестовую базу на том же или другом сервере. Только успешное тестовое восстановление подтверждает, что резервная копия пригодна к использованию.

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

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

Файл выгрузки создан
Норма

Файл .dt или .bak существует, размер сопоставим с размером базы

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

Файл отсутствует, нулевого размера или аномально мал

Целостность .bak
Норма

RESTORE VERIFYONLY завершается без ошибок

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

Ошибки контрольных сумм или повреждения страниц

Тестовое восстановление
Норма

База восстанавливается и открывается в режиме предприятия

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

Ошибки при восстановлении или при запуске 1С

Типичные ошибки и частые вопросы

Большинство проблем при выгрузке связано с тремя причинами: нехваткой прав, нехваткой места и активными сеансами пользователей. Перед запуском операции проверьте все три пункта — это сэкономит часы на диагностику.

Типичные ошибки
01
Выгрузка .dt без завершения сеансов — конфигуратор выдаёт ошибку монопольного доступа или процесс обрывается
02
Копирование файлов MDF/LDF работающей базы — копия получается несогласованной и не восстанавливается
03
Хранение бекапа на том же диске, что и база — при отказе диска теряются и база, и копия
04
Отсутствие проверки восстановления — о непригодности копии узнают в момент аварии
05
Восстановление .bak на SQL Server более старой версии — операция невозможна, проверяйте версии заранее

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

Итог

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

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

Можно ли выгрузить SQL-базу 1С, пока в ней работают пользователи?

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

Что лучше для ежедневного резервного копирования — .dt или .bak?

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

Как перенести SQL-базу на другой компьютер с файловым вариантом 1С?

Единственный способ — выгрузить базу через конфигуратор в файл .dt, затем создать пустую файловую базу и загрузить в неё этот файл через «Администрирование → Загрузить информационную базу».

Почему восстановленный из .bak базу не видит сервер 1С?

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

Сколько места нужно для выгрузки базы?

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

Можно ли автоматизировать выгрузку по расписанию?

Да. Для .bak используйте планировщик Windows или задания SQL Server Agent со скриптом BACKUP DATABASE. Выгрузку .dt можно запускать пакетным режимом конфигуратора с параметром /DumpIB, но она всё равно потребует монопольного доступа.