Разберем ситуацию, когда файловая база 1С (например, 1С:Бухгалтерия 3.0) используется в круглосуточном режиме несколькими пользователями (диспетчерами), и требуется организовывать еженощное создание резервных копий без участия оператора.
Главная техническая проблема файлового режима заключается в том, что прямой доступ к файлу базы 1Cv8.1CD во время записи активными сеансами может привести к логическому повреждению структуры таблиц и индексов. Простая выгрузка в формат .dt или теневое копирование файла при открытых сеансах также вызывают ошибки несогласованности данных.
Посмотрим на корректный алгоритм проведения резервного копирования файловой базы:
1Cv8.1CD или архивация.Проанализируем, как организовать процесс штатными средствами платформы 1С и операционной системы. В типовых конфигурациях на базе Библиотеки стандартных подсистем (БСП) предусмотрен параметр командной строки для завершения работы пользователей.
Для автоматического запуска процесса, даже когда на сервере не выполнен интерактивный вход администратора, настроим задачу в Планировщике задач Windows (Task Scheduler) с запуском при старте системы.
Рассмотрим порядок вызова 1С из скрипта для блокировки сеансов:
"C:\Program Files\1cv8\8.3.XX.XXXX\bin\1cv8.exe" ENTERPRISE /F "C:\Bases\MyBase" /N "Admin" /P "Password" /CЗавершитьРаботуПользователей
После вызова данного параметра программа завершит работу пользовательских сеансов и установит код разблокировки. Для последующего входа административного сеанса в заблокированную базу используется параметр /UC с указанием заранее заданного кода разблокировки:
"C:\Program Files\1cv8\8.3.XX.XXXX\bin\1cv8.exe" ENTERPRISE /F "C:\Bases\MyBase" /N "Admin" /P "Password" /UC "КодРазблокировки"
Для принудительного освобождения файловых дескрипторов на стороне Windows Server в случаях, когда сетевые сеансы удерживают файл 1Cv8.1CD, системные администраторы могут использовать командлет PowerShell:
Close-SmbOpenFile -Force
Выясним, как выполнить физическое копирование файла базы данных после отключения пользователей. Для создания архива можно использовать консольный архиватор (например, 7-Zip).
Посмотрим на пример командного файла (батника) для упаковывания файла 1Cv8.1CD:
"C:\Program Files\7-Zip\7z.exe" a "D:\BackUp\Base_%DATE%_%time:~0,2%_%time:~3,2%.zip" -ssw "D:\Bases\1Cv8.1CD"
Обратим внимание на ключ -ssw в 7-Zip, который позволяет архиватору читать файлы, открытые другими процессами для записи. Однако применять его следует строго после принудительного завершения сеансов 1С, иначе архив может оказаться поврежденным.
Для упрощения администрирования файловых баз 1С часто применяются специализированные решения, такие как Обновлятор-1С или Cobian Backup.
Проанализируем их возможности:
Разберем ключевые нюансы и ошибки, с которыми сталкиваются администраторы файловых баз 1С:
.dt как основной бэкап: Режим выгрузки информационной базы (CONFIG /DumpIB) предназначен для переноса данных между платформами или СУБД, но не является средством оперативного резервного копирования. Кроме того, выгрузка .dt требует монопольного доступа к базе.1Cv8.1CD при работающих пользователях создаст файл с нарушенной целостностью. При восстановлении такой базы потребуются утилиты исправления, такие как chdbfl.exe, и часть данных может быть утеряна.При росте количества пользователей и круглосуточном режиме работы 24/7 оптимальным решением является переход с файлового режима на клиент-серверный (СУБД PostgreSQL или MS SQL Server). В клиент-серверном режиме резервное копирование выполняется средствами СУБД без остановки работы пользователей.