Администрирование · 12 мин
Как восстановить резервную копию 1С
Как восстановить резервную копию 1С: загрузка dt-файла через конфигуратор, восстановление SQL-базы, проверка данных после восстановления и типичные ошибки.
Восстановление резервной копии 1С — стандартная процедура, которая нужна при сбое базы, переносе данных на новый сервер, откате неудачного обновления или создании тестовой копии. Способ восстановления зависит от формата копии: файл выгрузки .dt загружается через конфигуратор, а копия, снятая средствами СУБД, восстанавливается инструментами самой СУБД. Перед началом работы важно понять, какой именно тип копии у вас есть, и не перепутать их — попытка загрузить «не тот» файл закончится ошибкой.
Главное правило безопасности: восстановление всегда выполняется в пустую или специально созданную базу, а не поверх работающей продуктивной. Если вы восстанавливаете копию поверх существующей базы, все текущие данные будут безвозвратно замещены данными из копии. Поэтому перед любой операцией восстановления сделайте дополнительную выгрузку текущего состояния, даже если база кажется «битой» — из неё иногда можно извлечь данные, которых нет в старой копии.
Ниже разобраны оба сценария — для файлового и клиент-серверного варианта работы, а также проверка результата, типичные ошибки и границы самостоятельной работы.
Определите тип резервной копии
Первый шаг — понять, что именно лежит в вашем архиве. В 1С существует два принципиально разных способа резервного копирования, и они не взаимозаменяемы.
Файл выгрузки .dt — универсальный формат платформы. Он создаётся через конфигуратор (Администрирование → Выгрузить информационную базу) или через пакетный режим. Такой файл содержит данные и конфигурацию в платформенном формате и подходит для переноса между разными СУБД и платформами. Минус — выгрузка и загрузка .dt занимает много времени на больших базах и требует монопольного доступа.
Копия средствами СУБД — это файл .bak (MS SQL), дамп pg_dump (PostgreSQL) или физическая копия каталога файловой базы (файл 1Cv8.1CD). Такие копии создаются быстрее и восстанавливаются быстрее, но привязаны к конкретной СУБД и, как правило, к близкой версии платформы.
Сравнение вариантов восстановления
Подходит для файловых и клиент-серверных баз, переноса между СУБД. Ограничение: медленно на больших базах, требует монопольного доступа.
Быстрый способ для клиент-серверных баз. Ограничение: копия привязана к конкретной СУБД и версии, нужны права администратора СУБД.
Простейший вариант для файловой базы. Ограничение: не гарантирует целостность при копировании во время работы пользователей.
Подготовка: что сделать до восстановления
До начала загрузки выполните три обязательных действия. Во-первых, убедитесь, что в базе, куда будет выполняться восстановление, нет работающих пользователей: загрузка .dt требует монопольного доступа, а восстановление на уровне СУБД — отключения базы от сервера 1С. Предупредите сотрудников и завершите сеансы через консоль кластера или список активных пользователей.
Во-вторых, проверьте свободное место на диске. Для загрузки .dt нужно место под сам файл, под временные файлы и под разворачиваемую базу — ориентируйтесь на объём не менее 2–3 размеров файла копии. Для восстановления SQL-копии потребуется место под файлы данных и журнала транзакций.
В-третьих, зафиксируйте версию платформы, на которой была сделана копия. Загрузка .dt в базу на более старой версии платформы, чем та, где делалась выгрузка, обычно невозможна. Обновите платформу при необходимости до нужной версии.
Восстановление файловой базы из копии каталога
Если резервная копия — это просто скопированный каталог файловой базы с файлом 1Cv8.1CD, восстановление сводится к замене файлов. Скопируйте каталог копии в нужное расположение, затем в окне запуска 1С добавьте новую информационную базу, указав путь к этому каталогу, либо измените путь у существующей базы в списке.
При первом запуске проверьте, что база открывается в конфигураторе и в пользовательском режиме без ошибок. Если платформа сообщает о несовместимости версии, проверьте версию платформы, под которой база работала ранее, и установите подходящую.
- 1Завершите работу всех пользователей с текущей базой
- 2Скопируйте каталог резервной копии в целевое расположение
- 3В списке баз 1С добавьте базу с указанием пути к каталогу или измените путь у существующей
- 4Откройте базу в конфигураторе и убедитесь в отсутствии ошибок
- 5Запустите пользовательский режим и проверьте ключевые данные
Загрузка копии .dt через конфигуратор
Это основной универсальный сценарий. Создайте новую пустую информационную базу (в файловом варианте — пустой каталог, в клиент-серверном — пустую базу на сервере) или подготовьте базу, которую допустимо полностью перезаписать. Откройте её в конфигураторе.
Выберите пункт меню Администрирование → Загрузить информационную базу и укажите файл .dt. Платформа предупредит, что текущие данные будут замещены — подтвердите действие. На больших базах загрузка может занимать от десятков минут до нескольких часов; прерывать процесс нельзя, это оставит базу в нерабочем состоянии.
После завершения загрузки платформа может предложить выполнить реструктуризацию или обновление конфигурации базы данных — соглашайтесь. Если выгрузка делалась из базы с более новой конфигурацией, а платформа подходящей версии, обычно дополнительных действий не требуется.
Загрузка в пакетном режиме
Для автоматизации удобно запускать загрузку из командной строки: 1cv8.exe DESIGNER /F"путь_к_базе" /RestoreIB "путь_к_файлу.dt" с параметрами авторизации. Это позволяет выполнять восстановление по расписанию, например для регулярного обновления тестовой базы.
Восстановление клиент-серверной базы из копии СУБД
Для баз под управлением MS SQL Server восстановление выполняется через SQL Server Management Studio: правый клик по узлу «Базы данных» → «Восстановить базу данных» → выбор устройства с файлом .bak. Восстанавливайте в новую базу с отдельным именем, чтобы не затронуть работающую. Перед восстановлением поверх существующей базы переведите её в однопользовательский режим и убедитесь, что нет активных подключений.
Для PostgreSQL используется команда pg_restore (для копий в формате custom) или psql (для текстовых дампов) с указанием целевой базы. После восстановления базы на уровне СУБД её нужно зарегистрировать в кластере 1С: в консоли кластера создайте новую информационную базу, указав сервер СУБД, имя восстановленной базы и параметры доступа. Установите в свойствах базы блокировку регламентных заданий, если это тестовая копия, — иначе копия начнёт выполнять фоновые задачи параллельно с рабочей базой.
Проверка данных после восстановления
Факт успешной загрузки ещё не означает, что база готова к работе. Выполните минимальный контроль: откройте конфигуратор и убедитесь, что конфигурация базы данных соответствует ожидаемой, затем запустите пользовательский режим и проверьте несколько контрольных точек — остатки по складу или по счетам на дату копии, наличие последних документов, работу ключевых отчётов.
Для файловых баз после восстановления полезно запустить «Тестирование и исправление» в режиме проверки без исправлений, чтобы убедиться в отсутствии физических ошибок. В клиент-серверном варианте аналогичную роль играет проверка целостности средствами СУБД (например, DBCC CHECKDB для MS SQL).
Как проверить результат
База открывается без сообщений об ошибках и несовместимости
Ошибки открытия, сообщения о повреждении или несовместимой версии
Остатки и последние документы соответствуют моменту создания копии
Данные отсутствуют, даты документов не совпадают с ожидаемыми
В тестовой копии задания заблокированы, в рабочей — выполняются штатно
Тестовая копия выполняет обмены и отправки во внешние системы
Типичные ошибки при восстановлении
Большинство проблем при восстановлении связано не с самой процедурой, а с нарушением предварительных условий. Разберём самые частые.
Ошибка «Нарушена целостность структуры конфигурации» или отказ загрузки .dt чаще всего означает, что файл копии повреждён (например, прервана запись на диск или копирование по сети) либо версия платформы ниже той, на которой делалась выгрузка. Проверьте версию платформы и целостность файла — сравните его размер с исходным, при наличии второй копии попробуйте её.
Ошибка монопольного доступа возникает, если в базе остались активные сеансы, включая фоновые задания и сеансы COM-соединений. Завершите все сеансы через консоль кластера или подождите их тайм-аута. Отдельная частая ситуация — восстановление SQL-копии «поверх» без отключения пользователей: СУБД откажет из-за активных подключений.
Когда восстановление лучше доверить специалисту
Самостоятельное восстановление оправданно, когда есть заведомо исправная копия, отдельная база для развёртывания и время на проверку. Обратитесь к администратору 1С или поддержке франчайзи, если: единственная копия не загружается, база повреждена и копии нет вовсе, требуется восстановление на конкретный момент времени через журналы транзакций SQL, либо база работает в распределённой архитектуре (РИБ) — там восстановление узла имеет свои особенности с перерегистрацией узлов.
Помните, что попытки «починить» повреждённую базу утилитой chdbfl.exe или тестированием и исправлением без резервной копии исходного файла могут усугубить повреждения. Сначала — копия исходного состояния, потом любые ремонтные действия.
Что важно запомнить
Определите тип копии: .dt загружается через конфигуратор, копии СУБД — средствами СУБД с последующей регистрацией в кластере. Восстанавливайте в отдельную или пустую базу, сохранив текущее состояние. После восстановления проверьте данные, отключите регламентные задания в тестовых копиях и только потом запускайте пользователей.
Частые вопросы
Можно ли восстановить копию .dt в базу с другой конфигурацией?
Нет. Файл .dt содержит и данные, и конфигурацию: при загрузке он полностью замещает содержимое базы, включая её конфигурацию. Перенести данные между разными конфигурациями можно только через обмены (например, «Конвертацию данных») или универсальные обработки загрузки, но не через восстановление копии.
Копия сделана на более новой версии платформы, чем установлена у меня. Что делать?
Установите версию платформы не ниже той, на которой выполнялась выгрузка. Загрузка .dt на старую платформу невозможна. Платформы разных версий могут сосуществовать на одном компьютере, поэтому обновление не сломает работу других баз.
Как восстановить базу на определённый момент времени, а не на момент копии?
Это возможно только в клиент-серверном варианте на MS SQL при модели восстановления Full: восстанавливается полная копия, затем последовательно применяются копии журнала транзакций с указанием целевого времени (опция STOPAT). В файловом варианте и для .dt такой возможности нет — доступен только момент создания копии.
Файл .dt не загружается и выдаёт ошибку. Копия потеряна?
Не обязательно. Сначала проверьте версию платформы и целостность файла (размер, контрольная сумма, если есть). Попробуйте загрузку на другом компьютере с достаточным объёмом памяти и диска. Если есть вторая копия или копия на уровне СУБД — используйте её. Полностью повреждённый .dt штатными средствами не восстанавливается.
Нужно ли после восстановления заново настраивать пользователей и права?
Нет: список пользователей и их роли хранятся внутри информационной базы и восстанавливаются вместе с данными. Но если вы разворачиваете копию в новом кластере 1С, потребуется заново зарегистрировать саму базу в кластере и проверить параметры её подключения.
Как часто нужно проверять, что резервные копии реально восстанавливаются?
Рекомендуется периодически выполнять тестовое восстановление в отдельную базу — например, раз в месяц или после изменений в схеме резервного копирования. Копия, которая ни разу не проверялась восстановлением, не гарантирует сохранность данных: файл может оказаться неполным или повреждённым.