Возврат базы 1С из резервной копии: файловый и серверный вариант

· 10 мин

Содержание

Чтобы восстановить 1С из архива, сначала определите тип копии. Файл .dt загружают в Конфигураторе через Администрирование → Загрузить информационную базу. Архив с файлом 1Cv8.1CD распаковывают в каталог базы. Бэкап .bak или .backup восстанавливают средствами СУБД: MS SQL или PostgreSQL.

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

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

Пять минут подготовки решают, получится ли откатиться назад, если архив окажется не тем.

📦 Определите формат архива. От него зависит весь порядок действий:

Что лежит в архивеЧто этоЧем восстанавливать
*.dtВыгрузка всей базы: данные и конфигурацияКонфигуратор, любой вариант базы
*.zip с файлом 1Cv8.1CD внутриКопия каталога файловой базыРаспаковка и замена файла
*.cfТолько конфигурация, без данныхНе восстанавливает учёт
*.bak (MS SQL), *.backup или дамп PostgreSQLКопия базы данных СУБДСредства СУБД, только серверный вариант

Файл .cf не содержит ни одного документа. Если в архиве только он, данные из него не вернуть.

🗓 Сверьте дату копии. Посмотрите дату изменения файла и имя архива. Встроенное резервное копирование в типовых конфигурациях кладёт дату и время прямо в имя файла.

💾 Сохраните текущее состояние. Даже повреждённая база может пригодиться: из неё вынимают документы, которых нет в архиве. Скопируйте каталог файловой базы целиком или сделайте выгрузку .dt через Администрирование → Выгрузить информационную базу, если Конфигуратор её ещё открывает.

🔢 Проверьте версию платформы. Выгрузку .dt, сделанную на более новой платформе, на старой загрузить не получится. Номер платформы на компьютере, куда восстанавливаете, должен быть не ниже номера той, на которой делали копию. Номер видно в окне Справка → О программе.

👥 Предупредите пользователей. Загрузка .dt и замена файла базы требуют, чтобы в базе никто не работал. Все открытые сеансы придётся закрыть, несохранённые документы пропадут.

Перед восстановлением
Выполнено: 0 / 5

Восстановление файловой базы 1С из архива: три способа

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

Способ 1. Загрузка выгрузки .dt через Конфигуратор

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

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

Если всё сходится, можно либо перевести пользователей на новую базу (поправить путь в списке баз), либо загрузить тот же .dt в рабочую базу.

База на 5–10 ГБ загружается из .dt от нескольких минут до часа, в зависимости от диска. Ставьте 64-разрядный клиент: на 32-разрядном крупные выгрузки чаще обрываются из-за нехватки памяти.

Способ 2. Замена файла 1Cv8.1CD из zip-архива

Подходит, если копию делали простым копированием каталога или архиватором.

  1. Убедитесь, что в базе никто не работает . Закройте все окна 1С с этой базой, в том числе на других компьютерах сети.
  2. Переименуйте текущий 1Cv8.1CD в каталоге базы, например в 1Cv8_old.1CD. Не удаляйте его.
  3. Распакуйте 1Cv8.1CD из архива в тот же каталог.
  4. Запустите 1С и проверьте данные.

Вариант надёжнее: распаковать файл в новый пустой каталог и добавить его в список баз кнопкой Добавить → Добавление в список существующей информационной базы. Рабочая база при этом не трогается вовсе.

Копия 1Cv8.1CD, снятая архиватором во время работы пользователей, может оказаться внутренне несогласованной. Если после распаковки база не открывается или ругается на структуру, проверьте её утилитой chdbfl.exe (см. ниже) или возьмите другую копию.

Способ 3. Встроенное восстановление в типовой конфигурации

В БП 3.0, ЗУП 3.1, УТ 11 для файловых баз есть собственный механизм копирования. Он находится в Администрирование → Обслуживание → Резервное копирование и восстановление.

  1. Откройте эту форму под пользователем с полными правами.
  2. Выберите команду восстановления из резервной копии.
  3. Укажите архив, созданный этим же механизмом.
  4. Запустите восстановление. Программа завершит сеанс и заменит файл базы.

Механизм работает только с копиями, сделанными им же, и только для файлового варианта. Для серверной базы этот пункт либо недоступен, либо ведёт к описанию средств СУБД.

Как вернуть серверную базу 1С из резервной копии

В клиент-серверном варианте данные лежат в СУБД, а кластер 1С лишь обращается к ней. Поэтому восстанавливают обычно не через 1С, а средствами MS SQL или PostgreSQL. Это быстрее, чем .dt, особенно для баз на десятки гигабайт.

Шаг 1. Закройте доступ к базе в кластере

В консоли администрирования серверов 1С откройте свойства информационной базы и включите:

  • 🔒 блокировку начала сеансов, с понятным сообщением для пользователей;
  • ⏸ блокировку регламентных заданий.

Затем завершите активные сеансы этой базы в разделе Сеансы. Пользователи потеряют несохранённые данные — делайте это после рабочего дня или по согласованию.

Шаг 2. Восстановите базу средствами СУБД

MS SQL Server. В SQL Server Management Studio нажмите правой кнопкой на Databases → Restore Database, выберите файл .bak.

  • Для проверки восстанавливайте в базу с новым именем, например buh_test.
  • Для замены рабочей базы отметьте перезапись существующей базы (WITH REPLACE).

Тот же результат даёт команда:

RESTORE DATABASE buh_test
FROM DISK = N'D:\Backup\buh_full.bak'
WITH MOVE N'buh' TO N'D:\SQLData\buh_test.mdf',
     MOVE N'buh_log' TO N'D:\SQLData\buh_test_log.ldf',
     STATS = 10;

Логические имена файлов (buh, buh_log) у вас другие. Узнайте их командой RESTORE FILELISTONLY FROM DISK = N'...'.

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

PostgreSQL. Создайте пустую базу и залейте в неё дамп:

createdb -U postgres buh_test
pg_restore -U postgres -d buh_test /backup/buh.backup

Для дампа в текстовом формате (.sql) вместо pg_restore используют psql -U postgres -d buh_test -f buh.sql.

Шаг 3. Подключите базу к кластеру

Если восстанавливали в новую базу СУБД, зарегистрируйте её в консоли кластера как новую информационную базу. Укажите сервер СУБД и имя базы данных buh_test, флажок создания базы при её отсутствии не нужен.

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

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

Самовосстановление и проверка базы средствами платформы

Сама 1С не откатывает базу к архиву при запуске. Но у платформы есть инструменты, которые часто избавляют от восстановления вообще: если база «упала» после сбоя питания, её нередко удаётся вылечить без потери последних данных.

Тестирование и исправление. В Конфигураторе: Администрирование → Тестирование и исправление. Отметьте проверку логической и ссылочной целостности, пересчёт итогов. Для режима «Тестирование и исправление» нужен монопольный доступ. Перед запуском сделайте копию: исправление может удалить битые объекты.

Утилита chdbfl.exe. Лежит в каталоге bin установленной платформы, например C:\Program Files\1cv8\8.3.xx.xxxx\bin\chdbfl.exe. Она проверяет физическую целостность файла 1Cv8.1CD и пробует его исправить. Работает только с файловыми базами, пока база никем не открыта.

Встроенное копирование при выходе. В настройках резервного копирования типовой конфигурации можно включить автоматическое создание копии по расписанию или при завершении работы. Это не восстановление, но именно такие копии чаще всего и спасают.

Что случилось с базой?

Частичное восстановление: вернуть только нужные документы

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

Как это сделать:

  1. Разверните архив в отдельную базу любым способом выше.
  2. Найдите в ней пропавшие документы или справочники.
  3. Перенесите их в рабочую базу. Для этого используют обработку выгрузки и загрузки данных в XML с сайта поддержки 1С: она выгружает выбранные объекты вместе со ссылками, а в рабочей базе их загружают той же обработкой.
  4. Проведите перенесённые документы и сверьте остатки.

Обработка XML загружает объекты с теми же внутренними ссылками. Если документ в рабочей базе не удалён, а изменён, он будет перезаписан версией из архива. Переносите только то, чего в рабочей базе действительно нет.

Конфигурации базы-источника и базы-приёмника должны совпадать по релизу. Иначе часть реквизитов не загрузится.

Ошибки при восстановлении из архива и что с ними делать

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

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

Как не попасть в ситуацию без свежей копии

Хорошая схема копий — это когда восстановление занимает час, а теряется не больше одного рабочего дня.

Для файловой базы:

  • 📅 включите встроенное копирование в Администрирование → Обслуживание → Резервное копирование и восстановление с ежедневным запуском;
  • 🗂 укажите каталог на другом диске или сетевом ресурсе, не рядом с базой;
  • 🧹 настройте хранение 10–14 последних копий, чтобы не закончилось место.

Для серверной базы:

  • 🗄 полная копия средствами СУБД каждую ночь;
  • ⏱ для MS SQL в полной модели — копии журнала транзакций каждые 15–60 минут;
  • 📤 регулярная выгрузка .dt раз в неделю: её можно развернуть на любой платформе той же или более новой версии, даже без СУБД.

Для всех вариантов:

  • 🌍 хотя бы одна копия хранится вне офиса: облако или съёмный носитель, который потом отключают. Шифровальщик, попавший на сервер, шифрует и сетевые папки с копиями;
  • 🔁 раз в месяц разворачивайте случайную копию в тестовую базу и открывайте отчёты. Это единственный способ знать, что копия рабочая.
СхемаСколько данных можно потерятьВремя восстановления
Ежедневная копия файловой базыДо одного рабочего дня10–30 минут
Ночная полная копия СУБДДо одного дняОт 15 минут до пары часов
Полная копия + журналы транзакций15–60 минутДольше: нужно накатить журналы
Только еженедельная выгрузка .dtДо неделиЗависит от размера базы

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

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