Как отключить выгрузку контактной информации контрагентов при обмене УТ 11 – БП 2.0?

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

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

Разберем причины такого поведения типовых правил обмена и рассмотрим проверенные способы полного отключения выгрузки контактной информации с помощью конфигурации «Конвертация данных 2.0» (КД 2.0).

Почему отключение ПКС не помогает: разбираем архитектуру обмена

Проанализируем структуру хранения данных в обеих конфигурациях:

  1. В «УТ 11» контактная информация хранится в табличных частях справочников Контрагенты и Партнеры.
  2. В «БП 2.0» контактная информация хранится не в справочнике, а в независимом регистре сведений КонтактнаяИнформация.

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

По этой причине отключение галочек у свойств и табличных частей в ПКС не блокирует выполнение кода в обработчиках. Рассмотрим варианты корректного отключения передачи данных.

Способ 1. Запрет на уровне ПКО регистра сведений (рекомендуемый)

Это самый надежный и простой способ. Мы запрещаем саму выгрузку на уровне целевого правила для регистра сведений. Даже если другие справочники или документы попытаются передать данные в это правило, процесс будет проигнорирован.

Выполним следующие шаги в «Конвертации данных 2.0»:

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

При установке флага Отказ = Истина в событии Перед выгрузкой выгрузка конкретного объекта полностью отменяется, и данные по контактной информации не попадают в итоговый XML-файл обмена.

Способ 2. Отключение вызова в обработчиках ПКО справочников-источников

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

Разберем порядок действий:

  1. В списке ПКО откроем правило для справочника Контрагенты (а также Партнеры, если в базе включен раздельный учет партнеров и контрагентов).
  2. Перейдем в обработчик события «После выгрузки» (или «После выгрузки в файл»).
  3. Найдем блок кода, отвечающий за сбор и отправку контактной информации. Обычно это вызов алгоритма или цикл выгрузки набора записей:
    
    // Пример типового вызова, который необходимо закомментировать:
    // ВыгрузитьКонтактнуюИнформацию(Источник, Приемник);
    // или
    // ВыгрузитьПоПравилу(СтрокаКИ, , , , "КонтактнаяИнформация");
    
  4. Закомментируем данный блок кода символами //.

Способ 3. Отключение в глобальных алгоритмах правил

Если выгрузка вынесена в единый алгоритм, который используется несколькими правилами, можно прервать его выполнение напрямую:

  1. Перейдем на вкладку «Алгоритмы» в конфигурации КД 2.0.
  2. Найдем алгоритм, формирующий контактную информацию (например, ВыгрузитьКонтактнуюИнформациюКонтрагента).
  3. В первой строке алгоритма пропишем оператор возврата: Возврат;

Способ 4. Блокировка записи на стороне конфигурации «БП 2.0»

В ситуациях, когда требуется гарантировать отсутствие изменений в базе-приемнике независимо от содержимого пришедшего пакета данных, можно заблокировать загрузку на стороне «Бухгалтерии предприятия»:

  1. В ПКО регистра сведений КонтактнаяИнформация перейдем в обработчик события «Перед загрузкой» (или «При загрузке»).
  2. Установим признак отказа: Отказ = Истина;

Обязательные завершающие действия

После корректировки правил обмена необходимо выполнить регламентные шаги для применения настроек в рабочих базах:

  1. Выгрузка правил из КД: сохраним обновленные правила конвертации в файл формата XML.
  2. Загрузка правил в базу: в информационной базе «УТ 11» перейдем в форму настройки синхронизации данных (или регистр сведений Правила для обмена данными) и загрузим новый файл правил. Если этого не сделать, база продолжит выполнять обмен по старым правилам, сохраненным внутри конфигурации или кэша.
  3. Очистка существующих данных в приемнике: отключение выгрузки предотвращает создание новых и перезапись существующих записей. Однако данные, которые успели загрузиться в «БП 2.0» ранее, останутся в регистре сведений КонтактнаяИнформация. Для их удаления воспользуемся групповой обработкой данных или обработкой удаления помеченных объектов непосредственно в базе «БП 2.0».
← На главную