При использовании типового механизма резервного копирования, встроенного в конфигурации на базе «1С:Предприятие 8», пользователи часто сталкиваются с ситуацией: расписание задано (например, каждый день в 20:00), путь к целевой папке указан, однако архивные копии так и не появляются. Выясним причину такого поведения и подробно разберем правильные способы настройки автоматического резервного копирования для файловых информационных баз.
Проанализируем архитектуру файлового режима работы «1С:Предприятия». В отличие от клиент-серверного варианта (SQL), где фоновые и регламентные задания запускаются службой сервера 1С независимо от наличия подключенных пользователей, в файловой базе регламентные механизмы не могут работать автономно.
Встроенное резервное копирование (механизм Библиотеки стандартных подсистем — БСП) работает по следующим правилам:
Таким образом, полагаться на встроенное резервное копирование в нерабочее время для файловой базы нельзя. Для надежного создания архивов необходимо использовать средства операционной системы или сторонние утилиты.
Рассмотрим запуск конфигуратора в пакетном режиме с помощью Планировщика заданий Windows (Task Scheduler). Этот способ позволяет автоматически сформировать файл информационной базы с расширением .dt.
Создадим командный файл (батник с расширением .bat или .cmd) следующего содержания:
@echo off
set PLATFORM="C:\Program Files\1cv8\8.3.24.1342\bin\1cv8.exe"
set BASE_PATH="C:\1C_Bases\MyBase"
set BACKUP_DIR="D:\1C_Backups"
set USERNAME="Администратор"
set PASSWORD="SecretPassword"
for /f "tokens=1-4 delims=." %%a in ("%date%") do set BACKUPDATE=%%c-%%b-%%a
set BACKUP_FILE=%BACKUP_DIR%\Backup_%BACKUPDATE%.dt
%PLATFORM% DESIGNER /F %BASE_PATH% /N %USERNAME% /P %PASSWORD% /DumpIB %BACKUP_FILE% /UC "ПакетнаяВыгрузка"
Разберем параметры командной строки, которые мы использовали:
DESIGNER — запуск платформы в режиме «Конфигуратор»./F — путь к каталогу с файловой информационной базой./N и /P — логин и пароль пользователя с административными правами./DumpIB — команда выгрузки базы в указанный файл .dt./UC — код разрешения для подключения к базе, если на нее предварительно установлена блокировка соединений.Важно: Для успешного выполнения выгрузки в базе не должно быть зависших сеансов других пользователей.
Необходимо учитывать, что файл выгрузки .dt предназначен в первую очередь для переноса конфигурации и данных между различными СУБД, а не для регулярного резервного копирования. Наиболее надежный способ сохранения файловой базы — создание прямой копии основного файла 1Cv8.1CD.
Разберем создание PowerShell-скрипта, который принудительно завершает незакрытые сеансы (процессы 1cv8.exe и 1cv8c.exe), упаковывает базу данных с помощью архиватора 7-Zip и удаляет копии старше 6 месяцев:
$SourcePath = "C:\1C_Bases\MyBase\1Cv8.1CD"
$BackupDir = "D:\1C_Backups"
$7ZipPath = "C:\Program Files\7-Zip\7z.exe"
$DateStr = Get-Date -Format "yyyy-MM-dd_HH-mm"
$ArchiveFile = "$BackupDir\BaseBackup_$DateStr.7z"
# Завершаем процессы 1С, чтобы снять блокировки с файлов
Get-Process -Name "1cv8", "1cv8c" -ErrorAction SilentlyContinue | Stop-Process -Force
# Создаем архив файла базы данных
if (Test-Path $SourcePath) {
& $7ZipPath a -t7z -mx=5 $ArchiveFile $SourcePath
}
# Удаляем резервные копии старше 180 дней (6 месяцев)
$LimitDate = (Get-Date).AddDays(-180)
Get-ChildItem -Path $BackupDir -Filter "*.7z" | Where-Object { $_.CreationTime -lt $LimitDate } | Remove-Item -Force
Если пользователи регулярно забывают закрывать программу на ночь, принудительное завершение процессов может привести к потере несохраненных данных пользователя. В такой ситуации наилучшим решением будет использование системы архивации с поддержкой VSS (например, встроенной службы архивации Windows Server Backup или специализированных утилит вроде Effector Saver).
Теневое копирование создает снимок тома в конкретный момент времени, что гарантирует целостность файла 1Cv8.1CD даже при открытой базе данных, исключая повреждение транзакций и блокировку файлов.
При настройке резервного копирования обязательно обратим внимание на следующие технические детали:
1Cv8.1CD или выгружать .dt недостаточно. Обязательно добавьте в скрипт резервного копирования директорию с файловыми томами.