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