Резервные копии базы 1С: какие бывают, как делать и как хранить
Содержание
Архив базы 1С 8.3 делают тремя способами: выгрузкой в файл .dt через Конфигуратор (Администрирование → Выгрузить информационную базу), копированием файла 1Cv8.1CD для файловой базы и штатным бэкапом СУБД (MS SQL или PostgreSQL) для клиент-серверной. Для ежедневной защиты подходит второй или третий способ, .dt — для переноса базы и разовых копий перед обновлением.
Сам по себе архив ничего не гарантирует. Рабочая схема — это копия по расписанию, хранение в двух местах, удаление старых копий по правилу и регулярное пробное восстановление. Всё это разобрано ниже по шагам, отдельно для файлового и серверного варианта.
Какие архивы базы 1С бывают и чем они отличаются
У 1С нет одного «правильного» бэкапа. Каждый вид решает свою задачу, и путать их опасно.
| Вид архива | Что внутри | Когда подходит | Ограничения |
|---|---|---|---|
Выгрузка .dt | Конфигурация, данные, список пользователей | Перенос базы, копия перед обновлением, смена СУБД | На больших базах долго; загрузка полностью заменяет базу |
Копия 1Cv8.1CD | Вся файловая база как есть | Ежедневный бэкап файловой базы | Делать только без активных сеансов |
Бэкап СУБД (.bak, дамп PostgreSQL) | База данных на уровне сервера СУБД | Ежедневный бэкап клиент-серверной базы | Нужен доступ к серверу СУБД |
Файл конфигурации .cf | Только конфигурация, без данных | Сохранить доработки, сравнить с поставкой | Данных нет совсем — это не бэкап базы |
Частая ловушка — считать архивом файл .cf. В нём нет ни одного документа. Если после сбоя на руках только .cf, учёт придётся вводить заново.
Ещё одна ловушка — журнал регистрации. Он хранится в отдельной папке 1Cv8Log рядом с базой (или в каталоге кластера для серверной базы) и в .dt не попадает. Если журнал нужен для разбора инцидентов, копируйте эту папку отдельно.
Как сделать архив файловой базы 1С
Файловая база — это папка с файлом 1Cv8.1CD. Путь к ней виден в окне запуска 1С: выделите базу в списке, внизу окна появится строка File="D:\Bases\Buh".
Способ 1. Выгрузка в .dt через Конфигуратор
- Запустите 1С в режиме Конфигуратор под пользователем с полными правами.
- Откройте меню
Администрирование → Выгрузить информационную базу. - Укажите папку и имя файла, например
Buh_2026-10-07.dt. - Дождитесь сообщения о завершении выгрузки.
Выгружайте, когда в базе никто не работает . Если бухгалтер проводит документы во время выгрузки, копия может получиться несогласованной.
Включайте в имя файла дату в формате ГГГГ-ММ-ДД. Так копии сортируются по порядку, и старые проще удалять скриптом.
Способ 2. Копия файла 1Cv8.1CD
Это самый быстрый вариант: обычное копирование папки базы.
- Убедитесь, что в базе нет сеансов: предупредите пользователей и закройте 1С на всех компьютерах. Если файл
1Cv8.1CDне копируется с ошибкой «файл занят», значит, кто-то ещё в базе. - Скопируйте файл
1Cv8.1CD(или всю папку базы) в каталог архива. - Сожмите копию архиватором — файловые базы ужимаются в несколько раз.
Не копируйте 1Cv8.1CD, пока с базой кто-то работает. Файл скопируется без ошибок, но внутри может оказаться повреждённая страница, и узнаете вы об этом только при восстановлении.
Способ 3. Встроенная обработка в типовой конфигурации
В БП 3.0, ЗУП 3.1, УТ 11 и других конфигурациях на БСП для файлового варианта есть раздел Администрирование → Обслуживание → Резервное копирование и восстановление. Там можно сделать копию вручную или настроить автоматическую: каждый день, при завершении работы или по своему расписанию.
Обработка удобна для небольшого офиса без администратора. Минус один: она работает, только пока кто-то запускает 1С на этом компьютере. Если программу неделю не открывали — копий за неделю не будет.
Резервное копирование клиент-серверной базы 1С
Для серверной базы основной бэкап делают средствами СУБД. Выгрузка .dt здесь вспомогательная: на базе в 100–200 ГБ она идёт часами, а бэкап СУБД — минуты.
MS SQL Server
Минимальная схема — полная копия раз в сутки:
BACKUP DATABASE [buh]
TO DISK = N'E:\Backup\buh_full.bak'
WITH COMPRESSION, CHECKSUM, INIT;
Параметр CHECKSUM проверяет страницы при записи, COMPRESSION уменьшает файл (доступно не во всех редакциях SQL Server). Настраивают это через планы обслуживания в SQL Server Management Studio или заданием SQL Server Agent.
Если база в модели восстановления FULL, добавьте копии журнала транзакций каждые 15–60 минут. Без них журнал растёт до размера диска. Если восстановление на конкретную минуту не нужно, переведите базу в модель SIMPLE.
| Модель восстановления | Что даёт | Что нужно настроить |
|---|---|---|
SIMPLE | Откат на момент последней полной (или разностной) копии | Только полные и, при желании, разностные копии |
FULL | Откат на любую минуту между копиями | Полные копии + регулярные копии журнала |
PostgreSQL
Для PostgreSQL, поставляемого для 1С, дамп делают утилитой pg_dump в сжатом формате:
"C:\Program Files\PostgreSQL\15.4-1.1C\bin\pg_dump.exe" -U postgres -h localhost -F c -f "E:\Backup\buh.backup" buh
Номер версии в пути подставьте свой. Восстанавливают такой дамп через pg_restore в пустую базу. Пароль в скрипте не пишут: его кладут в файл pgpass.conf профиля пользователя, от имени которого идёт задание.
Что ещё сохранить на сервере
- 📁 Файлы
.cfи.cfeс доработками и расширениями — если конфигурация менялась. - 🗂 Каталог кластера с журналами регистрации — по умолчанию в папке
srvinfoсервера 1С. - 🔑 Сведения о лицензиях: номера и пин-коды комплектов. Без них после переустановки сервера лицензию придётся восстанавливать через поддержку.
Не копируйте файлы базы СУБД (.mdf, каталог данных PostgreSQL) работающего сервера простым копированием. Такая копия обычно не поднимается. Только BACKUP или pg_dump.
Как автоматизировать архивирование базы 1С
Ручной архив делают перед обновлением. Ежедневный — только по расписанию, иначе его забудут.
Пакетная выгрузка .dt из командной строки
Конфигуратор умеет выгружать базу без участия человека:
@echo off
set D=%date:~6,4%-%date:~3,2%-%date:~0,2%
"C:\Program Files\1cv8\8.3.24.1691\bin\1cv8.exe" DESIGNER /F"D:\Bases\Buh" /N"Администратор" /P"пароль" /DisableStartupDialogs /DumpIB"E:\Backup\Buh_%D%.dt" /Out"E:\Backup\dump_%D%.log"
Для серверной базы вместо /F"путь" указывают /S"сервер\имя_базы". Путь к 1cv8.exe поправьте под установленную версию платформы. Формат даты в переменной D рассчитан на русскую локаль Windows (ДД.ММ.ГГГГ).
Файл /Out — журнал выгрузки. Проверяйте его: если выгрузка не удалась, ошибка будет там, а не на экране.
💡 Чтобы выгрузке никто не мешал, перед ней можно установить блокировку начала сеансов (в типовых конфигурациях — Администрирование → Обслуживание → Блокировка работы пользователей) и запускать Конфигуратор с ключом /UC"код", где код совпадает с кодом разрешения в блокировке. Работающие пользователи при этом получат предупреждение и будут отключены, поэтому делайте это ночью.
Планировщик заданий Windows
- Откройте
Планировщик заданий→ Создать задачу . - На вкладке «Общие» выберите учётную запись с доступом к папке базы и папке архива, включите «Выполнять вне зависимости от регистрации пользователя».
- На вкладке «Триггеры» задайте время, например 02:00 ежедневно.
- На вкладке «Действия» укажите
.bat-файл.
Пароль пользователя 1С в .bat — слабое место. Заведите отдельного пользователя только для выгрузки, а файл положите в папку, к которой нет доступа у обычных сотрудников.
Какой способ автоматизации выбрать
Сколько хранить копии и где: ротация архивов 1С
Копии за каждый день навсегда — это быстро закончившийся диск. Одна копия «последняя» — это риск: если ошибку заметят через неделю, откатиться будет некуда.
Схема «дед — отец — сын»
Самая понятная схема ротации:
- 📅 Ежедневные — храните 7–14 последних.
- 🗓 Еженедельные (например, за воскресенье) — 4–5 последних.
- 📆 Ежемесячные (последний рабочий день месяца) — 12 штук.
- 📌 Годовые — после закрытия года и сдачи отчётности, без срока.
Пример расчёта: файловая база 4 ГБ, сжатая копия около 0,8 ГБ. По схеме 14 + 5 + 12 = 31 копия, это примерно 25 ГБ. Плюс годовые — по 0,8 ГБ в год.
Правило 3-2-1
- 3 копии данных: рабочая база и две резервные.
- 2 разных носителя: например, второй диск сервера и сетевое хранилище.
- 1 копия вне офиса: облако или диск, который увозят домой.
Копия на том же диске, что и база, спасает от ошибки пользователя, но не от поломки диска, пожара или шифровальщика. Против шифровальщика нужна копия, которую нельзя изменить с рабочего компьютера: отдельное хранилище с правами «только запись» для учётки бэкапа или облако с версионированием.
Удаление старых копий скриптом
Ежедневные копии старше 14 дней можно удалять стандартной командой Windows:
forfiles /p "E:\Backup\Daily" /m *.dt /d -14 /c "cmd /c del @path"
Месячные и годовые копии держите в отдельных папках, чтобы эта команда их не задела.
Проверка архива и восстановление базы из копии
Непроверенный бэкап — это надежда, а не копия. Повреждённый .dt или битый .bak обычно обнаруживают в самый неудачный день.
Пробное восстановление раз в месяц
- Создайте в списке баз новую пустую базу, например
Buh_test. - Откройте её в Конфигураторе:
Администрирование → Загрузить информационную базу, выберите последний.dt. - Запустите базу в режиме «1С:Предприятие», откройте последние документы, сформируйте оборотно-сальдовую ведомость и сравните с рабочей.
- Удалите тестовую базу.
Никогда не загружайте .dt в рабочую базу «для проверки». Загрузка полностью заменяет конфигурацию и данные. Всё, что внесли после выгрузки, пропадёт.
Для серверных копий порядок тот же: восстановите .bak или дамп в базу СУБД с другим именем, зарегистрируйте её в кластере 1С как новую информационную базу и откройте.
Проверка целостности файловой базы
Для файла 1Cv8.1CD в каталоге bin платформы есть утилита chdbfl.exe. Она проверяет физическую структуру файла и умеет исправлять ошибки. Запускайте её на копии, когда база закрыта.
Логическую проверку делают в Конфигураторе: Администрирование → Тестирование и исправление. Режим требует монопольного доступа, поэтому пользователей перед ним отключают. Начинайте с проверки без исправления, чтобы сначала увидеть масштаб проблемы.
Восстановление после сбоя
| Ситуация | Из чего восстанавливать | Что потеряется |
|---|---|---|
| Ошибка пользователя, удалили документы | Копия до ошибки — в тестовую базу, нужные данные перенести вручную или выгрузкой | Ничего, если переносить точечно |
| Неудачное обновление конфигурации | .dt, снятый перед обновлением | Ничего, если в базе не работали после |
| Поломка диска, файловая база | Последняя копия 1Cv8.1CD или .dt | Работа с момента копии |
| Поломка сервера, база на MS SQL | Полная копия + копии журнала | Минуты между копиями журнала |