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

· 9 мин

Содержание

Кнопка «Сохранить» в режиме Предприятия пишет на диск один документ, а не всю базу. Когда рушится диск или базу роняет сбой питания, спасает не эта кнопка, а резервная копия. Настроить сохранение в 1С — значит наладить регулярный бэкап: выгрузку данных в отдельный файл и хранение этого файла подальше от рабочего диска.

Способ зависит от того, как развёрнута база. Файловая (каталог с файлом 1Cv8.1CD) копируется средствами самой 1С или обычным копированием каталога. Клиент-серверная база живёт внутри СУБД — её бэкапят средствами SQL Server, а не Конфигуратором. Дальше — оба варианта, автоматизация через планировщик Windows и правила хранения архивов.

Есть ли в 1С автосохранение и чем его заменить

Привычного автосохранения, как в офисных редакторах, в 1С нет. Платформа фиксирует данные в момент записи документа или справочника — нажали «Записать» или «Провести», запись ушла в базу. Отдельной настройки «сохранять базу каждые 5 минут» в режиме Предприятия не существует.

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

Не путайте сохранение данных с сохранением конфигурации. Выгрузка базы в .dt сохраняет и структуру (конфигурацию), и все данные. Отдельная выгрузка конфигурации в .cf сохраняет только структуру без данных — для бэкапа на случай потери это не замена.

Что именно нужно сохранять, зависит от типа базы:

  • 📁 Файловая база — весь каталог с 1Cv8.1CD, либо выгрузка в .dt.
  • 🗄️ Серверная база — резервная копия базы данных средствами SQL Server (сам файл .mdf на горячую копировать нельзя).
  • ⚙️ Публикации и доработки — расширения, внешние обработки и отчёты хранятся отдельно, в бэкап базы они не всегда попадают.

Выгрузка файловой базы в файл .dt вручную

Самый надёжный ручной бэкап файловой базы — выгрузка в .dt через Конфигуратор.

  1. Запустите базу в режиме Конфигуратор.
  2. Меню Администрирование → Выгрузить информационную базу.
  3. Укажите каталог и имя файла, например base_2026-10-07.dt.
  4. Дождитесь завершения — получите один файл со всей базой.

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

Перед регламентной выгрузкой нелишне проверить целостность базы, чтобы не сохранить уже повреждённые данные. В Конфигураторе это Администрирование → Тестирование и исправление, для закрытой файловой базы — утилита chdbfl.exe из каталога bin платформы. Если тест нашёл ошибки, сначала исправьте базу, потом делайте бэкап.

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

Есть и более простой вариант для файловой базы — скопировать весь каталог базы, когда 1С закрыта у всех пользователей. Копия каталога разворачивается быстрее, чем .dt, но файл .dt компактнее и переносится между компьютерами одним файлом. Для регламентного хранения удобнее .dt, для быстрого «отката на вчера» — копия каталога.

Пакетную выгрузку из командной строки удобно вставить в скрипт:

"C:\Program Files\1cv8\8.3.24.1234\bin\1cv8.exe" DESIGNER /F"C:\Bases\Buh" /N"Администратор" /P"пароль" /DumpIB "D:\Backup\buh_%date%.dt"

Здесь /F — путь к файловой базе (для серверной вместо него /S сервер\имя_базы), /N и /P — логин и пароль, /DumpIB — сама команда выгрузки. Точный номер версии в пути к 1cv8.exe возьмите из своего каталога установки платформы.

Автоматический бэкап файловой базы в типовой конфигурации

В типовых конфигурациях на управляемых формах (БП 3.0, ЗУП 3.1, УТ 11 и других) есть встроенная настройка резервного копирования — но только для файловых баз.

Путь: раздел Администрирование → Обслуживание → группа Резервное копирование и восстановление → Настройка резервного копирования. Если база клиент-серверная, этот блок либо скрыт, либо прямо предлагает использовать средства СУБД.

В настройке выбирается периодичность:

ВариантКогда срабатываетКому подходит
При завершении работыКаждый раз при выходе из программыОдна база, один пользователь
По расписаниюВ заданные дни и времяНесколько пользователей, работа днём
Не выполнять автоматическиТолько вручнуюБэкап настроен снаружи (скрипт, SQL)

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

Копирование «при завершении работы» в многопользовательской базе неудобно: оно запускается у того, кто выходит последним, и человек ждёт лишние минуты. Для сети лучше расписание в нерабочее время.

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

Резервное копирование клиент-серверной базы через SQL

Серверную базу бэкапят на уровне СУБД. Для MS SQL Server это делается в SQL Server Management Studio (SSMS) или командой T-SQL. Главное правило: файлы .mdf и .ldf работающей базы копировать напрямую нельзя — копия будет нерабочей. Только через механизм резервного копирования СУБД.

Минимально рабочая команда полного бэкапа:

BACKUP DATABASE [buh_base]
  TO DISK = N'D:\Backup\buh_base_full.bak'
  WITH INIT, COMPRESSION;

Для регулярности в SSMS настраивается план обслуживания (Maintenance Plan) с расписанием. От модели восстановления базы зависит набор копий:

  • Простая модель — только полные и разностные копии. Журнал транзакций не бэкапится и не растёт бесконтрольно. Подходит, если допустима потеря данных за время с последнего полного бэкапа.
  • Полная модель — полные + разностные + копии журнала транзакций. Позволяет восстановиться на точный момент, но при полной модели обязательно бэкапить журнал транзакций, иначе файл .ldf разрастётся и займёт весь диск.

Типовое расписание для активной базы: полный бэкап раз в сутки ночью, разностный — несколько раз днём, журнал транзакций (при полной модели) — каждые 15–60 минут.

Восстановление из полной копии в SSMS делается командой или через пункт Restore Database:

RESTORE DATABASE [buh_base]
  FROM DISK = N'D:\Backup\buh_base_full.bak'
  WITH REPLACE;

Восстановление серверной базы из .bak затрагивает всех пользователей: на время операции база недоступна, а WITH REPLACE перезаписывает текущие данные. Планируйте его на технологическое окно и предупредите сотрудников.

Для PostgreSQL логика похожая: регулярный pg_dump конкретной базы плюс, при необходимости непрерывного восстановления, архивация WAL. Точные команды берите из документации своей версии СУБД.

Автоматизация: скрипт и планировщик Windows

Чтобы бэкап делался сам, без участия человека, выгрузку оформляют скриптом и вешают на Планировщик заданий Windows.

Простой .bat для файловой базы с выгрузкой в .dt и упаковкой в архив:

@echo off
set DT=%date:~6,4%-%date:~3,2%-%date:~0,2%
set DEST=D:\Backup
"C:\Program Files\1cv8\8.3.24.1234\bin\1cv8.exe" DESIGNER /F"C:\Bases\Buh" /N"Администратор" /P"пароль" /DumpIB "%DEST%\buh_%DT%.dt"
"C:\Program Files\7-Zip\7z.exe" a "%DEST%\buh_%DT%.7z" "%DEST%\buh_%DT%.dt"
del "%DEST%\buh_%DT%.dt"

Как поставить на расписание:

  1. Откройте Планировщик заданий Windows (taskschd.msc).
  2. Создать задачу → вкладка Триггеры → ежедневно, время в нерабочие часы.
  3. Вкладка Действия → запуск вашего .bat.
  4. На вкладке Общие включите запуск с правами, у которых есть доступ к базе и каталогу бэкапа.

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

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

Что проверить в настроенном автобэкапе
Выполнено: 0 / 5

Где хранить архивы и как настроить ротацию

Один бэкап рядом с базой — это иллюзия защиты. Рабочее правило хранения — «3-2-1»: минимум 3 копии данных, на 2 разных носителях, из них 1 — за пределами офиса (другой сервер, облако, съёмный диск в другом здании).

Ротация нужна, чтобы архивы не съели весь диск и при этом сохранялась глубина истории. Распространённая схема «дед-отец-сын»:

  • 🗓️ Ежедневные копии — хранить 7 последних (глубина в неделю).
  • 📅 Еженедельные — 4–5 штук (глубина в месяц).
  • 🗃️ Ежемесячные — 12 штук (глубина в год).

Так можно откатиться и на вчера, и на конкретную неделю полгода назад, не храня сотни файлов. В настройке типовой конфигурации глубину задаёт параметр «сколько копий хранить»; в скрипте и SQL-плане старые файлы удаляются по дате.

Если база работает в облаке (аренда 1С, сервис по модели 1cfresh), регулярные копии делает провайдер на своей стороне. Но держать и собственную копию всё равно стоит: выгрузите свою базу в .dt через личный кабинет сервиса или функцию выгрузки в конфигурации и храните её у себя. Так вы не зависите от одного поставщика и сможете развернуть базу локально при переезде.

Отдельно о проверке: копия, которую ни разу не разворачивали, не считается рабочей. Раз в месяц восстанавливайте архив в тестовую базу и убеждайтесь, что она открывается и данные на месте. Битый .dt или недокачанный .bak обнаруживается именно при восстановлении, а не при создании.

Если копия не создаётся или не восстанавливается

Типовые сбои при настройке сохранения и способы их разобрать:

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

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

Чем выгрузка в `.dt` отличается от копии файла `1Cv8.1CD`?
.dt — это сжатый выгруженный образ базы, один файл, который переносится и восстанавливается через Конфигуратор. Копия 1Cv8.1CD — это сам файл рабочей базы, её можно просто скопировать при закрытой 1С и так же быстро вернуть на место. Для хранения удобнее .dt, для быстрого отката — копия файла.
Можно ли просто скопировать файлы `.mdf` и `.ldf` серверной базы?
Нет. У работающей базы эти файлы заняты СУБД, и их копия будет нерабочей. Серверную базу сохраняют только через механизм резервного копирования SQL Server (команда BACKUP DATABASE или план обслуживания).
Как часто делать бэкап?
По принципу «сколько данных не жалко потерять». Для активной рабочей базы — минимум раз в сутки, а при полной модели SQL дополнительно копии журнала транзакций каждые 15–60 минут. Для базы, куда вносят данные редко, достаточно копии после каждого сеанса работы.
Безопасно ли удалять старые `.dt`?
Да, если настроена ротация и у вас остаются свежие проверенные копии нужной глубины. Удаляйте по правилу хранения (например, оставлять 7 ежедневных, 4 еженедельных, 12 ежемесячных), а не все подряд.
Восстановится ли `.dt` на другой версии платформы?
Как правило да, если версия платформы при восстановлении не ниже той, на которой делалась выгрузка. Загрузить архив в заметно более старую платформу не получится. Поэтому вместе с архивами фиксируйте, на каком релизе платформы и конфигурации они сделаны.