Каталог решений - Функция ВыгрузитьПоПравилу — мощный инструмент расширения возможностей ваших правил конвертации. Конвертация данных 2.1

Функция ВыгрузитьПоПравилу — мощный инструмент расширения возможностей ваших правил конвертации. Конвертация данных 2.1

Функция ВыгрузитьПоПравилу — мощный инструмент расширения возможностей ваших правил конвертации. Конвертация данных 2.1

В наличии

Казалось бы, всего лишь одна функция из арсенала разработчика правил обмена на Конвертации данных 2.1, но понимание этой функции расширяет ваши возможности при написании качественных правил обмена в несколько раз. Да, что там писать эти правила? Сопоставил реквизиты, сопоставил табличные части, да еще помощник автоматически создаст необходимые ПКО, ПКС, ПВД. А как быть, когда нужно передать Регистр сведений в регистр сведений, да не просто передать, а привязать это действие к выгрузке определенных элементов, например, элементов справочника Физические лица? Или как передать табличную часть справочника в документы, да так, чтобы одна строка табличной части создавала ровно один документ на стороне приемника? А как быть, если невозможно сделать соответствия между объектами и данные для приемника необходимо собирать из разных источников? Именно для подобных задач вам может понадобиться функция ВыгрузитьПоПравилу.

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

Категория:

Описание

Описание функции ВыгрузитьПоПравилу().

Функция ВыгрузитьПоПравилу() используется для выгрузки объекта в xml-узел и возвращает узел ссылки на этот объект.

В процессе выгрузки эта функция вызывается из:

ПВД, когда объект из выборки получен и необходимо произвести его конвертацию.

ПКО, когда необходимо выгрузить связанную с выгружаемым объектом информацию.

ПКС, когда свойство имеет ссылочный тип и необходимо выгрузить по ссылке из этого свойства объект.

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

Функция ВыгрузитьПоПравилу() имеет ряд параметров

ВыгрузитьПоПравилу(Источник,
                                   Приемник,
                                   ВходящиеДанные,
                                   ИсходящиеДанные,
                                   ИмяПКО,
                                   УзелСсылки,
                                   ТолькоПолучитьУзелСсылки,
                                   ПКО,
                                   ЭтоПравилоСГлобальнойВыгрузкойОбъектов,
                                   ВыборкаДляВыгрузкиДанных)

Все эти параметры в функции имеют значения по умолчанию, и, как правило, передавать имеет смысл только параметр ИмяПКО, а также параметры Источник и/или ВходящиеДанные – в зависимости от того, как настроено ПКО.

ИмяПКО – строка, название ПКО, в которое передаем управление.
Источник – ссылка на элемент объекта-источника, который передаем для конвертации.
ВходящиеДанные – структура. Элементы в ней должны быть названы аналогично ПКС, у которых стоит флаг «Получить из входящих данных». Если таких ПКС нет, передавать этот параметр не нужно. Если в ПКО у всех ПКС стоит флаг «Получить из входящих данных», то, наоборот, необходимо передать структуру ВходящиеДанные, а Источник тогда передавать не нужно.

Выгрузка произвольной выборки данных через стандартную выборку с регистрацией объекта источника.

Необходимость в такой задаче может возникнуть, когда объект «источника» и объект «приемника» имеют различную смысловую или функциональную структуру.

Например, документ «источника» позволяет вводить информацию по нескольким подразделениям предприятия, документ «приемника» позволяет вводить информацию только об одном подразделении предприятия.

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

  1. Мы лишаемся механизма регистрации изменений;
  2. Алгоритм произвольной выборки отказывается работать в БСП.

БСП — библиотека стандартных подсистем. В частности, имеет своем составе подсистему «Обмен данными», данная подсистема реализует механизмы автоматической синхронизации данных между конфигурациями, по правилам написанным в Конвертации данных.

  1. Создаем ПВД со Стандартным алгоритмом выборки;
  2. Указываем объект выборки;
  3. Пишем обработчик «Перед выгрузкой»(хочу подчеркнуть, что нужно использовать именно этот обработчик). Например, следующего содержания:
 

has been added to your cart:
Оформление заказа