Резервное копирование баз 1С: файловых и серверных
Содержание
Кнопка «Сохранить» в режиме Предприятия пишет на диск один документ, а не всю базу. Когда рушится диск или базу роняет сбой питания, спасает не эта кнопка, а резервная копия. Настроить сохранение в 1С — значит наладить регулярный бэкап: выгрузку данных в отдельный файл и хранение этого файла подальше от рабочего диска.
Способ зависит от того, как развёрнута база. Файловая (каталог с файлом 1Cv8.1CD) копируется средствами самой 1С или обычным копированием каталога. Клиент-серверная база живёт внутри СУБД — её бэкапят средствами SQL Server, а не Конфигуратором. Дальше — оба варианта, автоматизация через планировщик Windows и правила хранения архивов.
Есть ли в 1С автосохранение и чем его заменить
Привычного автосохранения, как в офисных редакторах, в 1С нет. Платформа фиксирует данные в момент записи документа или справочника — нажали «Записать» или «Провести», запись ушла в базу. Отдельной настройки «сохранять базу каждые 5 минут» в режиме Предприятия не существует.
Роль автосохранения берёт на себя резервное копирование . Для файловых баз типовые конфигурации умеют делать его сами по расписанию — это и есть ближайший аналог «автосейва». Для серверных баз регулярность задаётся на стороне СУБД.
Не путайте сохранение данных с сохранением конфигурации. Выгрузка базы в .dt сохраняет и структуру (конфигурацию), и все данные. Отдельная выгрузка конфигурации в .cf сохраняет только структуру без данных — для бэкапа на случай потери это не замена.
Что именно нужно сохранять, зависит от типа базы:
- 📁 Файловая база — весь каталог с
1Cv8.1CD, либо выгрузка в.dt. - 🗄️ Серверная база — резервная копия базы
данных средствами SQL Server (сам файл
.mdfна горячую копировать нельзя). - ⚙️ Публикации и доработки — расширения, внешние обработки и отчёты хранятся отдельно, в бэкап базы они не всегда попадают.
Выгрузка файловой базы в файл .dt вручную
Самый надёжный ручной бэкап файловой базы — выгрузка в .dt через Конфигуратор.
- Запустите базу в режиме
Конфигуратор. - Меню
Администрирование→Выгрузить информационную базу. - Укажите каталог и имя файла, например
base_2026-10-07.dt. - Дождитесь завершения — получите один файл со всей базой.
Выгрузку лучше делать, когда в базе никто не работает: активные сеансы могут помешать операции. Для восстановления откройте тот же Конфигуратор, Администрирование → Загрузить информационную базу и выберите нужный .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"
Как поставить на расписание:
- Откройте
Планировщик заданийWindows (taskschd.msc). Создать задачу→ вкладкаТриггеры→ ежедневно, время в нерабочие часы.- Вкладка
Действия→ запуск вашего.bat. - На вкладке
Общиевключите запуск с правами, у которых есть доступ к базе и каталогу бэкапа.
Для баз, которые нельзя выгружать (круглосуточная работа), файловую базу
иногда копируют утилитой robocopy в момент, когда никто не подключён, а серверную — только через бэкап СУБД по расписанию SSMS.
Храните пароль не в открытом тексте .bat, а запускайте задачу под служебной учётной записью с нужными правами. Так пароль администратора базы не светится в скрипте.
Где хранить архивы и как настроить ротацию
Один бэкап рядом с базой — это иллюзия защиты. Рабочее правило хранения — «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` серверной базы?
BACKUP DATABASE или план обслуживания).