Как настроить частичный обмен РИБ и правила регистрации объектов (ПРО) в 1С:Бухгалтерия 3.0?

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

При создании распределенной информационной базы (РИБ) часто возникает задача выгружать в периферийную базу не все данные, а только ограниченный перечень документов (например, реализации и поступления). Однако при использовании стандартных планов обмена в современных типовых конфигурациях, таких как 1С:Бухгалтерия 3.0 или 1С:Розница 2.1+, разработчики сталкиваются с неожиданным поведением системы: даже если в свойствах объекта метаданных авторегистрация установлена в значение Запретить, данные всё равно попадают в регистрацию и выгружаются.

Рассмотрим подробно, почему это происходит, как работают подписки на события Библиотеки Стандартных Подсистем (БСП) и как правильно настроить Правила Регистрации Объектов (ПРО) для частичного обмена без возникновения битых ссылок.

Выясняем причину: почему объекты регистрируются при отключенной авторегистрации

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

В коде модулей обмена БСП это выглядит следующим образом:


Если ПравилаРегистрацииОбъекта.Количество() = 0 Тогда // правила регистрации не заданы
    
    // Если для объекта не созданы ПРО и отключена авторегистрация,
    // то регистрируем объект на всех узлах плана обмена кроме предопределенного
    Получатели = ВсеУзлыПланаОбмена(ИмяПланаОбмена);
    
    ОбщегоНазначения.ЗаполнитьМассивУникальнымиЗначениями(МассивУзловРезультат, Получатели);
    
Иначе // последовательно выполняем правила регистрации
КонецЕсли;

Из этого следует важный вывод: отсутствие ПРО для объекта не отменяет его регистрацию, а наоборот — включает регистрацию по умолчанию для всех узлов. Чтобы предотвратить попадание объекта в обмен, необходимо явно создать для него правило и прописать отказ.

Настройка Правил Регистрации Объектов (ПРО)

Для корректного ограничения состава выгружаемых данных разберем процесс по шагам в программе Конвертация данных 2.1:

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

    Отказ = Истина;

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

Проблема выгрузки движений и битых ссылок (Объект не найден)

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

Чтобы избежать этой проблемы, необходимо корректно настроить правила регистрации для подчиненных регистров.

Фильтрация регистров по типу регистратора

Для всех подчиненных регистров (регистры бухгалтерии, накопления и сведений, где включен режим Подчинен регистратору) в обработчике ПередОбработкой правила регистрации следует написать проверку типа документа-регистратора.

Рассмотрим пример кода для регистра бухгалтерии или регистра накопления:


Регистратор = Источник.Регистратор;
ТипРегистратора = ТипЗнч(Регистратор);

// Разрешаем регистрацию движений только для нужных документов
Если ТипРегистратора <> Тип("ДокументСсылка.РеализацияТоваровУслуг")
   И ТипРегистратора <> Тип("ДокументСсылка.ПоступлениеТоваровУслуг") Тогда
    
    Отказ = Истина;
    
КонецЕсли;

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

Альтернативные варианты решения

Если задача требует более глубокой трансформации данных или сохранения типовой конфигурации без создания сложных файлов ПРО, рассмотрим еще два варианта решения:

  1. Создание собственного Плана Обмена: Если конфигурацию можно снять с поддержки или доработать через расширение, вы можете создать отдельный план обмена и добавить в его состав только нужные справочники и документы. В этом случае авторегистрацию можно настроить точечно без переопределения правил БСП.
  2. Использование синхронизации через формат EnterpriseData: Вместо полного РИБ можно использовать стандартную синхронизацию данных на базе формата EnterpriseData. Данный формат изначально работает по объектному принципу и позволяет выгружать только выбранные типы документов и справочники по ссылке, а проведение документов происходит автоматически на стороне базы-приемника.
← На главную