Восстановление информационной базы 1С 8.3 из резервной копии: .dt, файловый архив и бэкап SQL
Содержание
Чтобы развернуть базу 1С из архива формата .dt, создайте пустую информационную базу, откройте её в Конфигураторе и выберите Администрирование → Загрузить информационную базу. Укажите файл .dt, подтвердите замену данных и дождитесь сообщения о завершении. Если архив — это zip с файлом 1Cv8.1CD, распакуйте его в отдельную папку и добавьте в список баз как существующую. Бэкап MS SQL (.bak) или PostgreSQL восстанавливают средствами СУБД, а потом регистрируют базу в кластере 1С.
Порядок одинаков для 1С:Предприятие 8.3 и 8.2: формат выгрузки .dt и меню загрузки в Конфигураторе у них совпадают. Отличаются только шаги для клиент-серверного варианта и для архивов, созданных не средствами 1С.
Что проверить до того, как разворачивать базу из архива
Первым делом поймите, что за архив у вас на руках. От этого зависит способ восстановления.
| Что в архиве | Как выглядит | Чем разворачивать |
|---|---|---|
| Выгрузка информационной базы | файл *.dt | Конфигуратор или командная строка 1cv8 |
| Копия файловой базы | 1Cv8.1CD (часто внутри zip или 7z) | распаковка + добавление в список баз |
| Бэкап MS SQL Server | файл *.bak | SQL Server Management Studio или T-SQL |
| Бэкап PostgreSQL | *.backup, *.dump или *.sql | pg_restore или psql |
| Только конфигурация | файл *.cf | это не база: данных в нём нет |
Файл .cf содержит только конфигурацию без документов и справочников. Если в архиве лежит лишь .cf, восстановить из него учёт не получится — ищите .dt или копию 1Cv8.1CD.
Перед стартом пройдите короткий список:
- 📦 Целостность архива. Откройте zip или 7z архиватором и запустите проверку. Ошибка CRC на этом этапе означает, что файл повреждён ещё до 1С.
- 💾 Место на диске. Для
.dtзакладывайте в 3–5 раз больше его размера: выгрузка сжата, а база в развёрнутом виде занимает заметно больше. Ещё нужно место под временные файлы во%TEMP%. - 🔢 Версия платформы. Загружайте архив платформой с номером не ниже той, на которой его выгружали. Номер видно в окне «О программе» исходной базы или в журнале, если он сохранился.
- 🧩 Разрядность. Большие
.dt(от нескольких гигабайт) надёжнее загружать 64-разрядным Конфигуратором: 32-разрядный процесс упирается в лимит памяти. - 👤 Логин и пароль. Список пользователей приезжает вместе с
.dt. Войти в восстановленную базу можно только под учётной записью из исходной базы. - 🔑 Лицензия. На новом компьютере или сервере нужна активированная лицензия, иначе платформа базу не запустит.
Какой способ восстановления выбрать
Вручную через Конфигуратор удобно разворачивать разовую копию: перенос на новый компьютер, тестовая база для бухгалтера, проверка старого архива. Командная строка и скрипты нужны, когда базу разворачивают регулярно: каждую ночь обновляют тестовую копию или раздают одну и ту же базу на несколько рабочих мест.
| Способ | Когда подходит | Ограничения и риски |
|---|---|---|
Конфигуратор, загрузка .dt | разовое восстановление файловой и серверной базы | долго на больших базах, нужен монопольный доступ |
Распаковка 1Cv8.1CD | архив файловой базы, сделанный копированием | копия, снятая при работающих пользователях, может быть битой |
1cv8 DESIGNER /RestoreIB | регулярное развёртывание по расписанию | ошибки видны только в логе |
Восстановление .bak или dump средствами СУБД | серверная база на MS SQL или PostgreSQL | легко перезаписать рабочую базу, если перепутать имя |
Как развернуть базу 1С из архива .dt через Конфигуратор
Это основной и самый надёжный путь. Он работает одинаково для файловой и для серверной базы.
Шаг 1. Создайте пустую информационную базу
- Запустите 1С и в окне выбора баз нажмите
Добавить. - Выберите
Создание новой информационной базы. - Отметьте
Создание информационной базы без конфигурации для разработки новой конфигурации или загрузки выгруженной ранее информационной базы. - Задайте имя, например «Бухгалтерия — восстановленная», и тип расположения: на этом компьютере или на сервере 1С:Предприятия.
- Для файловой базы укажите новую пустую папку. Не выбирайте папку, где уже лежит рабочая база.
- Нажмите
Готово.
Шаг 2. Загрузите выгрузку
- Выделите созданную базу и нажмите
Конфигуратор. - Откройте
Администрирование → Загрузить информационную базу. - Укажите файл
.dtи нажмитеОткрыть. - Программа предупредит, что текущие данные будут потеряны. Для новой пустой базы это не важно — подтвердите.
- Дождитесь окна о завершении загрузки. На базе в 10 ГБ это может занять от получаса до нескольких часов: всё зависит от диска и процессора.
- Конфигуратор предложит перезапуститься — согласитесь.
Загрузка .dt полностью заменяет конфигурацию, данные и список пользователей. Поэтому выгрузку всегда загружайте в новую базу. Не загружайте архив поверх рабочей базы, пока не сделали её свежую выгрузку.
Шаг 3. Первый запуск восстановленной копии
Откройте базу в режиме 1С:Предприятие под пользователем из исходной базы. Типовые конфигурации на БСП при первом входе могут показать предупреждение, что информационная база была перемещена или восстановлена из резервной копии.
Здесь важно ответить правильно:
- если это тестовая копия рядом с рабочей базой — выберите вариант, что это копия. Программа отключит регламентные задания, синхронизацию данных и отправку писем. Иначе копия начнёт загружать банковские выписки, отправлять отчёты и обмениваться с другими базами наравне с рабочей;
- если базу перенесли на новый сервер и старая больше не используется — выберите вариант, что база перемещена.
Развёртывание базы 1С из архива на SQL-сервере
Для клиент-серверной базы есть два пути. Первый — создать в кластере новую базу и загрузить в неё .dt тем же способом, что выше. Второй — восстановить бэкап СУБД. Второй путь на больших базах в разы быстрее, потому что СУБД не разбирает данные построчно.
Восстановление .bak в MS SQL Server
Сначала узнайте логические имена файлов внутри бэкапа:
RESTORE FILELISTONLY FROM DISK = N'D:\Backup\buh.bak';
Затем восстановите бэкап в новую базу под другим именем:
RESTORE DATABASE [buh_test]
FROM DISK = N'D:\Backup\buh.bak'
WITH MOVE N'buh' TO N'D:\SQLData\buh_test.mdf',
MOVE N'buh_log' TO N'D:\SQLData\buh_test_log.ldf',
RECOVERY, STATS = 10;
Вместо buh и buh_log подставьте логические имена из первого запроса. То же можно сделать мышкой в SQL Server Management Studio: правой кнопкой по Databases → Restore Database, на странице параметров задать новое имя базы и пути к файлам.
Если указать имя существующей рабочей базы, SQL Server перезапишет её содержимым архива. Перед запуском дважды проверьте строку RESTORE DATABASE.
Восстановление дампа PostgreSQL
Для дампа в custom-формате (pg_dump -Fc):
createdb -U postgres -T template0 buh_test
pg_restore -U postgres -d buh_test -j 4 D:\Backup\buh.backup
Ключ -j 4 запускает восстановление в 4 потока. Если дамп — обычный текстовый .sql, его загружают через psql -U postgres -d buh_test -f buh.sql.
Регистрация восстановленной базы в кластере 1С
- Откройте консоль администрирования серверов 1С:Предприятия.
- В кластере перейдите в
Информационные базы, создайте новую. - Укажите сервер СУБД, тип СУБД и имя базы данных — ровно то, под которым вы её восстановили (
buh_test). - Снимите флажок создания базы данных в случае её отсутствия: база уже есть.
- Включите
Блокировка регламентных заданий включена, если это тестовая копия. - Добавьте базу в список у пользователя:
Добавить → Добавление в список существующей информационной базы, сервер и имя базы в кластере.
Ошибки при загрузке архива и как их обойти
Ещё один случай — загрузка прерывается на середине из-за антивируса, который проверяет каждый временный файл. Добавьте папку базы и временную папку пользователя в исключения на время загрузки.
Как убедиться, что данные восстановились полностью
Окно «Загрузка информационной базы успешно завершена» говорит только о том, что файл прочитан без ошибок. Проверьте и техническую целостность, и сам учёт.
Тестирование и исправление
- Убедитесь, что в базе никто не работает — проверке нужен монопольный доступ.
- В Конфигураторе откройте
Администрирование → Тестирование и исправление. - Для первого прогона отметьте
Проверка логической целостности информационной базыиПроверка ссылочной целостности информационной базы. - В режиме выберите
Тестирование— без исправления. Так вы увидите проблемы, ничего не меняя. - Если ошибки нашлись, повторите с режимом
Тестирование и исправлениена копии базы.
Для файловой базы есть отдельная утилита chdbfl.exe в папке bin установленной платформы. Она проверяет физическую структуру файла 1Cv8.1CD. Запускайте её при закрытой базе.
Проверка учёта
- 📅 Откройте журнал документов и найдите последний документ. Его дата должна совпадать с датой, на которую делали архив.
- 📊 Сформируйте оборотно-сальдовую ведомость за последний закрытый период и сравните с распечаткой или отчётностью из исходной базы.
- 🧾 Сверьте количество элементов в ключевых справочниках: контрагенты, номенклатура, сотрудники.
- 🔗 Откройте несколько старых документов — в них не должно быть битых ссылок вида
<Объект не найден>.
Что сделать с базой после восстановления
Свежеразвёрнутая база обычно работает медленнее исходной в первые часы. Это нормально, но часть работ стоит сделать сразу.
Для файловой базы:
- в
Тестирование и исправлениеотметьтеРеиндексация таблиц информационной базыиСжатие таблиц информационной базы— файл станет меньше, запросы быстрее; - при подозрении на неверные остатки добавьте
Пересчёт итогов. На крупной базе это долго, планируйте на нерабочее время.
Для базы на MS SQL:
- обновите статистику:
EXEC sp_updatestats;в контексте восстановленной базы; - для тестовой копии переведите модель восстановления в простую — журнал транзакций не будет разрастаться:
ALTER DATABASE [buh_test] SET RECOVERY SIMPLE;
- для рабочей базы модель восстановления оставьте такой, какая была в исходной, иначе сломаются планы резервного копирования.
Для PostgreSQL: выполните VACUUM ANALYZE; в восстановленной базе, чтобы планировщик получил свежую статистику.
Если в базе настроены обмены (РИБ, синхронизация с УТ или ЗУП), проверьте на копии Администрирование → Синхронизация данных. Тестовая копия с включённым обменом может отправить изменения в рабочие базы.
Автоматическое развёртывание: командная строка и скрипты
Загрузку .dt можно запустить без открытия Конфигуратора. Это удобно для ночного обновления тестовой базы из свежей выгрузки.
Создать пустую файловую базу:
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" CREATEINFOBASE File="D:\Bases\BuhTest"
Загрузить в неё выгрузку:
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /F"D:\Bases\BuhTest" /N"Администратор" /P"" /RestoreIB "D:\Backup\buh.dt" /Out "D:\Logs\restore.log" /DisableStartupDialogs
Для серверной базы вместо /F используют /S"srv1c\buh_test". Путь к платформе замените на свой: номер версии в нём у каждого свой.
Пример bat-файла для планировщика заданий Windows, который пересоздаёт тестовую копию каждую ночь:
@echo off
set V8="C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe"
set BASE=D:\Bases\BuhTest
set DT=D:\Backup\buh.dt
set LOG=D:\Logs\restore_%date:~-4%%date:~3,2%%date:~0,2%.log
%V8% DESIGNER /F"%BASE%" /N"Администратор" /P"" /RestoreIB "%DT%" /Out "%LOG%" /DisableStartupDialogs
if errorlevel 1 echo Загрузка завершилась с ошибкой, смотрите %LOG%
Загрузка .dt требует, чтобы в базе не было пользователей. Ставьте задание на ночь и предупредите коллег, что в это время тестовая копия недоступна: открытые сеансы помешают загрузке.
Пароль администратора в bat-файле хранится открытым текстом. Держите такие скрипты в папке с ограниченными правами и заведите для автоматизации отдельного пользователя только в тестовой базе.
Для серверных баз на MS SQL ночное обновление копии часто делают целиком на стороне СУБД: задание SQL Server Agent восстанавливает последний .bak рабочей базы в buh_test с параметром REPLACE. Регистрацию в кластере повторять не нужно — она уже указывает на это имя.