При великій кількості периферійних вузлів в РИБ досить проблематично виробляти оновлення конфігурації. У даній статті опишу свій досвід вирішення даної проблеми.
Отже, є РИБ "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.ataBaseName%
REM Логін адміністратора системи
set AdminUser = / N "Адміністратор" / p "пароль" / WA-
echo Завершення роботи користувачів і установка блокування.
start "" / wait% v8exe% ENTERPRISE .ataBase%% AdminUser% / CЗавершітьРаботуПользователей / DisableStartupMessages
echo.
echo Оновлюємо конфігурацію інформаційної бази
start "" / wait% v8exe% CONFIG .ataBase%% AdminUser% / UpdateDBCfg / UCКодРазрешенія
echo.
echo Дозвіл роботи користувачів.
start "" / wait% v8exe% ENTERPRISE .ataBase%% AdminUser% / CРазрешітьРаботуПользователей / UCКодРазрешенія / DisableStartupMessages
[/ CODE]
правимо оголошені в скрипті змінні під свої дані.
Тепер при прийомі повідомлення від центрального вузла з оновленням конфігурації автоматично буде запускатися скрипт, який блокує роботу користувачів, оновлює конфігурацію, а потім розблокує роботу користувачів.
багато питань залишається:
А пароль де?
Пароль, як і ім'я користувача міститься в змінної AdminUser
set AdminUser = / N "Адміністратор" / p "пароль" / WA-
start "" / wait% v8exe% ENTERPRISE .ataBase%% AdminUser% / CЗавершітьРаботуПользователей / DisableStartupMessages
А якщо серверний варіант периферійних баз?
для файлового варіанту set DataBase = / F .ataBaseName%
для серверного - set DataBase = / S .ataBaseName%
А якщо при викиді користувачів юзверя залишиться висіти як сеанс в 1с сервері?
А для інших конфігурацій як?
з РІБамі інших змін не стикався