Имя: Пароль:
1C
1С v8
КД 2: поиск по параметру
0 Балбес
 
04.01.21
14:30
Добрый день
База источник - 7.7 (справочник Материалы, остатки)
База Приемник 8 (Номенклатура, Ввод остатков).

В 7.7 в справочнике материалов есть реквизит, хранящий GUID соответствующего элемента в 8. Хочу по этому GUID при загрузке искать соответствующую номенклатуру.
Т.к. передача параметров из 7.7 в 8 штатно невозможна, в ПКО Материал  - Номенклатура в ПередВыгрузкой я пишу

Узел = СоздатьУзел("ЗначениеПараметра");
УстановитьАтрибут(Узел, "Имя", "УникальныйИдентификатор");
УстановитьАтрибут(Узел, "Тип", "Строка");
ЗаписатьЭлемент(Узел, "Значение", Источник.GUID);
Приемник.insertBefore(Узел, Приемник.firstChild);

потом использую параметр в обработчике полей поиска. Все хорошо работает, если просто работать со справочником. Но как только добавлять ПКО, которое создает документ Ввод остатков,где номенклатура находится в табличной части, для которой указано ПКО "Материал - НОменклатура",
загрузка падает с ошибкой в полях поиска (не видит параметры). Проанализировав файл выгрузки пришел к выводу что в узле <Ссылка> для номенклатуры в табличной части
должен быть подчиненный узел со значениями параметров. Может присутствующие подскажут? Или я совсем все усложнил?
1 mistеr
 
04.01.21
14:48
(0) Ну с 7.7 по-другому не выйдет, только усложнять. :)

Сделай аналогичную выгрузку из 8, получи образец XML, к которому нужно стремиться.
2 Йохохо
 
04.01.21
14:49
вроде перед доком будет эта номенклатура СправочникОбъект, а в выгрузке тч только справочникссылка и поляпоиска
ЗЫ иногда можно все очень нужное в комментарий закостылить
3 Балбес
 
04.01.21
16:57
Кому интересно, забодал

В ПКС номенклатура, которая в табличной части пишем в обработчике После выгрузки

Узел = СоздатьУзел("ЗначениеПараметра");
УстановитьАтрибут(Узел, "Имя", "УникальныйИдентификатор");
УстановитьАтрибут(Узел, "Тип", "Строка");
ЗаписатьЭлемент(Узел, "Значение", ОбъектКоллекции.Номенклатура.GUID);
УзелСсылки.insertBefore(Узел, УзелСсылки.firstChild);
ДобавитьПодчиненный(УзелСвойства, УзелСсылки);
УзелСвойства.removeChild(УзелСвойства.firstChild);

Все работает, спасибо за внимание