При обслуживании распределенной информационной базы (РИБ) с большим количеством узлов (например, сеть из десятков магазинов на базе 1С:Розница) ручное подключение к каждой периферийной базе для принятия изменений конфигурации становится трудоемкой задачей. Каждое изменение структуры базы в центральном узле требует корректного обновления информационных баз на местах.
Рассмотрим, как организовать процесс автоматического применения изменений конфигурации на узлах РИБ без необходимости интерактивного присутствия администратора.
Выясним причину, почему стандартный процесс обмена останавливается при изменении конфигурации. Когда центральный узел выгружает файл обмена с новой версией конфигурации, периферийный узел принимает эти изменения, но не может продолжить работу в режиме «1С:Предприятие» до тех пор, пока конфигурация базы данных не будет обновлена в Конфигураторе.
Основные факторы, мешающие автоматическому обновлению:
Проанализируем базовый сценарий автоматизации обмена и обновления. Для успешного реструктурирования периферийной базы процесс организуется следующим образом:
.bat или .cmd).1cv8.exe.Для реализации автоматических сценариев используются следующие параметры и ключи запуска 1С:
Запуск реструктуризации базы данных в режиме Конфигуратора:
DESIGNER /F "ПутьКБазе" /N "Администратор" /P "Пароль" /UpdateDBCfg -WarningsAsErrors /Out "C:\Logs\update.log"
Основные используемые ключи:
DESIGNER (или CONFIG) — запуск платформы в режиме Конфигуратора./UpdateDBCfg — выполнение обновления конфигурации базы данных (применение принятых изменений).-WarningsAsErrors — интерпретирование предупреждений как ошибок, что предотвращает неконтролируемое обновление при критических сообщениях./UC <КодРазрешения> — позволяет подключаться к базе с установленной блокировкой начала сеансов./DisableStartupMessages — подавление всплывающих стартовых диалогов./Out <ПутьКФайлуЛога> — перенаправление сообщений платформы и ошибок в текстовый лог-файл для дальнейшего анализа.Запуск выполнения процедур обновления БСП в режиме Предприятия:
ENTERPRISE /F "ПутьКБазе" /N "Администратор" /P "Пароль" /C ЗапуститьОбновлениеИнформационнойБазы /DisableStartupMessages
Параметр /C ЗапуститьОбновлениеИнформационнойБазы дает команду механизмам БСП выполнить обработчики обновления в автоматическом режиме без вывода вопросов пользователю.
Рассмотрим пример скрипта, который может вызываться для выполнения процесса обновления файловой базы данных периферийного узла:
@echo off
rem Завершение зависших процессов платформы
taskkill /F /IM 1cv8.exe /T
rem Пути к платформе и базе данных
set 1cpath="C:\Program Files\1cv8\8.3.23.1688\bin\1cv8.exe"
set dbpath="C:\1C_Bases\Retail_Branch"
set logpath="C:\1C_Bases\Logs\update.log"
set user="AdminRIB"
set pass="Password123"
rem Шаг 1. Применение изменений конфигурации в Конфигураторе
%1cpath% DESIGNER /F %dbpath% /N %user% /P %pass% /UpdateDBCfg -WarningsAsErrors /Out %logpath% /DisableStartupMessages
rem Шаг 2. Запуск процедур обновления данных БСП в режиме Предприятия
%1cpath% ENTERPRISE /F %dbpath% /N %user% /P %pass% /C ЗапуститьОбновлениеИнформационнойБазы /DisableStartupMessages
exit
Посмотрим на штатные механизмы современных типовых конфигураций. Начиная с последних версий БСП, в типовые решения (включая 1С:Розницу 2.2 и новее) встроен механизм автоматического обновления узлов РИБ.
При получении обновления из центрального узла конфигурация сама предлагает или по расписанию формирует командный файл во временном каталоге, завершает работу сеанса и запускает сформированный скрипт. После выполнения пакетного обновления платформа автоматически перезапускается и продолжает обмен.
Если в сети используются клиент-серверные базы данных, для гарантированного отключения пользователей рекомендуется использовать сервис администрирования кластера (утилиту RAC) или объект v83.COMConnector для установки блокировки сеансов и принудительного завершения текущих соединений перед вызовом ключа /UpdateDBCfg.