Как исключить передачу документов при обмене УТ 11.3 — БП 2.0 без изменения конфигурации?

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

При настройке типовой синхронизации данных между конфигурациями 1С:Управление торговлей (УТ 11) и 1С:Бухгалтерия предприятия (БП 2.0) часто возникает задача исключить выгрузку определенных типов документов (например, документов движения денежных средств). При этом важно сохранить типовую конфигурацию на полной поддержке и не вносить изменения в структуру базы.

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

Выясним причину: логика работы механизмов регистрации БСП

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

В момент срабатывания подписки система обращается к правилам регистрации объектов (ПРО):

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

Таким образом, простое снятие флага активности или удаление правила приводит к противоположному результату: система начинает регистрировать абсолютно все документы данного типа.

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

Чтобы полностью заблокировать регистрацию документа на узле плана обмена без редактирования конфигурации, выполним следующие шаги:

  1. Выгрузим типовые правила регистрации из программы или откроем исходный файл правил в программе 1С:Конвертация данных 2.1 (или 3.0 в зависимости от используемого формата).
  2. Найдем правило регистрации объектов (ПРО) для исключаемого документа.
  3. Убедимся, что правило включено (переключатель активности установлен).
  4. В обработчике события Перед обработкой или При обработке пропишем явный откат регистрации:

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

Для гарантированного результата в некоторых релизах БСП рекомендуется прописывать строку Отказ = Истина; как в обработчике Перед обработкой, так и в При обработке, чтобы логика проверки дополнительных свойств плана обмена не перекрыла отказ.

После внесения изменений сохраним правила в XML-файл и загрузим их в УТ 11 через форму настройки синхронизации данных, переключив режим использования правил на «Загрузить из файла на компьютере».

Что делать с ранее зарегистрированными документами и кэшем

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

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

2. Сброс кэша правил в сеансе
Правила обмена и регистрации кэшируются платформой в память сеанса. Чтобы новые правила вступили в силу для всех пользователей, необходимо перезапустить сеансы работы с базой данных источника.

3. Проверка косвенной регистрации по ссылкам
Если исключаемый документ входит в состав табличных частей или реквизитов других выгружаемых объектов (например, связанного справочника или первичного документа), он может регистрироваться косвенно в режиме «Выгружать по необходимости». В таком случае следует проверить правила конвертации объектов (ПКО) и при необходимости отключить автоматическую выгрузку по ссылке.

Альтернативный вариант: использование расширения конфигурации

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

Создадим расширение и перед выполнением стандартной процедуры регистрации изменений в подписке на событие отключим автозаполнение получателей для конкретных типов документов:


&НаСервере
Процедура Расш1_ПередЗаписьюДокументаПередЗаписью(Источник, Отказ, РежимЗаписи, РежимПроведения)
    
    Если ТипЗнч(Источник) = Тип("ДокументСсылка.СписаниеБезналичныхДенежныхСредств") Тогда
        Источник.ОбменДанными.Получатели.АвтоЗаполнение = Ложь;
        Источник.ОбменДанными.Получатели.Очистить();
    КонецЕсли;
    
КонецПроцедуры

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

← На главную