Имя: Пароль:
1C
1С v8
Конвертация данных с использованием планов обмена
,
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 перенеслись нормально.
Почему возникает такая ситуация?
Наверное это происходит из за того что для одного и того объекта выборки выполняется два различных ПКО?
1 ХочуСпец
 
30.08.12
12:54
есть мысли?
2 ХочуСпец
 
30.08.12
13:33
Может сделать одно ПВД с ПКО1 (выгрузка по Группе1 и Группа2)

А в ПКО1 определять принадлежность объекта к группе и каким то образом переназначать ИмяПКО?