Как автоматизировать обновление конфигурации на периферийных узлах РИБ в 1С

Системный администратор 1С v8.3 (Управляемые формы) 1С:Розница Торговля и дистрибуция
← На главную

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

Рассмотрим, как организовать процесс автоматического применения изменений конфигурации на узлах РИБ без необходимости интерактивного присутствия администратора.

Причины возникающих трудностей и технические ограничения

Выясним причину, почему стандартный процесс обмена останавливается при изменении конфигурации. Когда центральный узел выгружает файл обмена с новой версией конфигурации, периферийный узел принимает эти изменения, но не может продолжить работу в режиме «1С:Предприятие» до тех пор, пока конфигурация базы данных не будет обновлена в Конфигураторе.

Основные факторы, мешающие автоматическому обновлению:

  1. Активные сеансы пользователей и фоновые задания. Если в базе работают пользователи или запущены фоновые задачи, платформа не сможет заблокировать файл базы данных (в файловом режиме) или таблицы СУБД (в клиент-серверном режиме) для проведения реструктуризации.
  2. Разделение процесса обновления на два этапа. Сначала требуется обновить структуру базы данных в Конфигураторе, а затем запустить режим «1С:Предприятие» для выполнения отложенных обработчиков обновления данных Библиотеки Стандартных Подсистем (БСП).
  3. Зависшие подключения. При некорректном завершении работы платформы сеансы могут оставаться активными, выгрузка обмена выдает ошибку о несоответствии конфигурации узла ожидаемой.

Общий алгоритм автоматической реструктуризации узла

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

  1. Система 1С при обнаружении принятых изменений конфигурации инициирует завершение работы пользователей и запускает внешний командный скрипт (файл .bat или .cmd).
  2. Скрипт принудительно завершает оставшиеся процессы 1cv8.exe.
  3. Скрипт запускает платформу в режиме Конфигуратора с ключами пакетного обновления базы данных.
  4. После успешного обновления структуры базы данных скрипт запускает режим «1С:Предприятие» со специальным ключом командной строки для выполнения обработчиков БСП.
  5. После выполнения всех процедур система снимает блокировки и допускает пользователей к работе.

Ключевые параметры командной строки платформы

Для реализации автоматических сценариев используются следующие параметры и ключи запуска 1С:

Запуск реструктуризации базы данных в режиме Конфигуратора:

DESIGNER /F "ПутьКБазе" /N "Администратор" /P "Пароль" /UpdateDBCfg -WarningsAsErrors /Out "C:\Logs\update.log"

Основные используемые ключи:

  1. DESIGNER (или CONFIG) — запуск платформы в режиме Конфигуратора.
  2. /UpdateDBCfg — выполнение обновления конфигурации базы данных (применение принятых изменений).
  3. -WarningsAsErrors — интерпретирование предупреждений как ошибок, что предотвращает неконтролируемое обновление при критических сообщениях.
  4. /UC <КодРазрешения> — позволяет подключаться к базе с установленной блокировкой начала сеансов.
  5. /DisableStartupMessages — подавление всплывающих стартовых диалогов.
  6. /Out <ПутьКФайлуЛога> — перенаправление сообщений платформы и ошибок в текстовый лог-файл для дальнейшего анализа.

Запуск выполнения процедур обновления БСП в режиме Предприятия:

ENTERPRISE /F "ПутьКБазе" /N "Администратор" /P "Пароль" /C ЗапуститьОбновлениеИнформационнойБазы /DisableStartupMessages

Параметр /C ЗапуститьОбновлениеИнформационнойБазы дает команду механизмам БСП выполнить обработчики обновления в автоматическом режиме без вывода вопросов пользователю.

Пример пакетного файла автоматизации (BAT-скрипт)

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


@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.

← На главную