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