0
ХочуСпец
30.08.12
✎
12:07
|
Задача стояла в следующем:
Данные из справочника Источника необходимо загрузить в приемник по следующему принципу:
Если Данные источника принадлежат Группе1, то в приемник загружаем в справочник СпрПриемник1 (используя ПКО1), если к группе2, то в справочник СпрПриемник2 (используя ПКО2).
Задачу решил следующим образом:
Создал ПКО1: Источник: СпрИсточник1, Приемник: СпрПриемник1.
Создал ПВД: ПВД1, указав в нем ПКО: ПКО1.
Указал способ выборки: Произвольный алгоритм.
В этом ПВД перед обработкой прописал:
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ * ИЗ Справочник. СпрИсточник1КАК СпрИсточник1|ГДЕ (НЕ СпрИсточник1.ПометкаУдаления) И СпрИсточник1.Ссылка В Иерархии(&Группа)";
Группа = Новый СписокЗначений;
Группа.Добавить(Справочники. СпрИсточник1.НайтиПоКоду("0003"));
Запрос.Параметры.Вставить("Группа ", Группа);
ВыборкаДанных = Запрос.Выполнить();
Создал ПКО2: Источник: СпрИсточник1, Приемник: СпрПриемник2 (!).
Создал ПВД: ПВД2, указав в нем ПКО: ПКО2.
Указал способ выборки: Произвольный алгоритм.
В этом ПВД перед обработкой прописал аналогично, но только для другой группы.
Используя универсальный обмен все проходит на ура.
Теперь использую планы обмена. Как известно, в типовых конфигурациях используется уже другая обработка обмена ОбменДаннымиXML.
Измененные объекты в справочнике источнике СпрИсточник1 регистрируются и переносятся в приемник. НО те элементы, которые в приемнике должны были попасть СпрПриемник2, попали в новую пустую группу СпрПриемник1. Те элементы, которые должны были попасть в СпрПриемник1 перенеслись нормально.
Почему возникает такая ситуация?
Наверное это происходит из за того что для одного и того объекта выборки выполняется два различных ПКО?
|
|