Как организовать обмен данными в 1С без постоянного обновления конфигурации филиала

Программист 1С v8.3 (Обычные формы) 1С:Комплексная автоматизация IT и автоматизация бизнеса
← На главную

При организации взаимодействия между центральным офисом и удаленными филиалами разработчики часто сталкиваются с техническим ограничением распределенных информационных баз (РИБ). На платформенном уровне 1С блокирует обмен данными в РИБ до тех пор, пока конфигурация периферийного узла не будет полностью обновлена до конфигурации центрального узла. Если в центре часто вносятся небольшие доработки, работа удаленных точек может парализоваться. Разберем, какие архитектурные подходы и механизмы библиотеки стандартных подсистем (БСП) позволяют обойти эти ограничения и настроить гибкую синхронизацию данных.

Ограничения РИБ и отличие от обмена по правилам (УОП)

Проанализируем базовый принцип работы РИБ в платформах 1С:Предприятие. Когда у плана обмена включен флаг Распределенная информационная база, платформа автоматически контролирует идентичность структуры метаданных центрального и подчиненного узлов. При выгрузке изменений из центра в файл обмена помещается служебная информация о структуре конфигурации. Если периферийная база обнаруживает изменения в составе или свойствах объектов метаданных, прием данных полностью блокируется до момента применения обновлений базы данных.

Если требуется передавать только документы, справочники и регистры без обязательного применения каждой доработки конфигурации в филиале, следует использовать обмен по правилам или универсаный обмен данными (УОП). В этом случае флаг РИБ у плана обмена отключается, а синхронизация осуществляется на основе правил конвертации данных.

Варианты решения задачи обмена без блокировки работы филиалов

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

  1. Перевод плана обмена в режим синхронизации данных (УОП)

    Если отключить признак РИБ в свойствах плана обмена, платформа перестает контролировать совпадение метаданных. В сообщения синхронизации БСП могут встраиваться актуальные правила конвертации данных (выгрузки и загрузки), благодаря чему филиальная база сможет корректно обрабатывать входящую информацию даже при разнице в релизах.

  2. Вынос доработок логики в расширения конфигурации

    Для конфигураций на управляемых формах изменения бизнес-логики, алгоритмов проведения, печатных форм и отчетов рекомендуется реализовывать с помощью расширений (.cfe). Так как расширения не меняют структуру основной конфигурации базы данных, платформа 1С не считает такие изменения поводом для блокировки обмена РИБ.

  3. Использование дополнительных отчетов и обработок

    В рамках БСП печатные формы и обработки заполнения можно поставлять в подчиненные узлы в режиме «1С:Предприятие» через справочник ДополнительныеОтчетыИОбработки, не затрагивая конфигурацию базы данных и не вызывая реструктуризацию.

  4. Автоматизированное пакетное обновление РИБ через скрипты

    Если использование РИБ с полной идентичностью метаданных необходимо, процесс применения изменений на подчиненном узле можно автоматизировать с помощью сценариев командной строки без вызова диалогов Конфигуратора.

Пример пакетного обновления подчиненного узла РИБ

Посмотрим на пример автоматизации процесса обновления и работы с главным узлом РИБ. Для отвязки узла, применения обновления из файла .cf или .cfu и повторной привязки к центру можно использовать программные методы и параметры запуска командной строки платформы 1С:


// Отключение главного узла в программном коде 1С перед обновлением
ПланыОбмена.УстановитьГлавныйУзел(Неопределено);

// Запуск пакетного обновления базы данных через командную строку:
// 1cv8.exe DESIGNER /F "C:\Bases\Branch" /N "Admin" /P "Password" /UpdateCfg "C:\Updates\1cv8.cfu" /UpdateDBCfg

// Восстановление связи с главным узлом после завершения обновления
ГлавныйУзел = ПланыОбмена.ГлавныйУзел();
Если Не ЗначениеЗаполнено(ГлавныйУзел) Тогда
    ПланыОбмена.УстановитьГлавныйУзел(УзелЦентр);
КонецЕсли;

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

Таким образом, выбор между РИБ и универсальным обменом (УОП) зависит от требований к идентичности конфигураций: если необходимо минимизировать простои и не мучать филиалы регулярными обновлениями, оптимальным выбором будет синхронизация данных по правилам обмена или вынос логики в расширения.

← На главную