PDA

Просмотр полной версии : web севрвис



лге
28.01.2020, 10:09
Доброго времени суток! прошу помощи в разрешении вопроса.
Существует сервис поставщика, предоставляющий сервис по которому можно получить цену номенклатуры.Пишу запрос в SOAP UI, запрос ниже, обязательные параметры это токен, код клиента, имя клиента и код номенлатуры.


<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:ser="http://service.webservices.tvh.com" xmlns:xsd="http://struct.webservices.tvh.com/xsd">
<soap:Header/>
<soap:Body>
<ser:inquiry>
<!--Optional:-->
<ser:authToken>ЗдесьТокен</ser:authToken>
<!--Optional:-->
<ser:wsInqHead>
<!--Zero or more repetitions:-->
<xsd:wsInqHeadRow>
<!--Optional:-->
<xsd:customerCode>КакойтоКод</xsd:customerCode>
<!--Optional:-->
<xsd:customerContactName>ИмяКонтактногоЛица</xsd:customerContactName>
<!--Optional:-->
<xsd:customerInquiryNumber></xsd:customerInquiryNumber>
</xsd:wsInqHeadRow>
</ser:wsInqHead>
<!--Optional:-->
<ser:wsInqLine>
<!--Zero or more repetitions:-->
<xsd:wsInqLineRow>
<!--Optional:-->
<xsd:customerPartNumber></xsd:customerPartNumber>
<!--Optional:-->
<xsd:lineNumber></xsd:lineNumber>
<!--Optional:-->
<xsd:makeCode></xsd:makeCode>
<!--Optional:-->
<xsd:partNumber>НомерНоменлатуры</xsd:partNumber>
<!--Optional:-->
<xsd:productName></xsd:productName>
<!--Optional:-->
<xsd:quantity></xsd:quantity>
</xsd:wsInqLineRow>
</ser:wsInqLine>
<!--Optional:-->
<ser:wsInqText>
<!--Zero or more repetitions:-->
<xsd:wsInqTextRow>
<!--Optional:-->
<xsd:inquiryLineNumber></xsd:inquiryLineNumber>
<!--Optional:-->
<xsd:textData></xsd:textData>
<!--Optional:-->
<xsd:textLineNumber></xsd:textLineNumber>
<!--Optional:-->
<xsd:textPosition></xsd:textPosition>
</xsd:wsInqTextRow>
</ser:wsInqText>
</ser:inquiry>
</soap:Body>
</soap:Envelope>

Типы:
2421
Функция:
2420
В программе SOAP UI всё отправляется и всё получается как надо. Далее создаю обработку для провекри работы непосредственно в 1С. Код такой:



Процедура КнопкаВыполнитьНажатие(Кн� �пка)

Прокси = WSСсылки.TVH.СоздатьWSПрокси("http://service.webservices.tvh.com", "TvhwsService", "TvhwsServiceHttpSoap12Endpoint" );
ID = Прокси.login("Тут логин","тут пароль");

ТипwsInqHeadRow = Прокси.ФабрикаXDTO.Тип("http://struct.webservices.tvh.com/xsd","Inquiry_WSInqHeadRow");
wsInqHeadRow = Прокси.ФабрикаXDTO.создать(Т� �пwsInqHeadRow);
wsInqHeadRow.customerCode = "тут код клиента";
wsInqHeadRow.customerContactName = "тут имя клиента";

ТипwsInqLineRow = Прокси.ФабрикаXDTO.Тип("http://struct.webservices.tvh.com/xsd","Inquiry_WSInqLineRow");
wsInqLineRow = Прокси.ФабрикаXDTO.Создать(Т� �пwsInqLineRow);
wsInqLineRow.partNumber = "тут код номенлатуры";
wsInqLineRow.lineNumber = 0;
wsInqLineRow.makeCode = "";
wsInqLineRow.quantity = 0;
wsInqLineRow.customerPartNumber = "";

ТипwsInqTextRow = Прокси.ФабрикаXDTO.Тип("http://struct.webservices.tvh.com/xsd","Inquiry_WSInqTextRow");
wsInqTextRow = Прокси.ФабрикаXDTO.Создать(Т� �пwsInqTextRow);


Загрузить = Прокси.inquiry(ID.sessionId,wsInqHeadRow ,wsInqLineRow,wsInqTextRow);

КонецПроцедуры


в итоге ошибка:
Ошибка вызова операции сервиса: {http://service.webservices.tvh.com}:TvhwsService:inquiry( )
по причине:
Неверный формат.
Подозреваю, что ошибка возникает по причине что тип wsInqHeadRow вложен в wsInqHead. Вопрос собственно как правильно описать вложенные типы?