Всем доброго дня!
У меня есть две базы и между ними надо сделать обмен данными с выгрузкой XML.
В состав первой базы входит документ к2ЗаказКлиента
В состав второй базы входит тоже ЗаказКлиента, только с измененной структурой
Мне нужно выгружать реквизит Контрагента из первой базы, и табличную часть, номенклатура, количество, сумма, цена, суммандс
Написал код для выгрузки, подскажите что нужно исправить
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ЗаказКлиентаМЕС.Ссылка КАК Ссылка,
| ЗаказКлиентаМЕС.Код КАК Код
|ИЗ
| ПланОбмена.ЗаказКлиентаМЕС КАК ЗаказКлиентаМЕС
|ГДЕ
| НЕ ЗаказКлиентаМЕС.ЭтотУзел";
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
ЭтотУзел = ПланыОбмена.ЗаказКлиентаМЕС.ЭтотУзел();
СтруктураНоменклатурыПолучателя = Новый Структура("Клиент, Date, Number");
СтруктураТабличнойЧасти = Новый Структура("Номенклатура, Количество, Цена, СуммаНДС");
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
ТекУзел = ВыборкаДетальныеЗаписи.Ссылка;
ЗаписьXML = Новый ЗаписьXML();
ИмяФайла = "\\ts3\public\IT\!\бп\" + "zakaz.xml";
ЗаписьXML.ОткрытьФайл(ИмяФайла);
ЗаписьСообщения = ПланыОбмена.СоздатьЗаписьСообщения();
ЗаписьСообщения.НачатьЗапись(ЗаписьXML, ТекУзел);
Выборка = ПланыОбмена.ВыбратьИзменения(ТекУзел, ЗаписьСообщения.НомерСообщения);
Пока Выборка.Следующий() Цикл
Данные = Выборка.Получить();
Если ТипЗнч(Данные) = Тип("ДокументОбъект.к2ЗаказКлиента") Тогда
ЗаполнитьЗначенияСвойств(СтруктураНоменклатурыПолучателя, Данные);
СтруктураНоменклатурыПолучателя.Клиент = Данные.Контрагент;
Мета = Метаданные.Документы.к2ЗаказКлиента.ТабличныеЧасти.Товары.Реквизиты;
ЗаполнитьЗначенияСвойств(СтруктураТабличнойЧасти, Мета);
СтруктураТабличнойЧасти.Номенклатура = Мета.Номенклатура;
СтруктураТабличнойЧасти.Количество = Мета.Количество;
СтруктураТабличнойЧасти.Цена = Мета.Цена;
СтруктураТабличнойЧасти.СуммаНДС = Мета.СуммаНДС;
СериализаторXDTO.ЗаписатьXML(ЗаписьXML, СтруктураНоменклатурыПолучателя);
Иначе
СериализаторXDTO.ЗаписатьXML(ЗаписьXML, Данные);
КонецЕсли;
КонецЦикла;
ЗаписьСообщения.ЗакончитьЗапись();
КонецЦикла;
Показать