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

· 9 мин

Содержание

Способ восстановления зависит от того, как сделан бэкап. Выгрузку .dt возвращают через Конфигуратор: Администрирование → Загрузить информационную базу. Файловую базу — обычным копированием файла 1Cv8.1CD обратно в каталог. Серверную — средствами СУБД: RESTORE DATABASE в MS SQL или pg_restore в PostgreSQL. Образ диска или виртуальной машины откатывают той программой, что его создавала.

Ниже — что выбрать под каждый тип копии, точные пути и команды, а также ошибки, на которых чаще всего спотыкаются при развёртывании резервной копии базы 1С 8.3.

Любая загрузка .dt и восстановление на уровне СУБД полностью затирают текущее содержимое базы. Если в рабочей базе после создания копии успели поработать — эти данные пропадут. Перед восстановлением поверх рабочей базы сделайте свежую копию её текущего состояния.

Какие бывают копии и чем они отличаются

У «резервной копии 1С» нет одного формата. Под этим словом скрывают четыре разные вещи, и восстанавливают их по-разному.

  • 📦 Выгрузка .dt — внутренний формат 1С. Содержит конфигурацию и все данные, не зависит от СУБД. Файловую базу можно выгрузить в .dt и загрузить в серверную, и наоборот. Делается и грузится через Конфигуратор.
  • 🗄️ Дамп СУБД — .bak для MS SQL Server или файл pg_dump для PostgreSQL. Относится только к серверному (клиент-серверному) варианту. Восстанавливается средствами самой СУБД, 1С в этом не участвует.
  • 📁 Копия файла базы — для файлового варианта это файл 1Cv8.1CD в каталоге базы. Резервная копия — это просто его копия, сделанная при закрытой базе.
  • 💽 Образ диска или ВМ — .tib (Acronis), .vhdx, снапшот гипервизора. Это копия всего сервера или диска целиком, а не отдельной базы.

Как понять, что у вас:

Тип копииРасширениеЧто восстанавливаетЧем откатывать
Выгрузка 1С.dtОдну базу (данные + конфигурация)Конфигуратор 1С
Дамп MS SQL.bakСерверную базуSQL Server / SSMS
Дамп PostgreSQL.backup, .sql, .dumpСерверную базуpg_restore, psql
Файл базы.1CDФайловую базуКопирование файла
Образ.tib, .vhdx, снапшотВесь диск или ВМ целикомAcronis / гипервизор

Если не знаете, файловая у вас база или серверная — откройте окно запуска 1С, выделите базу и посмотрите строку под списком. Для файловой там путь вида File="D:\Bases\Buh", для серверной — Srvr="server";Ref="buh".

Загрузка выгрузки .dt через Конфигуратор

Самый частый случай: есть файл .dt, который делали руками или заданием обслуживания.

  1. Выгоните всех пользователей из базы. Загрузка идёт монопольно — если кто-то работает, Конфигуратор не пустит.
  2. Запустите базу в режиме Конфигуратор (в окне запуска 1С выберите базу и нажмите Конфигуратор).
  3. Меню Администрирование → Загрузить информационную базу….
  4. Укажите файл .dt и подтвердите. 1С предупредит, что текущая база будет перезаписана, — соглашайтесь, если это то, что нужно.
  5. После загрузки Конфигуратор предложит перезапуститься. Согласитесь.

Монопольный доступ для .dt нужен не «на всякий случай»: при загрузке переписывается вся структура и все данные базы, и параллельная работа пользователей привела бы к разрушению.

Загрузка из командной строки пригодится для автоматизации и серверного обслуживания:

"C:\Program Files\1cv8\8.3.24.1234\bin\1cv8.exe" DESIGNER ^
  /F"D:\Bases\Buh" /N"Администратор" /P"пароль" ^
  /RestoreIB "D:\backup\buh.dt" /DisableStartupMessages

Для серверной базы вместо /F указывают /S"server\ref". Парный ключ /DumpIB делает выгрузку — его же ставят в задание резервного копирования.

.dt из более новой платформы не загрузится в старую. Платформа, в которой вы грузите копию, должна быть версии не ниже той, где копию делали. Если при загрузке 1С ругается на версию — обновите платформу до нужного номера.

Восстановление серверной базы из дампа СУБД

Если база клиент-серверная, данные лежат в СУБД, и правильный бэкап — это дамп СУБД, а не .dt. Он снимается без остановки работы и восстанавливается точно в то состояние, которое было на момент снятия.

MS SQL Server. Восстановление делают из .bak через SQL Server Management Studio или запросом. Перед этим нужно, чтобы к базе никто не был подключён, — остановите службу сервера 1С или переведите базу в однопользовательский режим.

USE master;
ALTER DATABASE [buh] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
RESTORE DATABASE [buh]
  FROM DISK = N'D:\backup\buh.bak'
  WITH REPLACE, RECOVERY;
ALTER DATABASE [buh] SET MULTI_USER;

WITH REPLACE разрешает перезапись существующей базы, RECOVERY оставляет базу готовой к работе после восстановления.

PostgreSQL. Формат дампа зависит от того, как его снимали. Для архива pg_dump -Fc (custom) восстанавливают через pg_restore, для обычного SQL-файла — через psql.

# Архивный формат (-Fc): обычно сначала создают пустую базу
createdb -U postgres buh
pg_restore -U postgres -d buh -c D:\backup\buh.backup

# Простой SQL-дамп
psql -U postgres -d buh -f D:\backup\buh.sql

Ключ -c в pg_restore удаляет объекты перед восстановлением — удобно при развёртывании поверх существующей базы.

Остановка службы сервера 1С оборвёт сеансы всех пользователей всех баз на этом сервере, а не только восстанавливаемой. Делайте это в окно, когда в кластере никто не работает, и предупредите пользователей заранее.

После восстановления на уровне СУБД имя базы и строка подключения в кластере 1С не меняются — если вы восстановили данные в ту же базу СУБД, 1С подхватит их сама. Регистрировать ничего не нужно.

Если база развёрнута в новой базе СУБД

Иногда дамп разворачивают не поверх старой базы, а в новую (чтобы сравнить или не трогать рабочую). Тогда в кластере 1С появляется «новая» информационная база, которую нужно подключить к восстановленной базе СУБД.

Это делают в консоли администрирования серверов 1С:

  1. Откройте оснастку Администрирование серверов 1С Предприятия (или утилиту rac для Linux-сервера).
  2. Разверните узел Локальный → кластер → Информационные базы.
  3. Добавьте информационную базу и в её свойствах укажите сервер СУБД, имя восстановленной базы данных и логин/пароль СУБД.
  4. Снимите флажок создания базы, если база СУБД уже существует, — иначе сервер попытается создать пустую поверх.

Для командной строки на Linux порядок тот же через rac; точные параметры смотрите в rac help, подкоманды — rac infobase.

Восстановление из образа диска или виртуальной машины

Образ (.tib, .vhdx, снапшот гипервизора) — это копия всего сервера, а не одной базы. Его откатывают, когда сервер не загружается или нужно вернуть систему целиком.

  • Acronis (.tib) — восстановление через загрузочный носитель Acronis или из работающей системы. Можно развернуть весь диск или достать из образа отдельные файлы (в том числе 1Cv8.1CD или каталог данных PostgreSQL).
  • Снапшот VMware/Hyper-V — откат средствами гипервизора. Возвращает виртуальную машину в состояние на момент снимка вместе с ОС, службами и базой.
  • .vhdx/.vhd — виртуальный диск можно подмонтировать в Windows (Управление дисками → Присоединить виртуальный жёсткий диск) и скопировать нужные файлы, не разворачивая всё.

Образ хорош как «страховка последней инстанции», но для повседневного восстановления одной базы он избыточен: откатывая весь сервер, вы теряете и другие базы, и настройки, сделанные после снимка. Для штатного бэкапа конкретной базы используйте дамп СУБД или .dt.

Регистрация восстановленной базы в списке

Когда база восстановлена, её нужно открыть. Если вы грузили .dt в уже существующую базу из списка — она открывается как обычно. Если развернули базу в новый каталог или подключили к новой базе СУБД — добавьте её в список.

  1. В окне запуска 1С нажмите Добавить….
  2. Выберите Добавление в список существующей информационной базы.
  3. Укажите тип:
    • для файловой — На данном компьютере или в локальной сети и путь к каталогу с файлом 1Cv8.1CD;
    • для серверной — На сервере 1С:Предприятия и реквизиты имя кластера / имя базы.
  4. Задайте имя базы в списке и завершите.

Для файловой базы восстановление вообще может свестись к одному шагу: закройте 1С у всех, замените файл 1Cv8.1CD в каталоге базы на копию — и всё. Запись в списке запуска при этом не меняется, потому что путь к каталогу остался прежним.

Типичные ошибки при восстановлении

Большинство проблем — не в самой 1С, а в доступе, версиях и правах. Разберём по симптомам.

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

Отдельно про права: при восстановлении из командной строки или на Linux убедитесь, что у учётной записи, от которой работает сервер 1С (usr1cv8) или СУБД, есть доступ на чтение к файлу копии и на запись в каталог базы.

Стратегия резервного копирования

Восстановление начинается задолго до аварии — с того, как настроены копии. Минимальный рабочий набор правил:

Проверка бэкапа 1С
Выполнено: 0 / 6

Как настроить:

  • Файловая база. Задание обслуживания внутри 1С (Администрирование → Обслуживание → Резервное копирование) делает .dt по расписанию. Надёжнее — внешний скрипт с ключом /DumpIB плюс копирование файла на другой носитель.
  • Серверная база. Копии снимает СУБД, а не 1С. В MS SQL — план обслуживания (Maintenance Plan) с полным и разностным бэкапом. В PostgreSQL — регламентный pg_dump или непрерывная архивация WAL для восстановления на точку во времени.

Копия, которую ни разу не разворачивали, — это не копия, а надежда. Раз в квартал восстанавливайте бэкап в отдельную тестовую базу и убеждайтесь, что она открывается и данные на месте.

Главное правило: не держите единственную копию на том же диске, что и база. Выход диска из строя унесёт и базу, и бэкап одновременно.

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

Чем `.dt` отличается от дампа СУБД?
.dt — универсальный формат 1С, его можно перенести между файловой и серверной базой и между разными СУБД. Дамп (.bak, pg_dump) привязан к конкретной СУБД, но снимается без остановки работы и восстанавливается быстрее на больших базах.
Можно ли загрузить `.dt` в базу другой конфигурации?
Нет. .dt восстанавливает и данные, и конфигурацию целиком, поверх того, что было. Открыть «бухгалтерскую» выгрузку в базе ЗУП не получится — загрузится именно та конфигурация и данные, что внутри файла.
Восстановил серверную базу из `.bak` — нужно ли что-то менять в 1С?
Если развернули в ту же базу СУБД с тем же именем — ничего, 1С подхватит данные. Если в новую базу СУБД — подключите её в консоли администрирования серверов, указав новое имя базы.
Почему при загрузке `.dt` пишет про версию платформы?
Копия сделана в более новой платформе. Загрузить её можно только в платформу с номером не ниже. Обновите платформу до нужной версии — конфигурация при этом не пострадает.
Как достать одну базу из образа Acronis, не разворачивая весь диск?
Смонтируйте образ .tib средствами Acronis и скопируйте из него нужные файлы: каталог файловой базы с 1Cv8.1CD или файлы данных СУБД. Полный откат диска для одной базы не нужен.