Восстановление базы 1С из копии: .1CD, .dt и серверные базы

· 10 мин

Содержание

Чтобы восстановить базу 1С из резервной копии, сначала определите, что у вас за копия: файл выгрузки .dt, копия файловой базы .1CD или резервная копия серверной базы на уровне СУБД. От этого зависит весь порядок действий. Выгрузку .dt загружают через Конфигуратор (Администрирование → Загрузить информационную базу…), файловую копию .1CD просто подставляют в каталог базы, а серверную копию восстанавливают средствами SQL Server или PostgreSQL.

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

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

С чего начать: какой у вас тип копии

Форматов резервных копий 1С несколько, и восстанавливаются они по-разному. Определитесь с типом, прежде чем что-то делать.

  • 📦 Файл .dt — выгрузка информационной базы из Конфигуратора. Содержит и конфигурацию, и данные. Самый универсальный формат: один файл переносится между компьютерами и серверами.
  • 🗂️ Файл 1Cv8.1CD — это и есть сама файловая база. Копия такого файла (или всего каталога базы) — простейший бэкап для файлового варианта.
  • 🖥️ Резервная копия СУБД — для клиент-серверного варианта. Это дамп SQL Server (.bak) или PostgreSQL (.dump / .sql), снятый средствами самой СУБД.
  • 🤖 Копия из автоматического резервирования — 1С умеет сама складывать .dt по расписанию (Администрирование → Обслуживание → Резервное копирование). Такая копия — обычный .dt, восстанавливается стандартно.
Какой у вас сценарий восстановления?

Что сделать до восстановления

Пара минут подготовки экономит час на разбор последствий. Порядок одинаков для всех сценариев.

  1. Снимите копию текущего состояния. Даже если база «битая» — сделайте её выгрузку или скопируйте каталог. Если восстановление пойдёт не туда, будет куда откатиться.
  2. Завершите сеансы пользователей. Загрузка .dt, подмена .1CD и восстановление СУБД требуют, чтобы с базой никто не работал. В клиент-серверном варианте завершение сеансов оборвёт работу всех пользователей — делайте это в согласованное окно, а не в разгар рабочего дня.
  3. Проверьте версию платформы. Выгрузку .dt, сделанную на более новой платформе, старая платформа не загрузит. Номер платформы должен быть не ниже того, на котором снималась копия. Посмотреть версию : в окне запуска 1С пункт меню Справка → О программе или имя каталога в C:\Program Files\1cv8\.
  4. Оцените свободное место. На диске должно хватить места и под саму базу, и под временные файлы распаковки — ориентируйтесь минимум на двойной размер базы.
  5. Запишите, куда восстанавливаете. Путь к каталогу файловой базы или имя базы на сервере СУБД — чтобы не перепутать рабочую базу с архивной.

Если нужно восстановить данные, не трогая рабочую базу, создайте отдельную информационную базу и загрузите копию в неё. Так вы сравните содержимое и перенесёте только нужное, ничего не затирая.

Восстановление файловой базы из копии .1CD

Файловая база — это каталог с файлом 1Cv8.1CD внутри. Восстановление сводится к тому, чтобы вернуть на место этот файл из копии.

Если у вас копия каталога базы:

  1. Закройте все окна 1С, которые работают с этой базой (и Предприятие, и Конфигуратор).
  2. Откройте каталог рабочей базы. Путь виден в окне запуска: выделите базу в списке — внизу показан каталог. Либо C:\Users\…\1C\ или сетевая папка.
  3. Замените файл 1Cv8.1CD файлом из резервной копии. Старый файл не удаляйте сразу — переименуйте, например в 1Cv8.1CD.old, на случай отката.
  4. Запустите 1С в режиме Предприятия и проверьте данные.

Если копию удобнее подключить отдельной базой:

  1. В окне запуска 1С нажмите Добавить.
  2. Выберите Добавление в список существующей информационной базы.
  3. Укажите каталог, в котором лежит восстановленный 1Cv8.1CD.
  4. Задайте имя базы в списке (например, «Архив на дату») и откройте её.

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

Файл 1Cv8.1CD нельзя копировать, пока база открыта хоть одним сеансом — получите неполную или повреждённую копию. Перед копированием убедитесь, что из базы все вышли.

Если файловая база повреждена и не открывается, восстановление из копии — лучший путь. Когда копии нет, применяют утилиту проверки физической целостности chdbfl.exe (лежит в каталоге платформы, bin). Она умеет находить и исправлять нарушения структуры файла, но данные при тяжёлых повреждениях гарантировать не может — потому копия и важнее любой утилиты.

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

Файл .dt — это полная выгрузка базы. Загрузка такого файла целиком заменяет и данные, и конфигурацию текущей базы.

Порядок для файловой и серверной базы одинаков:

  1. Запустите 1С, выделите нужную базу и нажмите Конфигуратор.
  2. Войдите под пользователем с правами администратора.
  3. Откройте меню Администрирование → Загрузить информационную базу….
  4. В диалоге выберите файл .dt и подтвердите.
  5. Конфигуратор предупредит, что текущая база будет перезаписана, и запросит монопольный доступ. Если с базой работают — загрузка не начнётся, пока сеансы не завершены.
  6. После загрузки Конфигуратор предложит перезапуститься — согласитесь и проверьте данные в режиме Предприятия.
Чек-лист загрузки .dt
Выполнено: 0 / 6

Монопольный доступ здесь — не прихоть: при загрузке перестраивается вся структура, и параллельная работа невозможна. Это штатное требование именно для операций загрузки .dt, обновления структуры и тестирования — для обычной работы монополия не нужна.

Если .dt большой (несколько гигабайт), загрузка занимает десятки минут. Не прерывайте процесс — оборванная загрузка оставит базу в нерабочем состоянии, и придётся начинать заново.

Загрузка .dt в пакетном режиме. Когда нужно восстановить без интерактивного окна (например, из скрипта), применяют запуск платформы с параметром. Общий вид — вызов 1cv8 в режиме DESIGNER с ключом /RestoreIB и путём к файлу. Точный набор параметров для вашей версии смотрите в документации по пакетному запуску: набор ключей зависит от платформы, и выдумывать их не стоит.

Восстановление серверной базы: SQL Server и PostgreSQL

В клиент-серверном варианте есть два принципиально разных способа вернуть данные, и путать их не нужно.

Способ 1. Через Конфигуратор (загрузка .dt). Если ваша копия — это файл .dt, восстанавливайте так же, как файловую: Администрирование → Загрузить информационную базу…. 1С сама перельёт данные в базу СУБД. Это самый простой путь, но он требует, чтобы .dt вообще был снят.

Способ 2. Средствами СУБД. Если копия снята на уровне базы данных (дамп SQL Server или PostgreSQL), восстанавливать нужно инструментами самой СУБД — Конфигуратор здесь не участвует.

Для Microsoft SQL Server:

  1. Остановите работу пользователей с базой — восстановление требует отсутствия активных соединений.
  2. В SQL Server Management Studio выберите базу → Tasks → Restore → Database.
  3. Укажите файл резервной копии .bak и целевую базу.
  4. На вкладке параметров при необходимости включите перезапись существующей базы.

То же самое командой T-SQL в общем виде:

RESTORE DATABASE [MyBase]
FROM DISK = N'D:\Backup\mybase.bak'
WITH REPLACE, RECOVERY;

Для PostgreSQL (включая сборки 1С):

# из дампа в формате custom (.dump), создав чистую базу
pg_restore -U postgres -d mybase -c backup.dump

# из текстового дампа (.sql)
psql -U postgres -d mybase -f backup.sql

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

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

Разбор ошибок при восстановлении

Большинство сбоев при восстановлении копии сводятся к нескольким типичным причинам.

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

Отдельно про версии конфигурации. Если платформа загрузила .dt, но Предприятие ругается на несоответствие конфигурации базы данных — выполните в Конфигураторе Конфигурация → Обновить конфигурацию базы данных (F7). Это нормальный шаг после загрузки копии, снятой с другой версии конфигурации.

Как настроить автоматическое резервное копирование

Восстанавливать приходится редко, если копии снимаются регулярно. В 1С 8.3 есть встроенный механизм для файловых баз.

  1. Откройте Администрирование → Обслуживание (в типовых конфигурациях на базе «Такси»).
  2. Найдите блок Резервное копирование и восстановление.
  3. Включите регулярное копирование и задайте расписание и каталог для хранения .dt.
  4. Укажите, сколько копий хранить — старые будут удаляться автоматически.

Для серверных баз копии удобнее настраивать средствами самой СУБД — регламентные задания резервного копирования в SQL Server или pg_dump по расписанию в PostgreSQL. Это надёжнее, чем выгрузка .dt: СУБД снимает копию без монопольного доступа и не мешает работе пользователей.

Несколько практических правил:

  • 📅 Храните копии не на том же диске, где лежит база. Отказ диска не должен уносить и базу, и бэкап.
  • 🔁 Проверяйте восстановление. Копия, которую ни разу не разворачивали, — это предположение, а не гарантия. Раз в период разворачивайте копию в тестовую базу.
  • 🗓️ Держите несколько поколений. Ошибку в данных часто замечают не сразу, и копия недельной давности бывает нужнее вчерашней.

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

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

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