При работе с распределенными информационными базами (РИБ) нередко возникает ситуация: после внесения правок в конфигурацию главного узла (например, включения возможности изменения, добавления новой роли, справочника или реквизита) обмен данными перестает работать корректно. Центральная база успешно выгружает пакет обмена, однако подчиненный узел выгружает свои данные, но не принимает входящие сообщения. Разберем механизм работы РИБ в платформе «1С:Предприятие», выясним причину такого поведения и рассмотрим пошаговый порядок устранения проблемы.
Механизм распределенной информационной базы строго контролирует соответствие структуры метаданных между узлами. Когда в главном узле изменяется конфигурация, сообщение обмена содержит не только измененные элементы данных, но и пакет обновления конфигурации.
Платформа «1С:Предприятие» соблюдает следующее базовое правило: загрузка прикладных данных не может быть зафиксирована, пока в подчиненной базе не обновлена конфигурация базы данных. Если сообщение обмена получено в режиме «1С:Предприятие», процесс загрузки данных приостанавливается до момента применения новой структуры метаданных.
Основные факторы, приводящие к остановке обмена:
Первым делом проанализируем ошибки, возникающие при попытке синхронизации. Для этого откроем подчиненную базу и перейдем в Журнал регистрации (меню «Администрирование» — «Обслуживание» — «Журнал регистрации»).
Установим отбор по событию «Данные.Обмен данными.Загрузка» или по уровню важности «Ошибка» и «Предупреждение». В журнале будет зафиксировано системное сообщение, указывающее на необходимость обновления конфигурации (например, «Получены изменения конфигурации. Необходимо обновить конфигурацию базы данных») либо на конфликт прав доступа.
Разберем стандартную последовательность действий для успешного применения изменений:
F7). В окне реструктуризации подтвердим принятие изменений.Чтобы исключить ручные действия в подчиненных узлах при регулярных обновлениях, настроим автоматическое обновление конфигурации базы данных с помощью пакетного запуска конфигуратора:
1cv8.exe DESIGNER /F "C:\Bases\SubNode" /UpdateDBCfg /DisableStartupMessages
Данная команда запускает конфигуратор в пакетном режиме, применяет полученные из обмена метаданные к базе данных и автоматически завершает работу.
Если штатное применение сообщения обмена завершается критической ошибкой несоответствия версий, применим процедуру ручного выравнивания конфигураций:
.cf).
ПланыОбмена.УстановитьГлавныйУзел(Неопределено);
F7 для применения изменений структуры.
Узел = ПланыОбмена.Полный.НайтиПоКоду("ЦУ");
ПланыОбмена.УстановитьГлавныйУзел(Узел);