Имя: Пароль:
1C
1С v8
Обращение из 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>
Кто знает в чем может быть дело?
Основная теорема систематики: Новые системы плодят новые проблемы.