Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
27 ноя 2021, 11:46

Web сервис XDTO выгружает 1 запись

Автор kns77, 25 окт 2021, 15:00

0 Пользователей и 1 гость просматривают эту тему.

kns77

Сделал XDTO пакет с 1 типом Document, внутри 5 свойств, все как в примере.

Функция ВыгрузкаВозвратовИРеализаций(Маршрут)
Таблица  = ФабрикаXDTO.Тип("http://localhost/ObmenWMS", "Document");

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| РеализацияТоваровУслугТовары.Номенклатура.Наименование КАК Номенклатура1,
| РеализацияТоваровУслугТовары.Количество КАК Количество1,
| РеализацияТоваровУслугТовары.Ссылка.Дата КАК Дата1,
| ДанныеМаршрутаПоДокументу.Маршрут.Наименование КАК Маршрут1
| ИЗ
| Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ДанныеМаршрутаПоДокументу КАК ДанныеМаршрутаПоДокументу
| ПО (РеализацияТоваровУслугТовары.Ссылка = ДанныеМаршрутаПоДокументу.Документ)
| ГДЕ
| ДанныеМаршрутаПоДокументу.Маршрут.Наименование = &Маршрут";


Запрос.УстановитьПараметр("Маршрут", Маршрут);

РезультатЗапроса = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();


Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
ДанныеТаблицы = ФабрикаXDTO.Создать(Таблица);
ДанныеТаблицы.Tip=1;
ДанныеТаблицы.DateDoc=ВыборкаДетальныеЗаписи.Дата1;
ДанныеТаблицы.Marshrut=ВыборкаДетальныеЗаписи.Маршрут1;
ДанныеТаблицы.Nomenkl=ВыборкаДетальныеЗаписи.Номенклатура1;
ДанныеТаблицы.Kol=ВыборкаДетальныеЗаписи.Количество1;
КонецЦикла;

Возврат ДанныеТаблицы;

КонецФункции




Сделал веб сервис

Определение = Новый WSОпределения("http://localhost/1c_erp_2021_09_12_01_00/ws/ObmenWMS?wsdl");
Прокси = Новый WSПрокси(Определение, "http://localhost/ObmenWMS", "ObmenWMS", "ObmenWMSSoap");       
ДанныеERP = Прокси.ВыгрузкаВозвратовИРеализаций(Маршрут.Наименование);
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.УстановитьСтроку();
Прокси.ФабрикаXDTO.ЗаписатьXML(ЗаписьXML, ДанныеERP);
ТекстОбъектаXDTO = ЗаписьXML.Закрыть();
Сообщить(ТекстОбъектаXDTO);



На принимающей стороне формируется только 1 строка, а хотелось бы 12 как в запросе.

<Document xmlns="http://localhost/ObmenWMS" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Tip>1</Tip>
    <DateDoc>2019-10-31</DateDoc>
    <Marshrut>******* - 31.10.2019 - Наем. а/м 46 </Marshrut>
    <Nomenkl>Фольга 0,25кг)</Nomenkl>
    <Kol>1</Kol>
</Document>

Че то чуть не догоняю, что надо сделать

LexaK

@kns77, так вот вроде в цикле, под каждую запись создаете новый объект ХДТО куда и помещаете только ОДНУ запись
  Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        ДанныеТаблицы = ФабрикаXDTO.Создать(Таблица);
а дальше что вы с этим: ДанныеТаблицы  - делаете?

ответ Понравился? (в смысле пригодился?)

Теги:

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск