11.06.2014 01:33:18 отредактировано Stim
Создал XDTO-пакет. текст выгруженной схемы:
<xs:schema xmlns:tns="http://www.sample-package.org" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.sample-package.org" attributeFormDefault="unqualified" elementFormDefault="qualified"> <xs:complexType name="РезультатОперации"> <xs:sequence> <xs:element name="Код" type="xs:string"></xs:element> <xs:element name="Наименование" type="xs:string"></xs:element> </xs:sequence> </xs:complexType> <xs:complexType name="Свойства"> <xs:sequence> <xs:element name="Товар" type="tns:РезультатОперации" minOccurs="0" maxOccurs="unbounded"></xs:element> </xs:sequence> </xs:complexType> </xs:schema>
код обработчика веб-сервиса:
ТипXDTOРезультатОперации = ФабрикаXDTO.Тип("http://www.sample-package.org", "РезультатОперации"); ТипXDTOСвойства = ФабрикаXDTO.Тип("http://www.sample-package.org", "Свойства"); // создадим значение XDTO для свойства XDTOСвойства = ФабрикаXDTO.Создать(ТипXDTOСвойства); СпрНом = Справочники.Номенклатура; Выборка = СпрНом.Выбрать(); Пока Выборка.Следующий() Цикл // создадим значение XDTO для результата XDTOПозиции = ФабрикаXDTO.Создать(ТипXDTOРезультатОперации); // заполним результат //ЗаполнитьЗначенияСвойств(XDTOПозиции, Выборка); XDTOПозиции.Код = "123"; XDTOПозиции.Наименование = "йцу"; // добавим результат в товары XDTOСвойства.Товар.Добавить(XDTOПозиции); КонецЦикла; Возврат XDTOСвойства;
вроде ошибок нет, этот же код внешняя обработка выполняет и возвращает все как надо.
но при открытии http://localhost/Web1C/ws/ws2.1cws?wsdl или при тестировании SoapUI возвращает:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Header></soap:Header> <soap:Body> <soap:Fault> <faultcode>soap:Client</faultcode> <faultstring>Неверный аргумент.</faultstring> <detail>Неверный аргумент.</detail> </soap:Fault> </soap:Body> </soap:Envelope>
почему неверный аргумент? где он?