Резервное копирование 1С без потерь: от выгрузки .dt до копии на уровне СУБД

· 9 мин

Содержание

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

Типичная история: бухгалтер в пятницу вечером запускает групповую перепроводку, в понедельник выясняется, что половина документов закрыта неправильно, а последняя копия базы — трёхмесячной давности на флешке. Правильно настроенный бэкап базы 1С превращает такой понедельник в час работы: развернуть копию за четверг и повторить пару операций.

Какие бывают копии базы 1С и что выбрать

У 1С нет одного «правильного» способа. Есть несколько форматов копий, и у каждого своя задача.

СпособДля какой базыЧто сохраняетПлюсыМинусы
Выгрузка .dtФайловая и сервернаяКонфигурацию, данные, список пользователейПереносится между СУБД и серверами, файл компактныйДолго на больших базах, нужна тишина в базе
Копия 1Cv8.1CDТолько файловаяВсё содержимое базы как естьБыстро, восстановление — простое копированиеТолько при закрытых сеансах, файл крупный
Бэкап СУБДТолько сервернаяВсю базу данных SQLМожно по расписанию без остановки, точка во времениВосстанавливается только в ту же СУБД
Снимок диска / ВМ (vhdx, VSS)ЛюбаяВесь том или виртуальную машинуЗащищает от гибели сервера целикомКопия живой базы может оказаться несогласованной
Файл .cfЛюбаяТолько конфигурацию, без данныхНужен перед обновлением доработанной конфигурацииДанные не спасает

Рабочая схема для небольшой фирмы: ежедневная выгрузка .dt по расписанию плюс еженедельная копия на внешний диск или в облако. Для сервера: полный бэкап СУБД каждую ночь, журнал транзакций каждые 15-60 минут, .dt раз в неделю.

Стратегию удобно строить по правилу 3-2-1: три копии, на двух разных носителях, одна вне офиса. Копия на том же диске, что и база, не защищает ни от поломки диска, ни от шифровальщика.

Сколько хранить копии:

  • 📅 ежедневные — 7-14 штук;
  • 🗓 еженедельные — 4-5 штук;
  • 📦 ежемесячные — 12 штук, а копию после закрытия года держать отдельно и не удалять.
Какая у вас база?

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

Это базовый способ, который подходит для любой базы.

  1. Предупредите пользователей и попросите выйти из программы. Выгрузка работает и при открытых сеансах, но данные, которые меняются в момент выгрузки, могут попасть в файл в промежуточном состоянии.
  2. В окне запуска выберите базу и нажмите Конфигуратор.
  3. В меню выберите Администрирование → Выгрузить информационную базу.
  4. Укажите папку и имя файла. Удобно включать в имя название базы и дату: buh_2026-10-07.dt.
  5. Дождитесь сообщения о завершении выгрузки. На базе 2-3 ГБ это обычно несколько минут, на базе в десятки гигабайт — до часа и дольше.

Восстановление идёт обратным путём: Администрирование → Загрузить информационную базу.

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

Перед обновлением доработанной конфигурации полезно сохранить ещё и саму конфигурацию: Конфигурация → Сохранить конфигурацию в файл создаёт файл .cf. Он весит мало, но данных в нём нет — это дополнение к .dt, а не замена.

Встроенная обработка в БП, ЗУП и других типовых

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

Ограничения мастера:

  • 🖥 работает в файловом варианте и в клиенте под Windows;
  • 👤 копия делается от имени того пользователя, на чьём компьютере запущена программа, и туда, куда у него есть доступ;
  • 🗂 для серверной базы мастер копирования не предлагают — там бэкап делают средствами СУБД.

Копия файловой базы: просто скопировать папку

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

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

Порядок:

  1. Убедитесь, что все вышли из базы. Признак открытого сеанса — файл 1Cv8.1CL рядом с базой и ошибка при попытке скопировать 1Cv8.1CD.
  2. Скопируйте весь каталог базы, а не только 1Cv8.1CD.
  3. Заархивируйте копию: файл базы хорошо сжимается, часто в 5-10 раз.

Не копируйте 1Cv8.1CD из-под работающих пользователей обычным копированием или синхронизацией облачного диска (Яндекс Диск, OneDrive). Такая копия часто оказывается битой, и об этом узнают только при восстановлении.

Автоматический бэкап 1С из командной строки по расписанию

Выгрузку .dt можно запускать без участия человека: исполняемый файл 1cv8.exe в режиме DESIGNER принимает параметр /DumpIB. Этот скрипт и решает задачу «утилиты для автоматизации» — ставить ничего не нужно, всё уже есть в платформе.

Пример bat-файла для файловой базы:

@echo off
chcp 65001 > nul
rem Путь к платформе: подставьте свою версию из C:\Program Files\1cv8\
set V8="C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe"
set BASE=D:\Bases\Buh
set DEST=D:\Backup1C
set USER=Администратор
set PASS=

for /f %%i in ('powershell -NoProfile -Command "Get-Date -Format yyyy-MM-dd_HHmm"') do set TS=%%i

%V8% DESIGNER /F "%BASE%" /N "%USER%" /P "%PASS%" /DisableStartupMessages ^
  /DumpIB "%DEST%\buh_%TS%.dt" /Out "%DEST%\buh_%TS%.log"

if %ERRORLEVEL% neq 0 echo Ошибка выгрузки, смотрите лог >> "%DEST%\errors.txt"

rem Удалить выгрузки старше 14 дней
forfiles /p "%DEST%" /m *.dt /d -14 /c "cmd /c del @path"

Для серверной базы вместо /F "путь" пишут /S "имя_сервера\имя_базы".

Что учесть:

  • 🔑 пользователь из параметра /N должен иметь административные права в базе;
  • 🔒 если в базе установлена блокировка сеансов с кодом разрешения, добавьте /UC код — иначе Конфигуратор не подключится;
  • 📝 файл из /Out — главный источник правды: читайте его, а не только смотрите на наличие .dt;
  • 🧾 пароль в bat-файле лежит открытым текстом: ограничьте доступ к скрипту правами NTFS.

Скрипт ставят в Планировщик заданий Windows: Создать задачу, триггер «Ежедневно» в ночное время, действие — запуск bat-файла, флажок «Выполнять для всех пользователей». Запускать задание стоит от учётной записи, у которой есть доступ и к каталогу базы, и к папке копий.

В платформе 8.3.14 и новее есть ещё автономная утилита ibcmd: она умеет выгружать базу без запуска Конфигуратора. Набор команд и параметров смотрите в её встроенной справке ibcmd help.

Бэкап клиент-серверной базы средствами СУБД

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

MS SQL Server

Проще всего настроить план обслуживания в SQL Server Management Studio: Management → Maintenance Plans. Для ручного бэкапа подходит запрос:

BACKUP DATABASE [buh]
TO DISK = N'D:\SQLBackup\buh_full.bak'
WITH COMPRESSION, CHECKSUM, STATS = 10;

Модель восстановления выбирают под задачу:

МодельЧто даётКогда подходит
SimpleТолько полные и разностные копииМожно потерять работу за день
FullПлюс копии журнала транзакций, возврат на любой моментУчётная база, где день работы — это много

При модели Full журнал транзакций обязательно бэкапить регулярно (BACKUP LOG), иначе файл журнала растёт, пока не закончится место на диске.

Параметр COMPRESSION есть не во всех редакциях SQL Server. Если запрос выдаёт ошибку на этом параметре, уберите его.

PostgreSQL

Логическая копия одной базы делается утилитой pg_dump:

"C:\Program Files\PostgreSQL\15\bin\pg_dump.exe" -U postgres -Fc -f D:\PGBackup\buh.backup buh

Формат -Fc сжатый, восстанавливается командой pg_restore в заранее созданную пустую базу. Номер версии в пути подставьте свой. Для возврата на произвольный момент времени нужен другой механизм: физическая копия pg_basebackup плюс архивирование WAL.

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

Снимки диска, VSS и копии виртуальной машины

Если 1С работает в виртуальной машине Hyper-V, можно бэкапить весь сервер целиком: экспорт ВМ или копия её дисков vhdx средствами гипервизора или программ резервного копирования. Такая копия спасает, когда погиб весь сервер: не нужно ставить заново Windows, платформу, СУБД и настраивать лицензии.

Теневое копирование тома (VSS) в Windows позволяет снять снимок диска, не останавливая работу. Этим пользуются почти все программы резервного копирования серверов.

Где тут подвох:

  • 🧩 снимок фиксирует диск в один момент, но файл 1Cv8.1CD в этот момент может быть в середине записи. Такая копия похожа на базу после отключения питания: часто открывается, иногда требует исправления, иногда не открывается;
  • 🗄 MS SQL Server поддерживает VSS через свою службу, и программа бэкапа делает согласованную копию базы. Для PostgreSQL и файловой базы 1С согласованность снимка не гарантирована;
  • 💾 снимок ВМ на том же хосте — не резервная копия: при поломке хоста теряются и база, и снимок.

Вывод простой: снимки диска и ВМ — третий уровень защиты. Основным бэкапом базы 1С остаются .dt и копии СУБД.

Проверка копий: бэкап, который ни разу не восстанавливали

Копия, которую не пробовали восстановить, — это надежда, а не бэкап. Проверка занимает полчаса раз в месяц.

Ежемесячная проверка резервных копий 1С
Выполнено: 0 / 6

Чем проверять целостность:

  • 🔧 в Конфигураторе тестовой базы — Администрирование → Тестирование и исправление, сначала только проверка без исправления;
  • 📁 для файловой базы — утилита chdbfl.exe из каталога bin платформы, запускается при закрытой базе;
  • 🗄 для MS SQL — RESTORE VERIFYONLY FROM DISK = N'...': проверяет, что файл копии читается, но не заменяет пробное восстановление;
  • 🐘 для PostgreSQL — pg_restore --list buh.backup: если оглавление копии читается, файл не обрезан.

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

Отдельно контролируйте место на диске. Частая причина «бэкапы перестали делаться» — диск с копиями заполнился, а скрипт молча падает. Поэтому в bat-файле выше и есть удаление старых файлов и запись ошибок в отдельный файл.

Частые вопросы о резервных копиях 1С

Можно ли загрузить .dt в базу на другой версии платформы?
В платформу с номером не ниже той, на которой делали выгрузку, — как правило, да. В более старую платформу файл может не загрузиться, поэтому держите под рукой дистрибутив своей версии.
Сохраняет ли .dt пользователей и пароли?
Да, список пользователей информационной базы и их права попадают в выгрузку. Настройки окна запуска и локальные кэши на компьютерах пользователей в файл не входят.
Сколько весит выгрузка .dt?
Обычно в несколько раз меньше файла 1Cv8.1CD или базы SQL, потому что данные в ней сжаты. База на 10 ГБ часто даёт .dt на 1-2 ГБ.
Нужен ли бэкап, если база в облаке 1С:Фреш или у хостинга?
Провайдер делает свои копии, но восстановление по ним идёт по его правилам и срокам. Раз в месяц выгружайте копию себе — это ваша страховка при смене провайдера или споре.
Почему скрипт с /DumpIB отработал, а файла нет?
Чаще всего Конфигуратор не смог подключиться: неверный пароль, установлена блокировка сеансов без /UC или у учётной записи задания нет прав на папку. Причина записана в файле из параметра /Out.