Создание распределенной информационной базы (РИБ) в конфигурации, написанной «с нуля», но использующей Библиотеку стандартных подсистем (БСП) версии 3.1, значительно отличается от простой настройки обмена в типовых решениях вроде «Бухгалтерии предприятия». Основная сложность заключается в том, что механизмы БСП требуют жесткой регистрации новых объектов метаданных в программном коде. Если просто создать объект ПланОбмена в дереве метаданных, программа выдаст ошибку: «Возможность настройки синхронизации данных в данной программе не предусмотрена».
В этой статье мы подробно разберем, как «натянуть» БСП на механизмы обмена, какие программные модули необходимо изменить и какие настройки выполнить в пользовательском режиме, чтобы ваш РИБ заработал корректно.
Прежде всего проанализируем структуру нашего плана обмена. Для реализации технологии РИБ объект в дереве метаданных должен соответствовать определенным требованиям платформы и БСП:
ВариантНастройки, РежимВыгрузкиОбъектов и служебных полей для регистрации изменений.Это самый важный этап. Система БСП «не видит» ваш план обмена до тех пор, пока вы не укажете его в переопределяемом модуле. Рассмотрим, как это сделать.
Нам необходимо найти общий модуль ОбменДаннымиПереопределяемый. В нем расположена процедура ПриПолученииПлановОбмена. Именно здесь мы регистрируем наш объект, чтобы стандартные помощники настройки синхронизации смогли с ним работать.
Пример кода для регистрации:
Процедура ПриПолученииПлановОбмена(ПланыОбменаПодсистемы) Экспорт
// Добавляем наш самописный план обмена в массив планов,
// которые поддерживает подсистема обмена данными БСП
ПланыОбменаПодсистемы.Добавить(Метаданные.ПланыОбмена.МойРИБ);
КонецПроцедуры
После внесения этого кода (здесь может пригодиться консоль кода с ИИ-помощником) система начнет распознавать план обмена как часть инфраструктуры синхронизации данных.
Проанализируем интерфейсную часть. Даже если код написан, пункты меню могут быть недоступны. В БСП управление видимостью настроек синхронизации реализовано через функциональные опции. Выполним следующие действия:
ИспользоватьСинхронизациюДанных установлена в значение Истина (это можно сделать через «Все функции» или программно).ПланОбмена в состав функциональной опции ИспользоватьСинхронизациюДанных. Если этого не сделать, мастер настройки обмена не будет отображать ваш план в списке доступных.Разберем ситуацию с уникальностью данных. В РИБ критически важно, чтобы документы, созданные в разных узлах, не имели одинаковых номеров. Для этого используются префиксы.
В БСП префиксация настраивается через константу ПрефиксИнформационнойБазы. Рассмотрим порядок действий:
Если префиксы не заданы, стандартные механизмы генерации кодов БСП могут работать некорректно, что приведет к конфликтам при синхронизации.
В БСП 3.1 значительная часть логики вынесена в модуль менеджера. Нам нужно реализовать специфические методы, которые описывают настройки транспорта (каталог, FTP, почта) и логику регистрации данных.
Если планируется использовать фильтрацию (например, «РИБ по организации»), именно в модуле менеджера описывается алгоритм проверки того, должен ли конкретный объект попадать в конкретный узел. Рассмотрим структуру необходимых экспортных процедур, которые вызывает БСП при инициализации настроек.
Посмотрим на частую ошибку новичков: попытку создать начальный образ через стандартное меню «Операции — Планы обмена». В современных конфигурациях на БСП этот путь может привести к тому, что в подчиненной базе не создадутся служебные настройки транспорта.
Правильный алгоритм действий выглядит так:
Важный момент: При создании образа через помощник БСП записывает в узел служебные параметры, которые позволят «дочке» сразу «увидеть» настройки транспорта и успешно выполнить первый обмен с главной базой.
Проанализируем права доступа. Если вы работаете не под полными правами, для настройки РИБ пользователю должны быть назначены следующие роли БСП:
ВыполнениеСинхронизацииДанных — для запуска процесса обмена.НастройкаСинхронизацииДанных — для доступа к формам настройки и создания узлов.Чтение и Изменение непосредственно на ваш новый объект ПланОбмена.Создание РИБ в самописной конфигурации на БСП 3.1 — это не только работа с метаданными, но и глубокая интеграция в программный каркас библиотеки. Чтобы избавиться от сообщения о невозможности настройки, обязательно зарегистрируйте план обмена в модуле ОбменДаннымиПереопределяемый и проверьте функциональные опции. Использование стандартных помощников БСП вместо платформенных диалогов создания образа гарантирует корректную работу механизмов транспорта изменений.