Бэкап 1С по расписанию без участия человека: четыре рабочих схемы

· 10 мин

Содержание

Автоматическое копирование базы 1С настраивают одним из четырёх способов. Для файловой базы — пакетный файл, который выгружает .dt через 1cv8.exe DESIGNER /DumpIB и запускается Планировщиком заданий Windows. Для базы на MS SQL — план обслуживания SQL Server Agent или BACKUP DATABASE по расписанию. Для небольшой файловой базы в БП 3.0 хватит встроенной настройки: Администрирование → Обслуживание → Резервное копирование и восстановление.

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

Что решить до настройки резервного копирования

Начните не со скриптов, а с ответов на пять вопросов. От них зависит, какой способ подойдёт.

  • 🗂️ Тип базы. Файловая (в каталоге лежит 1Cv8.1CD) или клиент-серверная (база на MS SQL или PostgreSQL). Посмотреть можно в списке баз: у файловой в строке подключения File=, у серверной — Srvr= и Ref=.
  • ⏱️ Сколько данных не жалко потерять. Если копия раз в сутки, в худшем случае пропадёт день работы. Для бухгалтерии на 3–5 человек это обычно приемлемо. Для склада с сотней документов в час — нет.
  • 🌙 Окно для копирования. Время, когда в базе никто не работает . Обычно ночь, например 02:00–04:00.
  • 💾 Куда складывать копии. Другой диск — минимум. Другой компьютер или облако — обязательно для второй копии.
  • 🔁 Сколько хранить. Типичная схема: 14 ежедневных копий и 6 ежемесячных.

Подготовьте и служебные вещи:

  1. Отдельного пользователя 1С для выгрузки, например backup, с ролью «Администратор» (или «Полные права»). Пароль держите только в скрипте, к которому нет доступа у рядовых пользователей.
  2. Учётную запись Windows, от имени которой будет работать задание. У неё должны быть права на чтение каталога базы и запись в папку копий.
  3. Точный путь к 1cv8.exe нужной версии платформы, например C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe. Версия должна совпадать с той, на которой работают пользователи.

Проверьте свободное место. .dt обычно в несколько раз меньше 1Cv8.1CD, но 14 копий базы на 5 ГБ всё равно займут десятки гигабайт.

Способ 1. Автоматическая выгрузка файловой базы 1С через Планировщик Windows

Это самый универсальный вариант для файловой базы. Он не зависит от того, открыта ли программа, и даёт копию в формате .dt, которую можно загрузить на любом компьютере.

Шаг 1. Пакетный файл выгрузки

Создайте папку D:\Backup\Scripts и в ней файл backup_buh.bat:

@echo off
chcp 65001 >nul
set V8="C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe"
set BASE=D:\1C\Buh
set DEST=D:\Backup\Buh
for /f %%i in ('powershell -NoProfile -Command "Get-Date -Format yyyy-MM-dd_HHmm"') do set TS=%%i

if not exist "%DEST%" mkdir "%DEST%"

%V8% DESIGNER /F "%BASE%" /N "backup" /P "Пароль" /DumpIB "%DEST%\Buh_%TS%.dt" /Out "%DEST%\log_%TS%.txt" /DisableStartupDialogs

rem Удаляем копии старше 14 дней
forfiles /p "%DEST%" /m *.dt /d -14 /c "cmd /c del @path" 2>nul
forfiles /p "%DEST%" /m log_*.txt /d -14 /c "cmd /c del @path" 2>nul

Что здесь важно:

  • 📅 Дату берём через PowerShell, а не из %date%. Формат %date% зависит от региональных настроек Windows и ломает имя файла.
  • 📝 Ключ /Out пишет журнал. Без него вы не узнаете, что выгрузка упала.
  • 🔤 Строка chcp 65001 и сохранение файла в UTF-8 нужны, если имя пользователя или путь на кириллице. Проще завести пользователя backup латиницей.
  • 🖥️ Для серверной базы вместо /F "путь" указывают /S "Сервер\ИмяБазы".

Запустите файл вручную и откройте журнал. Строка об успешной выгрузке и файл .dt в папке означают, что скрипт рабочий.

Шаг 2. Задание в Планировщике

  1. Откройте taskschd.msc → «Создать задачу » (не «простую задачу»).
  2. Вкладка «Общие»: выберите учётную запись, отметьте «Выполнять вне зависимости от регистрации пользователя» и «Выполнять с наивысшими правами».
  3. Вкладка «Триггеры»: ежедневно, 02:00.
  4. Вкладка «Действия»: запуск программы D:\Backup\Scripts\backup_buh.bat, в поле «Рабочая папка» — D:\Backup\Scripts.
  5. Вкладка «Параметры»: «Останавливать задачу, выполняемую дольше» — 2 часа. Так зависшая выгрузка не будет висеть до утра.

Выгрузка в .dt не требует монопольного режима, но если в 02:00 кто-то оставил открытую 1С с незавершённым документом, копия отразит базу на момент выгрузки. Договоритесь с пользователями выходить из программы в конце дня.

Вариант попроще: копия файла 1Cv8.1CD

Можно не выгружать .dt, а копировать сам файл базы и сжимать архиватором:

robocopy "D:\1C\Buh" "D:\Backup\Buh_%TS%" 1Cv8.1CD /R:2 /W:5
"C:\Program Files\7-Zip\7z.exe" a -mx=5 "D:\Backup\Buh_%TS%.7z" "D:\Backup\Buh_%TS%\*"
rmdir /s /q "D:\Backup\Buh_%TS%"

Это быстрее, но копировать 1Cv8.1CD можно только когда в базе нет ни одного сеанса. Файл, скопированный во время записи, может оказаться несогласованным и не открыться. Поэтому для автоматической схемы надёжнее .dt.

Способ 2. Бэкап базы 1С на MS SQL через SQL Server Agent

Для клиент-серверной базы правильная копия — это резервная копия самой СУБД. Её делают средствами SQL Server, а не 1С. Пользователей при этом выгонять не нужно: SQL Server делает согласованный бэкап при работающих сеансах.

План обслуживания

  1. Откройте SQL Server Management Studio, подключитесь к серверу.
  2. Раскройте Управление → Планы обслуживания, запустите мастер плана обслуживания.
  3. Добавьте задачи: «Проверка целостности базы данных», «Резервное копирование базы данных (полное)», «Очистка после обслуживания».
  4. В задаче копирования выберите базу 1С, папку назначения, включите проверку целостности копии и сжатие.
  5. В очистке укажите ту же папку, расширение bak и срок хранения, например 2 недели.
  6. Задайте расписание — ежедневно в 01:00 — и сохраните план. SQL Server Agent создаст задание сам.

Если нужна копия чаще раза в сутки

Переведите базу в модель восстановления «Полная» (Full) и добавьте второе задание: резервное копирование журнала транзакций каждые 30–60 минут. Тогда базу можно восстановить на нужный момент времени, а не только на ночь.

В модели «Полная» без регулярного бэкапа журнала файл .ldf растёт, пока не займёт весь диск. Включили Full — сразу настройте копию журнала.

SQL Server Express: агента нет

В редакции Express нет SQL Server Agent и не поддерживается сжатие бэкапа. Здесь задание делают через Планировщик Windows и sqlcmd:

DECLARE @f nvarchar(260) = N'D:\Backup\SQL\buh_'
    + FORMAT(GETDATE(), 'yyyy-MM-dd_HHmm') + N'.bak';
BACKUP DATABASE [buh] TO DISK = @f WITH CHECKSUM, INIT;

Сохраните запрос в backup.sql и вызывайте из bat-файла:

sqlcmd -S .\SQLEXPRESS -E -i "D:\Backup\Scripts\backup.sql" -o "D:\Backup\SQL\log.txt"

Ключ -E подключает от имени текущей учётной записи Windows, у неё должны быть права на резервное копирование базы.

База на PostgreSQL

Аналог для PostgreSQL — pg_dump в своём формате по расписанию (cron на Linux, Планировщик на Windows):

pg_dump -U postgres -Fc -f /backup/buh_$(date +%F).dump buh
find /backup -name "buh_*.dump" -mtime +14 -delete

Восстанавливают такую копию через pg_restore.

Способ 3. Готовые программы для резервного копирования 1С

Если писать скрипты некому, берут готовую утилиту. Известный пример — Effector Saver, есть и другие программы того же класса. Внутри они делают то же, что скрипты выше, но с графическим интерфейсом.

Что обычно умеют такие программы:

  • 📦 выгружать .dt и копировать файловые базы по расписанию;
  • 🗄️ запускать бэкап MS SQL и PostgreSQL;
  • ☁️ отправлять копии на FTP, сетевой диск или в облако;
  • 🧹 удалять старые копии по заданному правилу;
  • 📧 присылать отчёт на почту или в мессенджер, если копирование не прошло.

Перед выбором проверьте три вещи: работает ли программа как служба (без входа пользователя в Windows), поддерживает ли вашу версию платформы и сколько стоит лицензия на нужное число баз. Бесплатные редакции часто ограничены одной-двумя базами.

Способ 4. Встроенное резервное копирование в БП 3.0 и других типовых

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

Путь в БП 3.0: Администрирование → Обслуживание → Резервное копирование и восстановление.

  1. Нажмите настройку резервного копирования.
  2. Выберите режим: регулярно по расписанию или при завершении работы программы.
  3. Укажите каталог для копий и сколько копий хранить.
  4. Введите имя и пароль администратора, если в базе есть пользователи.

Ограничения у этого способа серьёзные:

  • 🖥️ Копирование запускает программа на компьютере того, кто его настроил. Если в назначенное время 1С на этом компьютере закрыта, копия не создастся.
  • 👥 Перед копированием программа завершает сеансы остальных пользователей. Днём это неудобно.
  • 🔔 Если копия не прошла, узнает об этом только тот, кто открыл базу и увидел сообщение.

Для базы на 1–2 пользователей это разумный минимум. Для офиса из 5 человек и больше лучше способ 1.

Какой способ выбрать

СпособКогда подходитСлабое место
.dt через ПланировщикФайловая база, любой размерНужно один раз написать скрипт
План обслуживания SQLБаза на MS SQL Standard и вышеНужен доступ к серверу СУБД
sqlcmd / pg_dump по расписаниюSQL Express, PostgreSQLНет встроенных уведомлений
Готовая утилитаНет администратора, много базПлатная лицензия
Встроенная настройка БП 3.0Файловая база, 1–2 пользователяЗависит от открытой программы
Автокопирование настроено правильно, если…
Выполнено: 0 / 5

Где автоматическое копирование 1С обычно ломается

Скрипт, который отработал при ручном запуске, может молча перестать работать через месяц. Типичные причины:

  • 🔑 Сменили пароль пользователя backup в 1С. Выгрузка падает с ошибкой авторизации, а .dt больше не появляются. Заглядывайте в журнал из /Out.
  • ⬆️ Обновили платформу и удалили старую версию. Путь 8.3.24.1548 в скрипте больше не существует. Обновляйте путь сразу при смене версии.
  • 💽 Закончилось место на диске. Особенно часто, когда ротация не настроена или настроена на другую маску файлов.
  • 👤 Задание работает только при входе пользователя. Не отмечен пункт «Выполнять вне зависимости от регистрации», и после перезагрузки сервера копии прекращаются.
  • 🌐 Копии пишутся на сетевой диск по букве. Буквы сетевых дисков не видны заданию, запущенному без входа пользователя. Указывайте путь вида \\nas\backup.
  • 🧩 Копия есть, но битая. Файл создан, а загрузить его нельзя. Отсюда правило: проверять восстановлением, а не наличием файла.

Восстановление базы 1С из автоматической копии

Восстановление стоит отрепетировать заранее, на тестовой базе. В аварийный день на это не будет ни времени, ни спокойствия.

Из файла .dt

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

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

Из копии MS SQL

Надёжнее восстанавливать не поверх рабочей базы, а в новую:

RESTORE DATABASE [buh_test]
FROM DISK = N'D:\Backup\SQL\buh_2026-10-06_0100.bak'
WITH MOVE N'buh' TO N'D:\SQL\buh_test.mdf',
     MOVE N'buh_log' TO N'D:\SQL\buh_test_log.ldf',
     RECOVERY;

Логические имена файлов (buh, buh_log в примере) у вашей базы могут быть другими. Их показывает команда RESTORE FILELISTONLY FROM DISK = N'...'.

После этого зарегистрируйте buh_test в кластере 1С через консоль администрирования серверов и добавьте в список баз. Убедились, что данные на месте, — тогда решайте, заменять ли рабочую.

Из копии файла 1Cv8.1CD

Распакуйте архив в новую папку и добавьте её в список баз как существующую. Рабочий каталог не трогайте, пока не проверите копию.

Как защитить резервные копии 1С от потери

Копия, лежащая рядом с базой, спасает от ошибки пользователя, но не от вируса-шифровальщика, кражи или отказа диска.

  • 🧮 Правило 3-2-1. Три экземпляра данных, на двух разных носителях, один — вне офиса.
  • 🔒 Отдельные права. Рядовые пользователи не должны иметь доступа на запись в папку копий. Шифровальщик работает с правами того, кто его запустил.
  • 📴 Копия, до которой нельзя дотянуться по сети. Отключаемый диск, хранилище с неизменяемыми снимками или облако с версионированием.
  • 🔐 Шифрование при выносе за пределы офиса. В базе персональные данные сотрудников и контрагентов. Архив с паролем (7z a -p -mhe=on) — минимальная мера.
  • 📬 Уведомления. Простой способ — по завершении скрипта проверять, что новый .dt больше нуля байт, и отправлять письмо или сообщение, если нет.
  • 🗓️ Ежемесячные копии отдельно. Ошибку в учёте иногда находят через два месяца, когда все ежедневные копии уже перезаписаны.

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

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

Как часто делать автоматическую копию базы 1С?
Для бухгалтерии — раз в сутки ночью и дополнительно перед каждым обновлением конфигурации. Для активного склада или торговли на SQL — ночной полный бэкап плюс копия журнала транзакций каждый час.
Нужно ли выгонять пользователей перед выгрузкой в .dt?
Монопольный режим для выгрузки не нужен. Но копия, снятая при работающих пользователях, может не содержать документа, который ещё не записан. Ночной запуск снимает вопрос.
Можно ли настроить автокопирование на сетевую папку или NAS?
Да. Указывайте путь \\имя_сервера\папка, а не букву диска, и дайте учётной записи задания права на запись в эту папку.
Что лучше для серверной базы: .dt или бэкап SQL?
Бэкап SQL. Он делается без остановки работы, быстрее и позволяет восстановиться на конкретный час. .dt полезен как дополнительная копия раз в неделю: его можно загрузить и в файловую базу.
Сколько места нужно под копии?
Посчитайте размер одной копии и умножьте на число хранимых плюс 20% запаса. Например, при .dt на 800 МБ и 14 ежедневных копиях — около 13–14 ГБ.