Загрузка выгрузки .dt и SQL-дампа в базу 1С на Windows и Linux

· 9 мин

Содержание

Чтобы загрузить дамп в 1С, создайте пустую информационную базу, откройте её в Конфигураторе и выберите Администрирование → Загрузить информационную базу..., указав файл .dt. Тот же результат без интерфейса даёт команда 1cv8 DESIGNER /F "путь_к_базе" /RestoreIB "файл.dt" на Windows и Linux. Если же у вас не .dt, а бэкап СУБД (.bak для MS SQL или дамп pg_dump для PostgreSQL), его восстанавливают средствами самой СУБД, а потом регистрируют базу в кластере 1С.

Сначала определите, что за файл у вас на руках: от этого зависит весь дальнейший путь.

Какой дамп у вас и что подготовить заранее

Под словом «дамп» в 1С называют три разных вещи. Путать их нельзя: каждая грузится своим способом.

ФайлЧто внутриЧем загружать
.dtКонфигурация и все данные базы в формате платформыКонфигуратор, 1cv8 /RestoreIB, ibcmd
.bak (MS SQL)Копия базы данных SQL ServerSQL Server Management Studio или RESTORE DATABASE
.backup, .dump, .sql (PostgreSQL)Дамп pg_dumppg_restore или psql
.1CDСама файловая база, не дампПросто скопировать в каталог и подключить
.cfТолько конфигурация, без данныхКонфигурация → Загрузить конфигурацию из файла...

Файл .cf данных не содержит. Если вам прислали .cf вместо .dt, база после загрузки будет пустой: справочники, документы и остатки не появятся.

Проверьте целостность файла

Битый файл — самая частая причина неудачной загрузки. Перед началом сделайте три проверки:

  • 📏 Размер. Файл .dt не может весить несколько килобайт, если база рабочая. Сравните размер с тем, что указан у отправителя.
  • 🔐 Контрольная сумма. Попросите отправителя посчитать SHA-256 и сравните со своим значением.
  • 📦 Распаковка. Если дамп пришёл в архиве, распакуйте его полностью и без ошибок архиватора.

Команды для контрольной суммы:

:: Windows
certutil -hashfile D:\dumps\base.dt SHA256
# Linux
sha256sum /srv/dumps/base.dt

Что ещё нужно до загрузки

  1. 💾 Свободное место. Загрузка разворачивает данные и пишет временные файлы. Закладывайте на диске объём в несколько раз больше самого .dt.
  2. 🧩 Версия платформы. Загружайте выгрузку в платформу с номером не ниже той, в которой её сделали. Номер обычно знает тот, кто делал выгрузку: он виден в окне Справка → О программе.
  3. 👤 Логин и пароль. После загрузки в базе окажется список пользователей из дампа. Войти можно будет только под учётной записью из исходной базы с правом «Администрирование».
  4. 🖥 Разрядность. Большие выгрузки (от нескольких гигабайт) грузите 64-разрядной платформой: 32-разрядному процессу может не хватить памяти.

Загрузка .dt в файловую базу через Конфигуратор

Это базовый сценарий: бухгалтер принёс копию базы , её нужно развернуть на своём компьютере.

Шаг 1. Создайте пустую базу

  1. Запустите 1С и в окне выбора баз нажмите Добавить....
  2. Выберите Создание новой информационной базы → Создание информационной базы без конфигурации....
  3. Задайте имя и вариант На данном компьютере или на компьютере в локальной сети.
  4. Укажите пустой каталог, например D:\Bases\Buh_copy.

Создавать базу из шаблона не нужно: загрузка .dt всё равно полностью заменит содержимое.

Шаг 2. Загрузите файл

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

Для базы на 2–5 ГБ загрузка занимает от нескольких минут до получаса. Время зависит в основном от диска: на SSD заметно быстрее.

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

Загрузка из командной строки на Windows

Тот же результат без открытия Конфигуратора. Удобно для скриптов и регулярного разворачивания тестовых копий:

"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER ^
  /F "D:\Bases\Buh_copy" ^
  /N "Администратор" /P "пароль" ^
  /RestoreIB "D:\dumps\base.dt" ^
  /DisableStartupDialogs ^
  /Out "D:\dumps\restore.log"

Номер версии в пути подставьте свой. Результат смотрите в файле restore.log: при ошибке там будет её текст. Ключи /N и /P нужны, только если в пустой базе уже заведены пользователи.

Если база файловая, но на Linux

На Linux платформа ставится в каталог вида /opt/1cv8/x86_64/<версия>/. Команда та же:

/opt/1cv8/x86_64/8.3.24.1548/1cv8 DESIGNER \
  /F /home/buh/bases/buh_copy \
  /RestoreIB /srv/dumps/base.dt \
  /DisableStartupDialogs \
  /Out /tmp/restore.log

Каталог базы должен принадлежать пользователю, от имени которого вы запускаете 1С. Иначе загрузка упадёт на записи файла 1Cv8.1CD.

Восстановление SQL-дампа для клиент-серверной базы

Если база работает на SQL Server или PostgreSQL, у вас два пути: загрузить .dt через 1С или восстановить бэкап самой СУБД. Второй быстрее для больших баз, но требует доступа к серверу СУБД.

Вариант А: .dt в серверную базу

  1. Откройте консоль кластера или окно добавления базы в 1С.
  2. Создайте новую базу на сервере 1С:Предприятия: имя кластера, имя базы, тип СУБД, сервер СУБД, имя базы данных, пользователь СУБД.
  3. Поставьте флажок Создать базу данных в случае ее отсутствия.
  4. Откройте базу в Конфигураторе и загрузите .dt, как для файловой.

В командной строке вместо /F используется /S "сервер\имя_базы".

Вариант Б: бэкап MS SQL (.bak)

Восстановите базу в SQL Server Management Studio через Databases → Restore Database... или запросом:

RESTORE DATABASE [buh_copy]
FROM DISK = N'D:\dumps\buh.bak'
WITH MOVE N'buh'     TO N'E:\SQLData\buh_copy.mdf',
     MOVE N'buh_log' TO N'E:\SQLData\buh_copy_log.ldf',
     REPLACE, STATS = 10;

Логические имена файлов (buh, buh_log) у вашего бэкапа будут свои. Узнайте их командой RESTORE FILELISTONLY FROM DISK = N'D:\dumps\buh.bak'.

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

Вариант В: дамп PostgreSQL

Для 1С нужна сборка PostgreSQL с патчами 1С (или Postgres Pro): в базах 1С используются её расширения, например тип mchar. На «чистый» PostgreSQL такой дамп может не восстановиться.

# создать пустую базу и восстановить дамп формата custom
sudo -u postgres createdb -T template0 buh_copy
sudo -u postgres pg_restore -d buh_copy -j 4 /srv/dumps/buh.backup

Ключ -j 4 запускает восстановление в 4 потока и сильно ускоряет большие дампы. Если дамп текстовый (.sql), грузите его через psql -d buh_copy -f buh.sql. Затем, как и для MS SQL, зарегистрируйте базу в кластере без создания новой БД.

SQL-бэкап переносится только на ту же СУБД. Перенести базу с MS SQL на PostgreSQL через .bak нельзя — для этого выгрузите .dt и загрузите его в новую базу на PostgreSQL.

Утилиты для конвертации и пакетной загрузки: ibcmd вместо «v8tool»

В инструкциях встречается название «v8tool». В составе платформы утилиты с таким именем нет: так обычно называют сторонние скрипты-обёртки. Штатных инструментов два: уже описанный 1cv8 с ключом /RestoreIB и автономный сервер ibcmd.

ibcmd лежит в каталоге платформы рядом с 1cv8 и работает без графики и без запущенного кластера. Это лучший выбор для Linux-сервера, где нет рабочего стола. Пример загрузки .dt в базу на PostgreSQL:

/opt/1cv8/x86_64/8.3.24.1548/ibcmd infobase restore \
  --dbms=PostgreSQL --db-server=localhost \
  --db-name=buh_copy --db-user=postgres --db-pwd=*** \
  --create-database \
  /srv/dumps/base.dt

Для файловой базы вместо параметров СУБД указывают путь к каталогу базы. Набор параметров меняется от релиза к релизу, поэтому сверьтесь со справкой: ibcmd help infobase.

Как «сконвертировать» базу из одного формата в другой

ЗадачаКак сделать
Файловая → сервернаяВыгрузить .dt из файловой, загрузить в новую серверную
Серверная → файловаяВыгрузить .dt из серверной, загрузить в пустую файловую
MS SQL → PostgreSQLТолько через .dt
Из .1CD получить .dtПодключить .1CD как файловую базу и выгрузить из Конфигуратора

Прямого конвертера между .bak, .1CD и .dt нет. Формат .dt — универсальный переходник между всеми вариантами.

Что делать, если загрузка дампа в 1С прервалась с ошибкой

Выберите симптом, чтобы увидеть причину и что делать.

Диагностика: выберите симптом

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

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

Сообщение «загрузка завершена» ещё не значит, что база готова к работе. Пройдите короткую проверку.

Тестирование и исправление

В Конфигураторе откройте Администрирование → Тестирование и исправление.... Для первого прогона достаточно отметить проверку логической и ссылочной целостности в режиме «только проверка». Ошибки, если найдутся, будут видны в окне сообщений.

Для файловой базы есть ещё утилита chdbfl.exe в каталоге bin платформы. Она проверяет физическую целостность файла 1Cv8.1CD. Запускайте её только при закрытой базе.

Запуск в режиме 1С:Предприятие

  1. Войдите под администратором из исходной базы.
  2. Если появится вопрос о перемещении базы, ответьте честно. Для тестовой копии выберите вариант «это копия»: тогда обмены, отправка отчётов и регламентные задания не будут работать от имени рабочей базы.
  3. Откройте пару отчётов по прошлому периоду и сверьте итоги с исходной базой — например, оборотно-сальдовую ведомость за последний закрытый месяц.

Копия рабочей базы умеет отправлять письма, выгружать данные по обменам и отчитываться через сервис отчётности. Пока не убедились, что копия «знает», что она копия, не запускайте в ней обмены вручную.

Для серверной базы

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

База после загрузки дампа готова к работе
Выполнено: 0 / 5

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

Можно ли загрузить .dt без Конфигуратора?
Да. На Windows и Linux подойдёт 1cv8 DESIGNER /RestoreIB, на сервере без графики — ibcmd infobase restore. Конфигуратор при этом не открывается.
Нужна ли лицензия, чтобы загрузить дамп?
Для загрузки через Конфигуратор платформе нужна лицензия, как и для любого запуска. Без неё базу не откроет ни Конфигуратор, ни пользовательский режим. Исключение — учебная версия платформы, но в ней свои ограничения на объём данных.
Почему после загрузки не подходит мой пароль?
Список пользователей приходит вместе с дампом. Ваш старый логин в этой базе больше не действует: входите под учётной записью из той базы, из которой сделана выгрузка.
Можно ли загрузить дамп только частично, например одну организацию?
Нет, .dt загружается целиком. Для переноса части данных используют обработки выгрузки и загрузки данных или механизмы обмена между базами.
Сколько времени займёт загрузка большой базы?
Ориентир — от нескольких минут для базы на 1–2 ГБ до нескольких часов для баз на десятки гигабайт. Для больших серверных баз восстановление бэкапа СУБД обычно быстрее, чем загрузка .dt.