![]() |
![]() |
|
Обращение из 1С к стороннему веб-сервису. | ☑ | ||
---|---|---|---|---|
0
1Cv8exe
05.11.16
✎
18:22
|
Определение = Новый WSОпределения("http://wms.xxxx.ru/wms_test/ws/ExchangeXxx.1cws?wsdl","Xxx","Xxx");
Прокси = Новый WSПрокси(Определение,"urn:Xxx.ru","ExchangeXxx","ExchangeXxxSoap"); Фабрика = Прокси.ФабрикаXDTO; //Запрос = Фабрика.Создать(Фабрика.Тип("urn:Xxx.ru", "SetGoods")); //Packings СписокУпаковкаТовараТип = Фабрика.тип("urn:Xxx.ru","Packings"); УпаковкаТовараТип = Фабрика.тип("urn:Xxx.ru","PackingItem"); //Content СписокContentТовараТип = Фабрика.тип("urn:Xxx.ru","Content"); ContentItemТовараТип = Фабрика.тип("urn:Xxx.ru","ContentItem"); //Barcodes СписокBarcodeТип = Фабрика.тип("urn:Xxx.ru","Barcodes"); BarcodeТип = Фабрика.тип("urn:Xxx.ru","Barcode"); //Goods СписокТовараТип = Фабрика.тип("urn:Xxx.ru","Goods"); ТоварТип = Фабрика.тип("urn:Xxx.ru","GoodItem"); СписокТовара = Фабрика.Создать(СписокТовараТип); Для сч = 1 по 3 цикл БарКод = Фабрика.Создать(BarcodeТип); БарКод.Value = "1234567890"; СписокБарКодов = Фабрика.Создать(СписокBarcodeТип); СписокБарКодов.Barcode.Добавить(БарКод); Упаковка = Фабрика.Создать(УпаковкаТовараТип); Упаковка.QuantityGoodsInPackage = сч; Упаковка.UnitOfMeasure = "1"; Упаковка.HandingType = сч; Упаковка.Length = сч; Упаковка.Width = сч; Упаковка.Height = сч; Упаковка.Weight = сч; Упаковка.Barcodes = (СписокБарКодов); //Список СписокУпаковка = Фабрика.Создать(СписокУпаковкаТовараТип); СписокУпаковка.Packing.Добавить(Упаковка); Товар = Фабрика.Создать(ТоварТип); Товар.ClientINN = "770000000"; Товар.ClientKPP = "770001001"; Товар.ID = "1"+сч; Товар.PartManufacturer = "0000"+сч; Товар.ShortName = "0000"+сч; Товар.ProductName = "0000"+сч; Товар.ItemType = "0000"+сч; Товар.SKUType = "0000"+сч; Товар.Inventory = сч; Товар.ABC = сч; Товар.Packings = (СписокУпаковка);// = "0000"+сч; //Товар.Content = (СписокКонтент);// = "0000"+сч; СписокТовара.Good.добавить(Товар); КонецЦикла; SetGoodsТип = Фабрика.Тип("urn:Xxx.ru", "SetGoods"); Запрос = Фабрика.Создать(SetGoodsТип); Запрос.Request = (СписокТовара); МойXML = Новый ЗаписьXML; МойXML.УстановитьСтроку(Новый ПараметрыЗаписиXML("UTF-8", "1.0", Ложь)); МойXML.ЗаписатьОбъявлениеXML(); Фабрика.ЗаписатьXML(МойXML, Запрос); xml = МойXML.Закрыть(); //для проверки Ответ = Прокси.SetGoods(СписокТовара); И это не работает ( А конкретно проблема в том, что вместо <Request><Goods><Good>...</Good></Goods></Request> Выдает: <Request><Good>...</Good></Request> А Good - это строка товара, а не список. Другие подобные списки формируются как надо, хотя синтаксис точно такой же. Например <Barcodes><Barcode><Value>1234567890</Value></Barcode></Barcodes> Кто знает в чем может быть дело? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |