При использовании распределенных информационных баз (РИБ) в конфигурациях на базе обычных форм (таких как «1С:Розница 1.0», «1С:Комплексная автоматизация 1.1» и «1С:Управление торговлей 10.3») администраторы часто сталкиваются с ситуацией, когда при получении файла обмена данные не загружаются, а система выдает сообщение о несоответствии конфигурации узла. Разберем архитектурные особенности этого процесса, выясним причины такого поведения и настроим штатный механизм автоматического применения обновлений с помощью командного файла.
Проанализируем работу механизма РИБ платформы «1С:Предприятие». Процесс передачи изменений структуры разделен на два обязательных этапа:
В типовых решениях на обычных формах предусмотрен штатный механизм подготовки командного файла (bat-файла), выполняющего перезапуск программы и обновление структуры. Найти его можно несколькими способами:
В открывшейся форме можно выбрать вариант с автоматическим созданием bat-файла либо сохранить и отредактировать собственный текст командного скрипта.
Посмотрим на пример типового пакетного скрипта, который генерируется системой для автоматизации цикла «Завершение сеансов → Обновление БД → Запуск предприятия»:
set v8exe="C:\Program Files\1cv82\8.2.15.319\bin\1cv8.exe"
set DataBaseName="D:\Базы\Розница 1"
set DataBase=/F%DataBaseName%
set User=/N"Администратор узла" /WA-
set AdminUser=/N"Администратор" /P"ПарольАдмина" /WA-
rem Завершение работы пользователей
start "" /wait %v8exe% ENTERPRISE %DataBase% %AdminUser% /CЗавершитьРаботуПользователей /UCПакетноеОбновлениеКонфигурацииИБ /DisableStartupMessages
rem Применение изменений конфигурации
start "" /wait %v8exe% CONFIG %DataBase% %AdminUser% /UpdateDBCfg /UCПакетноеОбновлениеКонфигурацииИБ /Out "D:\Базы\update.log" -NoTruncate
rem Разрешение работы пользователей
start "" /wait %v8exe% ENTERPRISE %DataBase% %AdminUser% /CРазрешитьРаботуПользователей /UCПакетноеОбновлениеКонфигурацииИБ /DisableStartupMessages
rem Повторный запуск программы для продолжения обмена
start "" %v8exe% ENTERPRISE %DataBase% %User% /DisableStartupMessages
Разберем назначение ключевых параметров запуска платформы:
/UpdateDBCfg — указывает конфигуратору на необходимость выполнить реструктуризацию и обновить конфигурацию базы данных (аналог клавиши F7 в интерфейсе)./CЗавершитьРаботуПользователей и /CРазрешитьРаботуПользователей — строковые параметры, передаваемые в конфигурацию для срабатывания обработчиков блокировки сеансов./UCПакетноеОбновлениеКонфигурацииИБ — код разрешения, позволяющий административному скрипту подключаться к базе даже при установленной блокировке соединений./DisableStartupMessages — подавляет вывод стартовых информационных диалогов платформы, предотвращая зависание неинтерактивного процесса.Если скрипт отрабатывает некорректно или база остается заблокированной, проверим следующие критические моменты:
/P, запуск в режиме /wait вызовет невидимое окно авторизации в фоновом сеансе. Скрипт будет бесконечно ожидать ввода учетных данных./Out "<ПутьКФайлу>" -NoTruncate при вызове конфигуратора. Если при реструктуризации метаданных требуется подтверждение удаления данных или возникает конфликт типов, конфигуратор завершится аварийно, а причина будет зафиксирована в лог-файле.1cv8.exe. Перед выполнением обновления убедимся, что в диспетчере задач отсутствуют скрытые процессы платформы, мешающие монопольному доступу.Таким образом, настроив корректную передачу параметров авторизации и код разрешения блокировки в типовом bat-файле, можно перевести процесс обновления узлов распределенной базы в полностью автоматический режим без необходимости вручную запускать конфигуратор на удаленных точках.