Автоматическое обновление конфигурации периферийного узла РИБ при обмене
При большом количестве периферийных узлов в РИБ достаточно проблематично производить обновление конфигурации. В данной статье опишу свой опыт решения данной проблемы.
- Описание
- Подробнее
Описание
Итак, имеется РИБ «1С:Розница 1.0» на платформе 8.1, в которой на данный момент 115 периферийных узлов.
После внесения изменений в конфигурацию центрального узла производится обмен с периферийными узлами.
Периферийный узел при попытке загрузить входящий пакет выдает ошибку » Ошибка при чтении изменений при обмене РИБ: Ошибка при вызове метода контекста (ПрочитатьИзменения): Данные принимаются от узла, для которого зарегистрированы изменения конфигурации. Необходимо произвести перенос изменений конфигурации в узел».
Можно, конечно, зайти конфигуратором в каждый периферийный узел и обновить конфигурацию вручную. Но мне больше нравится следующий вариант.
Заходим в режиме предприятия в периферийный узел и:
1. Сервис -> Обмен данными -> Настройка выполнения обменов
2. Выбираем нужную настройку и в пункте меню Действие выбираем подпункт «Настройка обновления конфигурации»
3. В открывшемся окне ставим галку на «Автоматически обновлять конфигурацию при приеме сообщения от главного узла»
4. В текстовом поле вставляем скрипт:
[CODE]
@echo off
set v8exe=»C:\Program Files (x86)\1cv81\bin\1cv8.exe»
set DataBaseName=»D:\1C_Base\»
set DataBase=/F%DataBaseName%
REM Логин администратора системы
set AdminUser=/N»Администратор» /p «пароль» /WA-
echo Завершение работы пользователей и установка блокировки…
start «» /wait %v8exe% ENTERPRISE %DataBase% %AdminUser% /CЗавершитьРаботуПользователей /DisableStartupMessages
echo .
echo Обновляем конфигурацию информационной базы
start «» /wait %v8exe% CONFIG %DataBase% %AdminUser% /UpdateDBCfg /UCКодРазрешения
echo .
echo Разрешение работы пользователей…
start «» /wait %v8exe% ENTERPRISE %DataBase% %AdminUser% /CРазрешитьРаботуПользователей /UCКодРазрешения /DisableStartupMessages
[/CODE]
правим объявленные в скрипте переменные под свои данные.
Теперь при приёме сообщения от центрального узла с обновлением конфигурации автоматически будет запускаться скрипт, который блокирует работу пользователей, обновляет конфигурацию, а затем разблокирует работу пользователей.
Есть один момент: если пользователь начал входить в ИБ и остановился на этапе авторизации, то платформа не может заблокировать такого пользователя (он же ещё не вошёл). В итоге конфигурация обновиться не может, т.к. нет монопольного доступа к ИБ.
Данный способ у меня работает уже с 2010 года.

