Загрузка выгрузки .dt и SQL-дампа в базу 1С на Windows и Linux
Содержание
Чтобы загрузить дамп в 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 Server | SQL Server Management Studio или RESTORE DATABASE |
.backup, .dump, .sql (PostgreSQL) | Дамп pg_dump | pg_restore или psql |
.1CD | Сама файловая база, не дамп | Просто скопировать в каталог и подключить |
.cf | Только конфигурация, без данных | Конфигурация → Загрузить конфигурацию из файла... |
Файл .cf данных не содержит. Если вам прислали .cf вместо .dt, база после загрузки будет пустой: справочники, документы и остатки не появятся.
Проверьте целостность файла
Битый файл — самая частая причина неудачной загрузки. Перед началом сделайте три проверки:
- 📏 Размер. Файл
.dtне может весить несколько килобайт, если база рабочая. Сравните размер с тем, что указан у отправителя. - 🔐 Контрольная сумма. Попросите отправителя посчитать SHA-256 и сравните со своим значением.
- 📦 Распаковка. Если дамп пришёл в архиве, распакуйте его полностью и без ошибок архиватора.
Команды для контрольной суммы:
:: Windows
certutil -hashfile D:\dumps\base.dt SHA256
# Linux
sha256sum /srv/dumps/base.dt
Что ещё нужно до загрузки
- 💾 Свободное место. Загрузка разворачивает данные и пишет временные файлы. Закладывайте на диске объём в несколько раз больше самого
.dt. - 🧩 Версия платформы. Загружайте выгрузку в платформу с номером не ниже той, в которой её сделали. Номер обычно знает тот, кто делал выгрузку: он виден в окне
Справка → О программе. - 👤 Логин и пароль. После загрузки в базе окажется список пользователей из дампа. Войти можно будет только под учётной записью из исходной базы с правом «Администрирование».
- 🖥 Разрядность. Большие выгрузки (от нескольких гигабайт) грузите 64-разрядной платформой: 32-разрядному процессу может не хватить памяти.
Загрузка .dt в файловую базу через Конфигуратор
Это базовый сценарий: бухгалтер принёс копию базы , её нужно развернуть на своём компьютере.
Шаг 1. Создайте пустую базу
- Запустите 1С и в окне выбора баз нажмите
Добавить.... - Выберите
Создание новой информационной базы→Создание информационной базы без конфигурации.... - Задайте имя и вариант
На данном компьютере или на компьютере в локальной сети. - Укажите пустой каталог, например
D:\Bases\Buh_copy.
Создавать базу из шаблона не нужно: загрузка .dt всё равно полностью заменит содержимое.
Шаг 2. Загрузите файл
- Выделите новую базу и нажмите
Конфигуратор. - Откройте
Администрирование → Загрузить информационную базу.... - Укажите файл
.dtи подтвердите предупреждение о замене данных. - Дождитесь сообщения об успешной загрузке. Конфигуратор предложит перезапуститься — согласитесь.
Для базы на 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С:Предприятия: имя кластера, имя базы, тип СУБД, сервер СУБД, имя базы данных, пользователь СУБД.
- Поставьте флажок
Создать базу данных в случае ее отсутствия. - Откройте базу в Конфигураторе и загрузите
.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С:Предприятие
- Войдите под администратором из исходной базы.
- Если появится вопрос о перемещении базы, ответьте честно. Для тестовой копии выберите вариант «это копия»: тогда обмены, отправка отчётов и регламентные задания не будут работать от имени рабочей базы.
- Откройте пару отчётов по прошлому периоду и сверьте итоги с исходной базой — например, оборотно-сальдовую ведомость за последний закрытый месяц.
Копия рабочей базы умеет отправлять письма, выгружать данные по обменам и отчитываться через сервис отчётности. Пока не убедились, что копия «знает», что она копия, не запускайте в ней обмены вручную.
Для серверной базы
В свойствах информационной базы в консоли кластера есть флажок Блокировка регламентных заданий включена. Для тестовой копии его стоит включить сразу после загрузки. Так копия не начнёт параллельно с рабочей базой загружать курсы валют, классификаторы и выполнять обмены.
Частые вопросы
Можно ли загрузить .dt без Конфигуратора?
1cv8 DESIGNER /RestoreIB, на сервере без графики — ibcmd infobase restore. Конфигуратор при этом не открывается.Нужна ли лицензия, чтобы загрузить дамп?
Почему после загрузки не подходит мой пароль?
Можно ли загрузить дамп только частично, например одну организацию?
.dt загружается целиком. Для переноса части данных используют обработки выгрузки и загрузки данных или механизмы обмена между базами.Сколько времени займёт загрузка большой базы?
.dt.