Как настроить автоматическое обновление конфигурации в узлах РИБ на обычных формах?

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

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

Почему изменения конфигурации не принимаются автоматически «на лету»

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

  1. Чтение сообщения и распаковка метаданных. В режиме предприятия платформа считывает XML-файл обмена и помещает полученные метаданные в основную конфигурацию. Однако применить их к рабочей конфигурации базы данных в пользовательском сеансе невозможно, так как операция реструктуризации таблиц СУБД требует монопольного захвата базы через конфигуратор.
  2. Двухэтапная загрузка пакета. Если пакет обмена содержит одновременно измененную структуру (новые реквизиты, документы или регистры) и сами данные по этим объектам, программа не сможет прочитать данные до завершения реструктуризации. Поэтому сначала необходимо применить изменения метаданных в конфигураторе, затем снова запустить режим предприятия и повторно прочитать файл обмена.

Где найти встроенные настройки обновления конфигурации

В типовых решениях на обычных формах предусмотрен штатный механизм подготовки командного файла (bat-файла), выполняющего перезапуск программы и обновление структуры. Найти его можно несколькими способами:

  1. Через меню констант: перейдем в меню Операции → Константы → найдем константу Настройка файла обновления конфигурации. При ее открытии становится доступна форма настройки параметров автоматического формирования командного файла.
  2. Из формы обмена данными: откроем форму Выполнение обмена данными (или меню Сервис → Обмен данными с узлами РИБ → Автоматический обмен данными). При получении сообщения об изменении конфигурации становится активной кнопка Применить изменения конфигурации, рядом с которой можно перейти к настройке параметров обновления.

В открывшейся форме можно выбрать вариант с автоматическим созданием 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

Разберем назначение ключевых параметров запуска платформы:

  1. /UpdateDBCfg — указывает конфигуратору на необходимость выполнить реструктуризацию и обновить конфигурацию базы данных (аналог клавиши F7 в интерфейсе).
  2. /CЗавершитьРаботуПользователей и /CРазрешитьРаботуПользователей — строковые параметры, передаваемые в конфигурацию для срабатывания обработчиков блокировки сеансов.
  3. /UCПакетноеОбновлениеКонфигурацииИБ — код разрешения, позволяющий административному скрипту подключаться к базе даже при установленной блокировке соединений.
  4. /DisableStartupMessages — подавляет вывод стартовых информационных диалогов платформы, предотвращая зависание неинтерактивного процесса.

Типичные ошибки при выполнении скрипта и способы их устранения

Если скрипт отрабатывает некорректно или база остается заблокированной, проверим следующие критические моменты:

  1. Отсутствие пароля в строке запуска: если у пользователя администратора задан пароль, но не указан ключ /P, запуск в режиме /wait вызовет невидимое окно авторизации в фоновом сеансе. Скрипт будет бесконечно ожидать ввода учетных данных.
  2. Логирование ошибок: обязательно укажем параметр /Out "<ПутьКФайлу>" -NoTruncate при вызове конфигуратора. Если при реструктуризации метаданных требуется подтверждение удаления данных или возникает конфликт типов, конфигуратор завершится аварийно, а причина будет зафиксирована в лог-файле.
  3. Зависшие файловые блокировки: в файловых информационных базах блокировка может удерживаться сеансом регламентных заданий или аварийно закрытым процессом 1cv8.exe. Перед выполнением обновления убедимся, что в диспетчере задач отсутствуют скрытые процессы платформы, мешающие монопольному доступу.

Таким образом, настроив корректную передачу параметров авторизации и код разрешения блокировки в типовом bat-файле, можно перевести процесс обновления узлов распределенной базы в полностью автоматический режим без необходимости вручную запускать конфигуратор на удаленных точках.

← На главную