|
Web-Сервисы и WSDL | ☑ | ||
---|---|---|---|---|
0
anchar007
02.11.18
✎
16:52
|
Помогите понять что не так с получением структуры wsdl через 1С:
Есть ссылка на wsdl описание веб-сервиса. На её основании создаю объект WS-ссылку. Создается вот такой объект: https://pp.userapi.com/c850420/v850420209/36471/nByf3_rOWl0.jpg Т.е. 1С загрузила структуру, в которой есть операция ping, у неё есть входной параметр data типа "String" Теперь смотрю WSDL описание: <wsdl:operation name="ping"> <wsdl:input message="tns:pingRequest"/> <wsdl:output message="tns:pingResponse"/> <wsdl:fault name="fault" message="tns:pingFault"/> </wsdl:operation> У операции ping на входе структура PingRequest: <xsd:complexType name="PingRequest"> <xsd:complexContent> <xsd:extension base="tns:BaseRequest"> <xsd:sequence> <xsd:element name="data" type="xsd:string"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> BaseRequest: <xsd:complexType name="BaseRequest" abstract="true"> <xsd:sequence> <xsd:element name="credentials" type="tns:Credentials"/> <xsd:element name="language"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="ru"/> <xsd:enumeration value="en"/> </xsd:restriction> </xsd:simpleType> </xsd:element> </xsd:sequence> </xsd:complexType> Дак вот 1С создает на основании WSDL операцию ping с входным параметром data, а в этот data можно передать credentials и language. Вот запрос, который формирует 1С: https://pp.userapi.com/c850420/v850420110/389ee/JuTCrfywJmM.jpg Но этот запрос не может разобрать та система, к которой отправляется запрос, т.к. она не понимает что такое data. Во всём, кроме 1С запрос формируется так, что параметр data находится на одном уровне с credentials и language. Вот пример из SOAP UI: https://pp.userapi.com/c850420/v850420110/389d4/VNY5XVe_ZT8.jpg Что не так с 1С? Почему она подставляет credentials и language в data? Хотя, например SOAP UI на основе того же wsdl описания создает другой запрос? |
|||
1
Fragster
гуру
02.11.18
✎
17:22
|
не вижу тут кода 1с, который "создает на основании WSDL операцию ping с входным параметром data, а в этот data можно передать credentials и language"
|
|||
2
anchar007
04.11.18
✎
11:56
|
(1) потому что я просто создаю объект конфигурации WS-ссылка. Т.е. просто указываю ссылку на WSDL, а 1С уже сама создает структуру как на первом скрине: https://pp.userapi.com/c850420/v850420209/36471/nByf3_rOWl0.jpg
|
|||
3
Fragster
гуру
04.11.18
✎
12:00
|
(2) ну так структура правильная. а вот
> подставляет credentials и language в data - это странно и мне хочется увидеть код, которым это получается. |
|||
4
anchar007
08.11.18
✎
10:56
|
В общем описание проблемы можно прочитать тут: http://1centerprise8.blogspot.com/2015/04/web-service-din-ssylka.html
"К сожалению, платформа 1С во всем объеме не поддерживает работу с Web-сервисами средствами встроенного языка, например, задать значения атрибутов lang, options, format для входящего сообщения операции checkText() становится невозможным, так как нам дозволено только передавать параметры операции" В моем случае параметр операции - data и 1С всё пихает в него. Входной параметр можно определить из WSСсылки, если её добавить в дерево конфигурации (https://pp.userapi.com/c850420/v850420209/36471/nByf3_rOWl0.jpg). Вроде 3 года прошло с публикации статьи, а ничего в 1С не изменилось |
|||
5
Fragster
гуру
08.11.18
✎
11:04
|
(4) ты очень плохо объясняешь. в твоем случае 1с сама ничего не пихает, а пихаешь ты.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |