Как создать РИБ в самописной конфигурации на базе БСП 3.1

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

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

В этой статье мы подробно разберем, как «натянуть» БСП на механизмы обмена, какие программные модули необходимо изменить и какие настройки выполнить в пользовательском режиме, чтобы ваш РИБ заработал корректно.

Шаг 1. Подготовка объекта метаданных План обмена

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

  1. Свойство «Распределенная информационная база»: Убедимся, что в свойствах плана обмена установлен соответствующий флаг. Это активирует базовые платформенные механизмы выгрузки и загрузки изменений.
  2. Стандартные реквизиты: БСП ожидает, что план обмена содержит определенный набор реквизитов для управления процессом. Проверим наличие таких реквизитов, как ВариантНастройки, РежимВыгрузкиОбъектов и служебных полей для регистрации изменений.
  3. Состав плана обмена: Проведем анализ структуры метаданных и проанализируем, какие данные должны мигрировать. В состав необходимо включить не только прикладные справочники и документы, но и технические объекты БСП. Например, константы, отвечающие за префиксы ИБ, и регистры сведений, связанные с правами и настройками пользователей. Без этого дочерняя база после создания может оказаться неработоспособной или иметь проблемы с нумерацией.

Шаг 2. Программная регистрация плана обмена в БСП

Это самый важный этап. Система БСП «не видит» ваш план обмена до тех пор, пока вы не укажете его в переопределяемом модуле. Рассмотрим, как это сделать.

Нам необходимо найти общий модуль ОбменДаннымиПереопределяемый. В нем расположена процедура ПриПолученииПлановОбмена. Именно здесь мы регистрируем наш объект, чтобы стандартные помощники настройки синхронизации смогли с ним работать.

Пример кода для регистрации:


Процедура ПриПолученииПлановОбмена(ПланыОбменаПодсистемы) Экспорт
    
    // Добавляем наш самописный план обмена в массив планов, 
    // которые поддерживает подсистема обмена данными БСП
    ПланыОбменаПодсистемы.Добавить(Метаданные.ПланыОбмена.МойРИБ);
    
КонецПроцедуры

После внесения этого кода (здесь может пригодиться консоль кода с ИИ-помощником) система начнет распознавать план обмена как часть инфраструктуры синхронизации данных.

Шаг 3. Настройка функциональных опций

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

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

Шаг 4. Работа с префиксами информационных баз

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

В БСП префиксация настраивается через константу ПрефиксИнформационнойБазы. Рассмотрим порядок действий:

Если префиксы не заданы, стандартные механизмы генерации кодов БСП могут работать некорректно, что приведет к конфликтам при синхронизации.

Шаг 5. Модуль менеджера плана обмена

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

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

Шаг 6. Создание начального образа

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

Правильный алгоритм действий выглядит так:

  1. Зайдем в раздел Администрирование — Синхронизация данных.
  2. Нажмем Настройки синхронизации данных и выберем Новая настройка.
  3. В списке выберем наш зарегистрированный план обмена.
  4. Следуем указаниям помощника. На определенном этапе БСП сама предложит Создать начальный образ.

Важный момент: При создании образа через помощник БСП записывает в узел служебные параметры, которые позволят «дочке» сразу «увидеть» настройки транспорта и успешно выполнить первый обмен с главной базой.

Шаг 7. Права доступа и роли

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

Резюме

Создание РИБ в самописной конфигурации на БСП 3.1 — это не только работа с метаданными, но и глубокая интеграция в программный каркас библиотеки. Чтобы избавиться от сообщения о невозможности настройки, обязательно зарегистрируйте план обмена в модуле ОбменДаннымиПереопределяемый и проверьте функциональные опции. Использование стандартных помощников БСП вместо платформенных диалогов создания образа гарантирует корректную работу механизмов транспорта изменений.

← На главную