Восстановление базы 1С из резервной копии: файл .dt, бэкап SQL и командная строка

· 9 мин

Содержание

Чтобы загрузить копию базы 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_dumppg_restore в новую базу

Файл .dt универсален. Его можно загрузить и в файловую, и в серверную базу , на любую СУБД. Бэкап SQL, наоборот, поднимается только на той же СУБД.

Какой у вас файл копии?

Что проверить до загрузки

  • 💾 Свободное место. Файл .dt сжат. Распакованная база занимает заметно больше, так что держите на диске запас.
  • 🔢 Версию платформы. Загружайте копию на платформе с номером не ниже той, на которой её выгрузили. Номер платформы виден в окне Справка → О программе.
  • 🧩 Режим совместимости конфигурации. Если база работает в режиме совместимости, например, 8.3.20, платформа должна быть с номером не ниже этого режима.
  • 🖥️ Разрядность. Большой .dt (десятки гигабайт) лучше грузить 64-битным Конфигуратором: 32-битный упирается в память.
  • 👤 Логин и пароль из копии. Пользователи загружаются вместе с данными. После загрузки войти можно только под учётной записью из копии, а не из той базы, куда грузили.

Загрузка .dt полностью заменяет данные и конфигурацию базы-приёмника. Отменить её нельзя. Никогда не грузите копию в рабочую базу «чтобы посмотреть»: создайте отдельную пустую.

Загрузка копии файловой базы 1С из файла .dt

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

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

  1. Запустите 1С и в окне выбора баз нажмите Добавить.
  2. Выберите Создание новой информационной базы.
  3. Отметьте Создание информационной базы без конфигурации для разработки конфигурации или загрузки выгруженной информационной базы.
  4. Задайте имя, например, «Бухгалтерия — копия от 05.10».
  5. Тип расположения — На данном компьютере или на компьютере в локальной сети. Укажите новую пустую папку, например, D:\Bases\Buh_copy.
  6. Нажмите Далее и Готово.

Шаблон конфигурации при создании не выбирайте. Он всё равно будет заменён, а время на создание уйдёт.

Шаг 2. Загрузите файл в Конфигураторе

  1. Выделите новую базу в списке и нажмите Конфигуратор.
  2. Откройте меню Администрирование → Загрузить информационную базу….
  3. Укажите файл .dt и нажмите Открыть.
  4. Подтвердите предупреждение о том, что текущие данные будут потеряны.
  5. Дождитесь окончания. Небольшая база загружается за минуты, база в 20–30 ГБ — до часа и дольше.
  6. На вопрос о перезапуске Конфигуратора ответьте Да.

После перезапуска Конфигуратор попросит логин и пароль — уже из загруженной копии.

Шаг 3. Откройте базу в режиме 1С:Предприятие

Закройте Конфигуратор и запустите базу обычным способом. Если она стартует без ошибок, загрузка прошла успешно.

Если копию будут открывать несколько человек по сети, папку базы кладите на сервер или общий ресурс заранее, до загрузки. Переносить уже загруженную файловую базу можно, но это лишний шаг.

Как подключить копию базы 1С из файла 1Cv8.1CD

Файловая база 1С — это папка с файлом 1Cv8.1CD. Копия такой папки уже готова к работе. Загрузка не нужна.

  1. Создайте новую папку, например, D:\Bases\Buh_from_backup.
  2. Скопируйте туда 1Cv8.1CD. Если копия в архиве — распакуйте.
  3. В окне выбора баз нажмите Добавить.
  4. Выберите Добавление в список существующей информационной базы.
  5. Укажите путь к новой папке и нажмите Готово.

Не кладите копию в папку рабочей базы и не перезаписывайте рабочий 1Cv8.1CD. Две базы в одной папке не живут.

Если копия могла повредиться

Если файл долго лежал на флешке или скачан не полностью, проверьте его до работы. В папке платформы (C:\Program Files\1cv8\<номер версии>\bin) есть утилита chdbfl.exe. Она проверяет физическую целостность файла 1Cv8.1CD и умеет исправлять часть ошибок.

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

Загрузка копии базы 1С в клиент-серверном варианте

В серверной базе данные лежат в СУБД — Microsoft SQL Server или PostgreSQL. Здесь два пути: через .dt или через бэкап самой СУБД.

Вариант А: загрузка .dt в базу на сервере 1С

  1. Откройте консоль администрирования серверов 1С:Предприятия.
  2. Раскройте кластер, на ветке Информационные базы вызовите Создать → Информационная база.
  3. Заполните поля: имя базы в кластере, сервер СУБД, тип СУБД, имя базы данных, пользователь и пароль СУБД.
  4. Отметьте Создать базу данных в случае ее отсутствия.
  5. Отметьте Установить блокировку регламентных заданий. Об этом — в разделе про действия после загрузки.
  6. Добавьте базу в список на клиенте: Добавить → Добавление в список существующей → На сервере 1С:Предприятия, укажите кластер и имя базы.
  7. Загрузите .dt в Конфигураторе так же, как для файловой базы.

Вариант Б: восстановление бэкапа MS SQL (.bak)

Этот путь быстрее для больших баз: SQL Server восстанавливает бэкап без перекодировки данных.

  1. В SQL Server Management Studio вызовите на ветке Databases команду Restore Database….
  2. Источник — Device, выберите файл .bak.
  3. В поле Database впишите новое имя, например, buh_copy.
  4. На странице Files проверьте пути файлов данных и журнала. Они должны вести на новые файлы, а не на файлы рабочей базы.
  5. Нажмите 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-файле открытым текстом на общем диске. Для регулярных задач заведите отдельного пользователя с нужными правами.

Что сделать сразу после загрузки копии

Загруженная копия — полный двойник рабочей базы. Она знает адреса банков, ЭДО, почты и узлы обменов. Если её не притормозить, копия начнёт работать «за оригинал».

Что может случиться:

  • 📧 Копия разошлёт почту клиентам, например, повторные счета или напоминания.
  • 🔄 Обмен с УТ, сайтом или кассами заберёт данные в копию, и рабочая база их не получит.
  • 📑 Регламентные задания загрузят выписки или документы ЭДО в копию.

Как это предотвратить

  1. Блокировка регламентных заданий. Для серверной базы — флажок Установить блокировку регламентных заданий в свойствах базы в консоли кластера. Для файловой базы регламентные задания выполняются, только пока база открыта в клиенте.
  2. Ответ на вопрос о перемещении. Типовые конфигурации на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) при первом запуске в новом месте предупреждают, что база перемещена или восстановлена из копии. Выберите вариант, что это копия информационной базы. Тогда работа с внешними ресурсами останется заблокированной.
  3. Отличие в заголовке. Задайте копии заголовок, например, «КОПИЯ — НЕ ВВОДИТЬ». В БП 3.0 его меняют в Администрирование → Общие настройки, поле заголовка программы. Так никто не перепутает окна.

Если копию разворачивают взамен испорченной рабочей базы, всё наоборот: на вопрос о перемещении отвечают, что база перемещена, и блокировку регламентных заданий снимают.

Ошибки при загрузке копии базы 1С и что делать

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

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

Можно ли загрузить копию в базу, где уже есть данные?
Технически да, но все данные базы-приёмника будут стёрты и заменены копией. Объединения не происходит.
Можно ли загрузить .dt из серверной базы в файловую и наоборот?
Да. Формат .dt не зависит от варианта работы и СУБД, поэтому его используют для переезда между файловым и серверным режимом.
Нужна ли отдельная лицензия для копии базы?
Лицензия привязана к компьютеру или серверу, а не к базе. Копия на том же компьютере работает в рамках имеющихся лицензий, но каждый открытый сеанс занимает лицензию так же, как в рабочей базе.
Загружаются ли вместе с копией внешние обработки и расширения?
Расширения конфигурации и внешние обработки, добавленные в справочник дополнительных обработок, хранятся в базе и попадают в .dt. Файлы обработок, которые открывали с диска, в копию не входят.
Чем выгрузка .dt отличается от копирования папки с базой?
Копия 1Cv8.1CD сохраняет файл как есть, включая возможные внутренние повреждения. Выгрузка .dt пересобирает данные заново, поэтому её часто используют и как способ «пересобрать» базу. Зато копирование папки быстрее.