Резервная копия 1С без сюрпризов: файлы, .dt, SQL и расписание

· 10 мин

Содержание

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

Делать копию нужно по расписанию, а не «перед обновлением, если вспомним». Хранить — минимум в двух местах, одно из которых не на том же сервере. И раз в месяц проверять, что копия разворачивается в рабочую базу. Без последнего пункта все остальные мало что гарантируют.

Какой способ копирования подходит вашей базе

Способ зависит от двух вещей: где лежит база (файл на диске или СУБД) и сколько времени у вас на копирование. Сравнение основных вариантов:

СпособДля каких базПлюсыОграничения
Копия папки с 1Cv8.1CDФайловыеБыстро, полный слепокТолько когда все вышли из базы
Выгрузка .dtФайловые и серверныеПереносимо между режимами и СУБДДолго на больших базах
Встроенное копирование в конфигурацииФайловые (БП 3.0, ЗУП 3.1 и др.)Расписание без скриптовЗавершает сеансы пользователей
Бэкап MS SQL / PostgreSQLКлиент-серверныеБыстро, можно без остановки работыНужен доступ к СУБД
Как устроена ваша база?

Копирование файловой базы целиком

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

Узнать каталог просто: в окне запуска 1С выделите базу — путь отображается внизу списка. Или откройте Изменить и посмотрите строку с каталогом информационной базы.

Порядок действий

  1. Попросите всех выйти из базы. Проверить можно в Конфигураторе: Администрирование → Активные пользователи.
  2. Закройте у себя и 1С:Предприятие, и Конфигуратор этой базы.
  3. Скопируйте весь каталог базы, а не только 1Cv8.1CD. Так сохранится и журнал регистрации.
  4. Упакуйте копию в архив и подпишите датой: Buh_2026-10-07.zip. Файл 1Cv8.1CD сжимается хорошо, часто в несколько раз.

Не копируйте 1Cv8.1CD, пока в базе кто-то работает. Файл в этот момент меняется, и копия может оказаться несогласованной: одна часть записана до изменений, другая — после. Такая база иногда открывается, но потом выдаёт ошибки при проведении или тестировании.

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

Выгрузка базы в файл .dt и встроенное копирование

Выгрузка через Конфигуратор

Файл .dt — это выгрузка конфигурации и данных в собственном формате платформы. Он подходит для файловых и серверных баз и позволяет перенести базу из одного режима в другой.

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

Для выгрузки монопольный режим не нужен. Но если в это время пользователи проводят документы, копия зафиксирует базу «на бегу». Для предсказуемого результата делайте выгрузку, когда работа остановлена.

Выгрузка .dt не содержит журнал регистрации: он лежит отдельно. Если журнал нужен для расследований, копируйте его каталог отдельно.

Не путайте .dt и .cf

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

Встроенное копирование в типовых конфигурациях

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

Там настраивается:

  • 📅 расписание или копирование при завершении работы;
  • 📁 каталог, куда складываются архивы;
  • 🗑️ сколько последних копий хранить.

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

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

В клиент-серверном варианте данные 1С лежат в обычной базе данных MS SQL Server или PostgreSQL. Её и нужно копировать штатными средствами СУБД — это быстрее выгрузки .dt в разы и не требует выгонять пользователей.

MS SQL Server

Ручная копия в SQL Server Management Studio: правой кнопкой по базе → Tasks → Back Up. То же самое запросом:

BACKUP DATABASE [Buh]
TO DISK = N'E:\Backup\Buh_full.bak'
WITH INIT, COMPRESSION, CHECKSUM, STATS = 10;
  • COMPRESSION уменьшает файл. Сжатие бэкапов доступно не во всех редакциях: в Express его нет, там уберите параметр.
  • CHECKSUM проверяет страницы при записи и прерывает бэкап, если найдена порча.
  • INIT перезаписывает файл. Для ежедневных копий давайте каждому файлу своё имя с датой.

Модель восстановления важна. При Simple вы восстанавливаетесь только на момент последнего полного бэкапа. При Full можно делать копии журнала транзакций каждые 15–60 минут и восстанавливаться на любую минуту. Но при Full журнал нужно регулярно бэкапить, иначе он разрастётся и займёт весь диск.

BACKUP LOG [Buh]
TO DISK = N'E:\Backup\Buh_log_1200.trn'
WITH CHECKSUM;

PostgreSQL

Для PostgreSQL используйте pg_dump в формате custom — он сжат и восстанавливается через pg_restore:

"C:\Program Files\PostgreSQL\15\bin\pg_dump.exe" -U postgres -h localhost -F c -f "E:\Backup\buh.backup" buh

Путь к pg_dump.exe зависит от установленной версии PostgreSQL — подставьте свой каталог. Пароль для запуска по расписанию храните в файле pgpass.conf профиля пользователя, от имени которого идёт задание, а не в тексте скрипта.

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

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

Скрипт выгрузки .dt на PowerShell

Скрипт выгружает файловую базу в .dt с датой в имени и пишет лог. Для серверной базы замените /F"путь" на /S"сервер\имя_базы".

$exe   = "C:\Program Files\1cv8\8.3.25.1445\bin\1cv8.exe"  # ваша версия платформы
$base  = "D:\1C\Buh"
$dir   = "E:\Backup\Buh"
$stamp = Get-Date -Format "yyyy-MM-dd_HHmm"
$dt    = "$dir\Buh_$stamp.dt"
$log   = "$dir\Buh_$stamp.log"

$arguments = "DESIGNER /F`"$base`" /N`"Backup`" /P`"пароль`" /DumpIB `"$dt`" /Out `"$log`" /DisableStartupDialogs"
Start-Process -FilePath $exe -ArgumentList $arguments -Wait -NoNewWindow

# Удаляем выгрузки старше 14 дней
Get-ChildItem $dir -Filter "Buh_*.dt" |
  Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-14) } |
  Remove-Item

Что важно в скрипте:

  • 👤 Заведите в базе отдельного пользователя Backup с правами администратора. Так в журнале регистрации видно, кто делал выгрузку.
  • 🔑 Пароль в скрипте лежит открытым текстом. Ограничьте доступ к файлу скрипта только администраторам.
  • 📄 После выполнения откройте лог: при успехе в нём есть сообщение о завершении выгрузки, при ошибке — её текст.
  • 🔢 Номер версии в пути к 1cv8.exe после обновления платформы меняется. Забытый путь — частая причина, почему скрипт «молча» перестал работать.

Настройка Планировщика заданий

  1. Откройте taskschd.msc → Создать задачу.
  2. На вкладке «Общие» выберите учётную запись с доступом к каталогу базы и папке копий. Отметьте «Выполнять вне зависимости от регистрации пользователя».
  3. На вкладке «Триггеры» — ежедневно, например в 23:00.
  4. На вкладке «Действия» — программа powershell.exe, аргументы: -ExecutionPolicy Bypass -File "C:\Scripts\backup_buh.ps1".
  5. Запустите задачу вручную и убедитесь, что в папке появился .dt и лог.

Для MS SQL полной версии расписание удобнее настроить через Maintenance Plans и SQL Server Agent. В Express агента нет — там бэкап запускают через sqlcmd из того же Планировщика Windows.

Сколько копий хранить и где

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

Рабочая схема ротации для небольшой организации:

КопииСколько держатьПример
Ежедневные7–14 днейКаждую ночь в 23:00
Еженедельные4–5 недельКопия за пятницу
Ежемесячные12 месяцевКопия на 1-е число
Перед закрытием года и обновлениемБессрочноОтдельная папка с пометкой

Где хранить:

  • 💾 первая копия — на другом физическом диске сервера, не там, где база;
  • 🌐 вторая — вне сервера: NAS, другой компьютер, облачное хранилище;
  • 🔒 хотя бы одна копия должна быть недоступна для записи с сервера 1С. Шифровальщик, попавший на сервер, зашифрует и базу, и всё, что лежит в подключённых сетевых папках.

Прикиньте объём заранее. База 20 ГБ в .dt занимает обычно заметно меньше, но 14 ежедневных и 12 ежемесячных копий легко дадут сотни гигабайт. Сжатие и удаление старых файлов — часть настройки, а не «потом».

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

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

Проверка файловой копии или .dt

  1. Создайте в окне запуска новую пустую информационную базу, например Buh_test.
  2. Откройте её в Конфигураторе: Администрирование → Загрузить информационную базу и выберите .dt. Для копии папки — просто распакуйте её в отдельный каталог и добавьте в список баз.
  3. Откройте базу в режиме 1С:Предприятие и сравните контрольные цифры с рабочей: оборотно-сальдовую ведомость за последний закрытый месяц, количество документов за день копирования.
  4. Для глубокой проверки запустите на копии Администрирование → Тестирование и исправление в Конфигураторе, только с флагами проверки, без исправлений.

Для файловых баз есть ещё утилита chdbfl.exe в каталоге bin платформы. Она проверяет физическую целостность файла 1Cv8.1CD. Запускайте её на копии или на базе, из которой все вышли.

Проверка серверной копии

В MS SQL быстрая проверка читаемости файла:

RESTORE VERIFYONLY FROM DISK = N'E:\Backup\Buh_full.bak' WITH CHECKSUM;

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

Восстановление рабочей базы

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

  • Загрузка .dt требует монопольного доступа: всех пользователей из базы нужно вывести, их сеансы будут прерваны. Делайте это в согласованное время.
  • В MS SQL восстановление поверх существующей базы — RESTORE DATABASE ... WITH REPLACE. Перед ним отключите сеансы 1С к этой базе.
  • Надёжнее восстановить копию в новую базу, проверить её и только потом переключить пользователей.

Ошибки, из-за которых копия не спасает

  • ❌ Копия лежит на том же диске, что и база. Отказ диска уносит обе.
  • ❌ Сохраняют только .cf. Конфигурация есть, данных нет.
  • ❌ Скрипт перестал работать после обновления платформы. Изменился путь к 1cv8.exe, а лог никто не читает. Настройте уведомление или хотя бы еженедельно смотрите дату последнего файла.
  • ❌ Модель Full в MS SQL без бэкапов журнала. Файл журнала растёт до заполнения диска, и база останавливается.
  • ❌ Копируют файловую базу «на живую». Архив есть, но база из него открывается с ошибками.
  • ❌ Нет копии перед закрытием года. Через полгода нужно восстановить состояние на 31 декабря, а ротация его уже удалила.

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

Сколько времени занимает выгрузка базы 1С в .dt?
Зависит от размера и диска. База в 1–2 ГБ на SSD выгружается за несколько минут, базы в десятки гигабайт — от получаса. Время растёт почти пропорционально объёму данных.
Можно ли загрузить .dt из файловой базы в серверную?
Да. Создайте пустую базу на сервере 1С и загрузите в неё .dt через Конфигуратор. Обратный перенос из серверной в файловую тоже работает. Версия платформы, в которую загружаете, не должна быть ниже той, из которой выгружали.
Нужна ли копия, если база в облаке 1С:Фреш или у хостера?
Провайдер делает свои копии, но условия хранения и восстановления у каждого свои. Периодически скачивайте выгрузку себе: это страховка на случай смены провайдера или спорной ситуации.
Как часто делать резервную копию 1С?
Ориентир — не реже раза в сутки для рабочей базы. Если потеря даже одного дня работы критична, нужна серверная база с копиями журнала транзакций каждые 15–60 минут.
Хранятся ли лицензии 1С в резервной копии базы?
Нет. Программные лицензии привязаны к компьютеру и хранятся отдельно от базы. При переносе на новый сервер их нужно активировать заново по правилам лицензирования.