Возврат базы 1С 8.3 из бэкапа: файл .dt, копия 1Cv8.1CD и дамп СУБД

· 9 мин

Содержание

Чтобы восстановить базу 1С 8.3 из резервной копии в формате .dt, откройте базу в Конфигураторе и выберите Администрирование → Загрузить информационную базу. Укажите файл выгрузки, подтвердите замену данных — после загрузки база станет такой, какой была в момент выгрузки. Если копия — это файл 1Cv8.1CD или дамп SQL, способ другой, и о каждом ниже.

Частая ошибка — грузить .dt прямо в рабочую базу «на всякий случай». Загрузка полностью стирает текущие данные, включая список пользователей. Сначала восстановите копию в новую пустую базу, проверьте её, и только потом решайте, заменять ли рабочую.

1. Что у вас на руках: тип копии определяет способ

Перед восстановлением посмотрите на сам файл бэкапа. От его вида зависит, какой инструмент нужен и сколько времени займёт работа.

Что лежит в папке бэкапаОткуда взялосьЧем восстанавливать
Файл .dtВыгрузка из Конфигуратора или пакетного режимаЗагрузить информационную базу в Конфигураторе
Файл 1Cv8.1CD или архив .zip с нимКопирование папки файловой базы, встроенное резервное копирование программыЗамена файла в каталоге базы
.bak (MS SQL)Задание обслуживания SQL ServerRESTORE DATABASE в SQL Server
.backup, .dump, .sql (PostgreSQL)pg_dumppg_restore или psql
.cfСохранение конфигурацииТолько программа, без данных

Файл .cf — это не резервная копия данных. В нём нет ни одного документа или справочника, только конфигурация. Если других файлов нет, восстановить учёт из него не получится.

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

  • 💾 Свободное место на диске — примерно в 2–3 раза больше размера .dt: выгрузка сжата, база после загрузки заметно крупнее.
  • 🔢 Платформа с номером не ниже той, в которой сделана выгрузка. Номер видно в Справка → О программе у той базы, откуда делали копию.
  • 👤 Логин и пароль администратора из той копии. После загрузки действует список пользователей из бэкапа, а не текущий.
  • 🚪 Монопольный доступ: загрузка .dt требует, чтобы в базе не было других сеансов.

2. Загрузка выгрузки .dt в файловую базу

Это самый частый сценарий: бухгалтер или администратор держит набор .dt за разные даты и возвращает нужную.

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

  1. В окне запуска 1С нажмите Добавить.
  2. Выберите «Создание новой информационной базы» и вариант без конфигурации — пустую базу.
  3. Укажите новый каталог, например D:\Bases\Buh_restore. Не тот, где лежит рабочая база.

Шаг 2. Загрузите файл

  1. Выделите новую базу и нажмите Конфигуратор.
  2. Откройте меню Администрирование → Загрузить информационную базу.
  3. Выберите файл .dt и подтвердите предупреждение о потере текущих данных.
  4. Дождитесь сообщения об успешной загрузке. Конфигуратор предложит перезапуститься — согласитесь.

Для базы на 2–3 ГБ загрузка обычно идёт от нескольких минут до получаса. Окно может казаться зависшим — не закрывайте его, иначе база останется недозагруженной.

Шаг 3. Проверьте результат

Запустите базу в режиме «1С:Предприятие» под пользователем из копии. Откройте журнал документов и посмотрите последнюю дату: она должна совпасть с датой бэкапа. Сформируйте оборотно-сальдовую ведомость за последний месяц и сравните с тем, что ждали.

Как выбрать нужную копию из нескольких

Если бэкапов много, не грузите их по очереди в одну базу. Создайте две-три пустые базы и загрузите в них копии за разные даты. Так быстрее найти последнюю исправную версию — например, ту, что была до ошибочного закрытия месяца или массового удаления документов.

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

Если база проверена и подходит, проще всего поменять пути в списке баз: рабочей базе дать имя «Старая», а восстановленной — привычное имя. Так у вас останется путь назад.

Если нужно загрузить прямо в рабочую базу

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

  1. Сделайте выгрузку текущего состояния в .dt — это страховка на случай, если копия окажется не той.
  2. Попросите всех выйти из программы.
  3. Загрузите нужный .dt через то же меню Конфигуратора.

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

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

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

Восстановление средствами самой программы

В типовых конфигурациях для файловых баз есть раздел Администрирование → Обслуживание → Резервное копирование и восстановление. Там же находится команда восстановления из резервной копии: программа сама закроет сеанс, подменит базу и запустится снова. Удобно, если копии делались этим же механизмом и лежат в известной папке.

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

4. Клиент-серверная база: восстановление через SQL

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

Подготовка на стороне сервера 1С

  1. Откройте консоль администрирования серверов 1С.
  2. В свойствах информационной базы включите блокировку начала сеансов и блокировку регламентных заданий.
  3. Завершите активные сеансы в списке сеансов базы.

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

MS SQL Server

Восстановление из .bak выполняют в SQL Server Management Studio через мастер восстановления базы или запросом:

RESTORE DATABASE [Buh]
FROM DISK = N'D:\Backup\Buh_full.bak'
WITH REPLACE, RECOVERY, STATS = 10;

Параметр REPLACE перезапишет существующую базу Buh. Если хотите сначала проверить копию, восстановите её под другим именем — понадобится WITH MOVE, чтобы файлы данных и журнала не легли поверх рабочих. Если есть разностные копии и журналы транзакций, восстанавливайте их по порядку с NORECOVERY, а последний — с RECOVERY.

PostgreSQL

Дамп в пользовательском формате восстанавливают так:

createdb -U postgres -T template0 buh_restore
pg_restore -U postgres -d buh_restore -j 4 D:\Backup\buh.backup

Ключ -j 4 запускает восстановление в 4 потока и заметно ускоряет работу на больших базах. Используйте сборку PostgreSQL с доработками для 1С — ту же, на которой работает рабочая база.

Подключение восстановленной базы к серверу 1С

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

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

5. Переход между форматами: файловая, серверная, другая СУБД

Отдельная официальная утилита конвертации вроде «dt2db» для 1С 8.3 не нужна: универсальный переходник — сам формат .dt. Он не зависит от варианта работы и СУБД.

ЗадачаКак сделать
Файловая → клиент-сервернаяВыгрузить .dt из файловой базы, создать базу на сервере 1С, загрузить .dt
Клиент-серверная → файловаяВыгрузить .dt из серверной базы, создать пустую файловую, загрузить
MS SQL → PostgreSQLТолько через .dt: бэкап .bak в PostgreSQL не восстанавливается
Есть только 1Cv8.1CDПодключить папку с файлом как файловую базу, затем выгрузить .dt

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

6. Автоматическое резервное копирование, чтобы было из чего восстанавливать

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

Файловая база

В типовых конфигурациях откройте Администрирование → Обслуживание → Резервное копирование и восстановление и включите автоматическое копирование. Задайте:

  • 🕗 расписание — например, ежедневно в 20:00 или при завершении работы;
  • 📁 каталог на другом диске или сетевом ресурсе, а не рядом с базой;
  • 🗂 сколько последних копий хранить — например, 14.

Пакетная выгрузка .dt по расписанию

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

"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /S "srv1c\Buh" /N "Администратор" /P "пароль" /DumpIB "D:\Backup\Buh_%date:~6,4%%date:~3,2%%date:~0,2%.dt" /Out "D:\Backup\dump.log" /DisableStartupDialogs

Для файловой базы вместо /S "srv1c\Buh" укажите /F "D:\Bases\Buh". Номер версии в пути замените на свой. Обратная операция в пакетном режиме — ключ /RestoreIB с путём к файлу.

Пароль в bat-файле хранится открытым текстом. Создайте для бэкапа отдельного пользователя с нужными правами и закройте папку со скриптом от посторонних.

Помните, что выгрузка .dt тоже требует монопольного доступа: ставьте её на ночь, когда в базе никого нет.

Клиент-серверная база

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

Резервное копирование настроено правильно, если:
Выполнено: 0 / 5

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

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

Частые ошибки, из-за которых теряют данные

  • ❌ Загружают .dt в рабочую базу без свежей выгрузки текущего состояния — и не могут вернуть то, что внесли после бэкапа.
  • ❌ Хранят копии в той же папке, что и база. Сбой диска или шифровальщик уносит всё сразу.
  • ❌ Ни разу не проверяли копию. Узнают, что она пустая или битая, в день аварии.
  • ❌ Восстанавливают .bak поверх рабочей базы СУБД, не сняв блокировки в консоли 1С, — пользователи успевают зайти в полувосстановленную базу.

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

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