Восстановление базы 1С из резервной копии: файл .dt, бэкап SQL и командная строка
Содержание
Чтобы загрузить копию базы
1С из файла .dt, создайте пустую базу, откройте её в Конфигураторе и выберите Администрирование → Загрузить информационную базу. Если копия — это файл 1Cv8.1CD, ничего загружать не нужно: положите его в отдельную папку и подключите в списке баз. Бэкап СУБД (.bak, .backup) восстанавливают средствами самого SQL-сервера, а потом регистрируют базу в кластере 1С.
Способ выбирают по формату копии, а не по вкусу. Главное правило для любого способа: копию разворачивают в новую пустую базу, рабочую не трогают.
Какая копия у вас на руках и что подготовить
Посмотрите на расширение файла. От него зависит весь дальнейший порядок действий.
| Что за файл | Откуда берётся | Как восстанавливать |
|---|---|---|
.dt | Выгрузка из Конфигуратора или из клиента | Загрузка в Конфигураторе, /RestoreIB или ibcmd |
1Cv8.1CD | Копия папки файловой базы | Подключение папки в список баз |
.zip, .7z с 1Cv8.1CD внутри | Автоматическое резервное копирование файловой базы | Распаковать и подключить |
.bak | Бэкап Microsoft SQL Server | Восстановление в SQL Server Management Studio |
.backup, .dump | Бэкап PostgreSQL через pg_dump | pg_restore в новую базу |
Файл .dt универсален. Его можно загрузить и в файловую, и в серверную базу
, на любую СУБД. Бэкап SQL, наоборот, поднимается только на той же СУБД.
Что проверить до загрузки
- 💾 Свободное место. Файл
.dtсжат. Распакованная база занимает заметно больше, так что держите на диске запас. - 🔢 Версию платформы. Загружайте копию на платформе с номером не ниже той, на которой её выгрузили. Номер платформы виден в окне
Справка → О программе. - 🧩 Режим совместимости конфигурации. Если база работает в режиме совместимости, например, 8.3.20, платформа должна быть с номером не ниже этого режима.
- 🖥️ Разрядность. Большой
.dt(десятки гигабайт) лучше грузить 64-битным Конфигуратором: 32-битный упирается в память. - 👤 Логин и пароль из копии. Пользователи загружаются вместе с данными. После загрузки войти можно только под учётной записью из копии, а не из той базы, куда грузили.
Загрузка .dt полностью заменяет данные и конфигурацию базы-приёмника. Отменить её нельзя. Никогда не грузите копию в рабочую базу «чтобы посмотреть»: создайте отдельную пустую.
Загрузка копии файловой базы 1С из файла .dt
Самый частый случай: бухгалтер прислал выгрузку, нужно развернуть её у себя.
Шаг 1. Создайте пустую базу
- Запустите 1С и в окне выбора баз нажмите
Добавить. - Выберите
Создание новой информационной базы. - Отметьте
Создание информационной базы без конфигурации для разработки конфигурации или загрузки выгруженной информационной базы. - Задайте имя, например, «Бухгалтерия — копия от 05.10».
- Тип расположения —
На данном компьютере или на компьютере в локальной сети. Укажите новую пустую папку, например,D:\Bases\Buh_copy. - Нажмите
ДалееиГотово.
Шаблон конфигурации при создании не выбирайте. Он всё равно будет заменён, а время на создание уйдёт.
Шаг 2. Загрузите файл в Конфигураторе
- Выделите новую базу в списке и нажмите
Конфигуратор. - Откройте меню
Администрирование → Загрузить информационную базу…. - Укажите файл
.dtи нажмитеОткрыть. - Подтвердите предупреждение о том, что текущие данные будут потеряны.
- Дождитесь окончания. Небольшая база загружается за минуты, база в 20–30 ГБ — до часа и дольше.
- На вопрос о перезапуске Конфигуратора ответьте
Да.
После перезапуска Конфигуратор попросит логин и пароль — уже из загруженной копии.
Шаг 3. Откройте базу в режиме 1С:Предприятие
Закройте Конфигуратор и запустите базу обычным способом. Если она стартует без ошибок, загрузка прошла успешно.
Если копию будут открывать несколько человек по сети, папку базы кладите на сервер или общий ресурс заранее, до загрузки. Переносить уже загруженную файловую базу можно, но это лишний шаг.
Как подключить копию базы 1С из файла 1Cv8.1CD
Файловая база 1С — это папка с файлом 1Cv8.1CD. Копия такой папки уже готова к работе. Загрузка не нужна.
- Создайте новую папку, например,
D:\Bases\Buh_from_backup. - Скопируйте туда
1Cv8.1CD. Если копия в архиве — распакуйте. - В окне выбора баз нажмите
Добавить. - Выберите
Добавление в список существующей информационной базы. - Укажите путь к новой папке и нажмите
Готово.
Не кладите копию в папку рабочей базы и не перезаписывайте рабочий 1Cv8.1CD. Две базы в одной папке не живут.
Если копия могла повредиться
Если файл долго лежал на флешке или скачан не полностью, проверьте его до работы. В папке платформы (C:\Program Files\1cv8\<номер версии>\bin) есть утилита chdbfl.exe. Она проверяет физическую целостность файла 1Cv8.1CD и умеет исправлять часть ошибок.
Запускайте её при закрытой базе и на копии, а не на единственном экземпляре. Если повреждения серьёзные, исправление может удалить часть записей.
Загрузка копии базы 1С в клиент-серверном варианте
В серверной базе данные лежат в СУБД — Microsoft SQL Server или PostgreSQL. Здесь два пути: через .dt или через бэкап самой СУБД.
Вариант А: загрузка .dt в базу на сервере 1С
- Откройте консоль администрирования серверов 1С:Предприятия.
- Раскройте кластер, на ветке
Информационные базывызовитеСоздать → Информационная база. - Заполните поля: имя базы в кластере, сервер СУБД, тип СУБД, имя базы данных, пользователь и пароль СУБД.
- Отметьте
Создать базу данных в случае ее отсутствия. - Отметьте
Установить блокировку регламентных заданий. Об этом — в разделе про действия после загрузки. - Добавьте базу в список на клиенте:
Добавить → Добавление в список существующей→На сервере 1С:Предприятия, укажите кластер и имя базы. - Загрузите
.dtв Конфигураторе так же, как для файловой базы.
Вариант Б: восстановление бэкапа MS SQL (.bak)
Этот путь быстрее для больших баз: SQL Server восстанавливает бэкап без перекодировки данных.
- В SQL Server Management Studio вызовите на ветке
DatabasesкомандуRestore Database…. - Источник —
Device, выберите файл.bak. - В поле
Databaseвпишите новое имя, например,buh_copy. - На странице
Filesпроверьте пути файлов данных и журнала. Они должны вести на новые файлы, а не на файлы рабочей базы. - Нажмите
OKи дождитесь завершения.
То же самое через T-SQL. Сначала узнайте логические имена файлов внутри бэкапа:
RESTORE FILELISTONLY FROM DISK = N'D:\Backup\buh.bak';
Затем восстановите под новым именем, подставив логические имена из результата:
RESTORE DATABASE buh_copy
FROM DISK = N'D:\Backup\buh.bak'
WITH MOVE N'buh' TO N'D:\SQLData\buh_copy.mdf',
MOVE N'buh_log' TO N'D:\SQLData\buh_copy_log.ldf',
RECOVERY, STATS = 10;
После восстановления создайте в консоли кластера информационную базу, как в варианте А, но в поле базы данных укажите buh_copy. Раз база в SQL уже есть, 1С подключится к ней с данными.
Вариант В: восстановление бэкапа PostgreSQL
Бэкап в формате pg_dump -Fc восстанавливают так:
createdb -U postgres -T template0 buh_copy
pg_restore -U postgres -d buh_copy -j 4 D:\Backup\buh.backup
Ключ -j 4 запускает восстановление в 4 потока. Ставьте число не больше количества ядер сервера. Затем зарегистрируйте buh_copy в кластере 1С, как описано выше.
Загрузка копии через командную строку
Командная строка нужна, когда .dt большой, базу восстанавливают по расписанию или копию разворачивают на тестовом сервере каждую ночь. Конфигуратор при этом работает без окон.
Создать пустую файловую базу:
"C:\Program Files\1cv8\8.3.24.1467\bin\1cv8.exe" CREATEINFOBASE File="D:\Bases\Buh_copy"
Загрузить в неё .dt и записать лог:
"C:\Program Files\1cv8\8.3.24.1467\bin\1cv8.exe" DESIGNER /F "D:\Bases\Buh_copy" /RestoreIB "D:\Backup\buh.dt" /Out "D:\Backup\restore.log" /DisableStartupDialogs
Для серверной базы вместо /F укажите /S "srv1c\buh_copy". Если в базе-приёмнике уже есть пользователи, добавьте /N "Администратор" /P "пароль".
Номер платформы в пути замените на свой. После завершения откройте restore.log: при успехе там нет сообщений об ошибках, при сбое — их текст.
На платформе 8.3.14 и новее есть отдельная утилита ibcmd. Она работает с базой без запуска Конфигуратора и сервера 1С и тоже умеет загружать .dt. Параметры загрузки смотрите в справке: ibcmd help infobase.
Не храните пароль администратора в bat-файле открытым текстом на общем диске. Для регулярных задач заведите отдельного пользователя с нужными правами.
Что сделать сразу после загрузки копии
Загруженная копия — полный двойник рабочей базы. Она знает адреса банков, ЭДО, почты и узлы обменов. Если её не притормозить, копия начнёт работать «за оригинал».
Что может случиться:
- 📧 Копия разошлёт почту клиентам, например, повторные счета или напоминания.
- 🔄 Обмен с УТ, сайтом или кассами заберёт данные в копию, и рабочая база их не получит.
- 📑 Регламентные задания загрузят выписки или документы ЭДО в копию.
Как это предотвратить
- Блокировка регламентных заданий. Для серверной базы — флажок
Установить блокировку регламентных заданийв свойствах базы в консоли кластера. Для файловой базы регламентные задания выполняются, только пока база открыта в клиенте. - Ответ на вопрос о перемещении. Типовые конфигурации на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) при первом запуске в новом месте предупреждают, что база перемещена или восстановлена из копии. Выберите вариант, что это копия информационной базы. Тогда работа с внешними ресурсами останется заблокированной.
- Отличие в заголовке. Задайте копии заголовок, например, «КОПИЯ — НЕ ВВОДИТЬ». В БП 3.0 его меняют в
Администрирование → Общие настройки, поле заголовка программы. Так никто не перепутает окна.
Если копию разворачивают взамен испорченной рабочей базы, всё наоборот: на вопрос о перемещении отвечают, что база перемещена, и блокировку регламентных заданий снимают.