Возврат базы 1С из бэкапа: файл .dt, копия 1Cv8.1CD, SQL Server и PostgreSQL

· 10 мин

Содержание

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

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

Подготовка: что сделать до загрузки бэкапа 1С

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

Шаг 1. Сохраните текущую базу

Даже если она «сломана», сохраните её как есть:

  • 📁 файловая база — скопируйте всю папку базы (там лежит 1Cv8.1CD) в отдельный каталог;
  • 🗄️ клиент-серверная — сделайте резервную копию СУБД средствами SQL Server или PostgreSQL;
  • 💾 если Конфигуратор открывается — дополнительно выгрузите .dt через Администрирование → Выгрузить информационную базу....

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

Шаг 2. Проверьте сам бэкап

  • 📅 дата копии — сколько дней работы придётся вводить заново;
  • 📏 размер — файл .dt в 0 КБ или в разы меньше обычного почти наверняка неполный;
  • 🔢 версия платформы — .dt загружается платформой той же версии или с номером не ниже той, которой он выгружен;
  • 💽 место на диске — распакованная база обычно занимает в несколько раз больше, чем .dt.

Шаг 3. Освободите базу от пользователей

Загрузка .dt требует монопольного доступа. Предупредите коллег, попросите выйти и закройте фоновые обработки.

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

Шаг 4. Решите, куда восстанавливать

Безопаснее всего сначала поднять бэкап в новую пустую базу, проверить её и только потом подменять рабочую. Так вы не потеряете исходную базу, если копия не та.

Какой способ восстановления выбрать

Чем сделан бэкапКак восстанавливатьКогда подходитРиски
Файл .dt (выгрузка 1С)Конфигуратор: Загрузить информационную базуЛюбой тип базы, перенос между серверами и СУБДДолго на больших базах, нужна подходящая версия платформы
Копия 1Cv8.1CDЗамена файла в папке базыФайловая базаКопия, снятая на лету при работающих пользователях, может быть повреждена
.bak SQL ServerSSMS или RESTORE DATABASEКлиент-серверная база на MS SQLНеверный путь файлов, занятая база, несовпадение имени
Дамп PostgreSQLpg_restore или psqlКлиент-серверная база на PostgreSQLНужна та же сборка PostgreSQL для 1С, роль-владелец
Копия из сервиса облака/хостингаЧерез панель провайдераБазы в арендеСроки хранения копий ограничены

💡 Если есть и .dt, и бэкап СУБД одной даты, для клиент-серверной базы быстрее восстановить бэкап СУБД: SQL Server и PostgreSQL делают это в разы быстрее, чем Конфигуратор разворачивает .dt.

Восстановление файловой базы 1С через Конфигуратор

Загрузка .dt в новую базу (рекомендуется)

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

На базе в 5–10 ГБ загрузка идёт от нескольких минут до часа, всё зависит от диска. Не прерывайте процесс: недогруженная база непригодна, и её придётся загружать заново.

Загрузка .dt поверх рабочей базы

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

Замена файла 1Cv8.1CD

Если бэкап — это копия папки или файла базы:

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

Если база не открывается после замены, запустите chdbfl.exe из папки bin платформы — это утилита проверки физической целостности файловой базы. Работает только при закрытой базе.

Восстановление клиент-серверной базы 1С через SQL Server Management Studio

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

Восстановление через SSMS

  1. Откройте консоль кластера серверов 1С и в свойствах информационной базы включите Блокировка начала сеансов включена. Завершите активные сеансы (с предупреждением пользователей).
  2. В SSMS подключитесь к серверу, щёлкните правой кнопкой по Databases → Restore Database....
  3. В Source выберите Device и укажите файл .bak.
  4. В Destination выберите имя базы, которую восстанавливаете.
  5. На странице Files проверьте пути .mdf и .ldf — они должны указывать на существующие папки этого сервера.
  6. На странице Options отметьте Overwrite the existing database (WITH REPLACE), если перезаписываете существующую базу, и при необходимости Close existing connections to destination database.
  7. Нажмите OK и дождитесь сообщения об успешном восстановлении.
  8. Снимите блокировку начала сеансов в консоли кластера.

То же самое запросом T-SQL

USE master;
ALTER DATABASE [buh] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;

RESTORE DATABASE [buh]
FROM DISK = N'D:\Backup\buh_2026_10_06.bak'
WITH REPLACE,
     MOVE N'buh'     TO N'D:\SQLData\buh.mdf',
     MOVE N'buh_log' TO N'D:\SQLData\buh_log.ldf',
     STATS = 10;

ALTER DATABASE [buh] SET MULTI_USER;

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

ROLLBACK IMMEDIATE обрывает все подключения к базе, включая рабочие процессы 1С. Используйте его только после того, как пользователи вышли.

Если бэкап нужно поднять рядом, а не поверх

Восстановите .bak под новым именем, например buh_copy (с другими путями в MOVE). Затем в консоли кластера создайте новую информационную базу, укажите в её свойствах сервер СУБД и имя базы данных buh_copy. Флажок Создать базу данных в случае ее отсутствия не нужен — база уже есть. Так удобно вытащить документ из копии, не трогая рабочую базу.

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

Для дампа в формате custom:

createdb -U postgres -T template0 buh_copy
pg_restore -U postgres -d buh_copy -j 4 /backup/buh_2026_10_06.dump

Ключ -j задаёт число параллельных потоков. Для текстового дампа .sql используется psql -U postgres -d buh_copy -f buh.sql. Восстанавливайте на ту же сборку PostgreSQL для 1С, на которой работала база: на стандартной сборке 1С базу не откроет.

Автоматизированное восстановление: командная строка и скрипты

Загрузку .dt можно запускать без интерфейса — это пригодится для регулярного разворачивания тестовой копии из свежего бэкапа. Параметр пакетного режима — /RestoreIB.

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

@echo off
set V8="C:\Program Files\1cv8\8.3.25.1445\bin\1cv8.exe"
%V8% DESIGNER /F "D:\Bases\BuhTest" /N "Администратор" /P "пароль" ^
  /RestoreIB "D:\Backup\buh.dt" /Out "D:\Backup\restore.log" /DisableStartupDialogs

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

%V8% DESIGNER /S "srv1c\buh_test" /N "Администратор" /P "пароль" ^
  /RestoreIB "D:\Backup\buh.dt" /Out "D:\Backup\restore.log" /DisableStartupDialogs

Что здесь важно:

  • 🔢 путь к 1cv8.exe — укажите вашу версию платформы, не ниже той, которой выгружен .dt;
  • 🔐 пароль в bat-файле лежит открытым текстом — храните скрипт в папке с ограниченным доступом;
  • 📝 файл из /Out — читайте его после каждого запуска: при ошибке процесс просто завершается, окна с сообщением не будет;
  • 🧯 обратная операция, выгрузка, делается параметром /DumpIB "путь\файл.dt".

Для SQL Server тот же RESTORE DATABASE запускают через sqlcmd или задание SQL Server Agent. Для PostgreSQL — pg_restore из cron или планировщика Windows.

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

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

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

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

Проверка базы после восстановления

Загрузка без ошибок ещё не значит, что база рабочая. Перед тем как пускать пользователей, проверьте:

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

Как вернуть данные, введённые после даты копии

Если бэкап вчерашний, а потерян день работы, откройте сохранённую на шаге 1 «сломанную» базу (если она открывается) и перенесите документы за этот день. Удобный способ — универсальная выгрузка/загрузка данных XML (обработка из поставки ИТС) с отбором по периоду. Если старая база не открывается, документы вводятся заново по первичке.

Профилактика: как сделать так, чтобы восстановление не подвело

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

  • 🔁 проверочное восстановление раз в месяц: разверните последний бэкап в отдельную базу и откройте её;
  • 🗂️ правило 3-2-1: три копии, на двух разных носителях, одна вне офиса или сервера;
  • ⏱️ глубина хранения: ежедневные копии за 1–2 недели плюс ежемесячные за год — ошибку часто обнаруживают не сразу;
  • 🧊 файловую базу копируйте закрытой или через выгрузку .dt, а не копированием 1Cv8.1CD на лету;
  • 🗄️ для SQL Server — полная модель восстановления с бэкапами журнала, если важна точка восстановления внутри дня; для простой модели — регулярные полные копии;
  • 📝 записывайте, где лежат бэкапы, какой версией платформы сделана выгрузка и кто имеет доступ к паролям.

Встроенное резервное копирование в типовых конфигурациях (Администрирование → Обслуживание → Резервное копирование и восстановление) работает только для файловой базы. Для клиент-серверной копии настраиваются средствами СУБД.

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

Можно ли загрузить .dt из 1С 8.2 в базу 8.3?
Да, платформа 8.3 загружает такие выгрузки. После загрузки может понадобиться перейти на режим совместимости или обновить конфигурацию.
Можно ли восстановить один документ, а не всю базу?
Средствами загрузки .dt — нет, она заменяет базу целиком. Восстановите бэкап в отдельную базу и перенесите нужные документы обменом или вручную.
Сохранятся ли пользователи и пароли после загрузки .dt?
Сохранятся те, что были в базе на момент выгрузки. Пользователи, созданные позже, исчезнут, а изменённые пароли вернутся к старым.
Можно ли загрузить .dt от файловой базы в клиент-серверную?
Да. Формат .dt не зависит от типа базы и СУБД, поэтому так обычно и переводят базу с файлового варианта на сервер.
Почему восстановленная база весит меньше рабочей?
При загрузке .dt таблицы пересобираются заново, без пустого места и фрагментации. Это нормально, данные при этом не теряются.