|
1С WEB - Сервис обмен SOAP WSDL | ☑ | ||
---|---|---|---|---|
0
svv1979
26.03.20
✎
07:24
|
Запрос перечня услуг, доступных для партнёра
Для запроса перечня услуг необходимо вызвать процедуру ServisesWithoutSupplier. Входные переменные Имя переменной - partnerID Тип - string Комментарий - Уникальный идентификатор партнёра Выходные переменные Имя переменной - serviceList Тип - массив ServiceInfo (SerID - тип int, SerName - тип string) Комментарий - Перечень доступных услуг Имя переменной - error Тип - Error Комментарий - Ошибка обработки запроса, структура данных Пример запроса <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ServisesWithoutSupplier xmlns="PayService.Service"> <partnerID> QWER-ASDF-ZXCV </partnerID> </ServisesWithoutSupplier> </soap:Body> </soap:Envelope> Пример ответа <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ServisesWithoutSupplierResponse xmlns="PayService.Service"> <serviceList> <ServiceInfo> <SerID>500065</SerID> <SerName>ЖКУ</SerName> </ServiceInfo> <ServiceInfo> <SerID> 500284 </SerID> <SerName>ВЗНОС НА КАП.РЕМОНТ</SerName> </ServiceInfo> </serviceList> </ServisesWithoutSupplierResponse> </soap:Body> </soap:Envelope> ///////////////////////////////////////////////////////////////// WSОпределение = Новый WSОпределения(НашВебСервис); WSСервис=WSОпределение.Сервисы[0]; Прокси = Новый WSПрокси(WSОпределение, WSСервис.URIПространстваИмен, WSСервис.Имя, WSСервис.ТочкиПодключения[0].Имя) ТипWSПараметра = Прокси.ФабрикаXDTO.Пакеты.Получить((WSСервис.URIПространстваИмен)).Получить("ServisesWithoutSupplier"); //Создаем параметр на основе типа и заполняем значение параметра partnerID. WSПараметр = Прокси.ФабрикаXDTO.Создать(ТипWSПараметра); WSПараметр.partnerID = НашКодПартнера; serviceList = ""; Error = ""; //Вызываем метод веб-сервиса, получения перечня услуг . Прокси.ServisesWithoutSupplier(WSПараметр,serviceList,Error); Выходит ошибка - При вызове веб-сервиса произошла ошибка. Неизвестная ошибка. Ошибка разбора XML: - [1,1] Фатальная ошибка: Extra content at the end of the document Подскажите как правильно написать |
|||
1
svv1979
26.03.20
✎
09:07
|
Загрузил WS ссылку в 1С
Модель данных Пакет Типы объектов ServisesWithoutSupplier (запрос) - partnerID ServisesWithoutSupplierResponse (Ответ) - serviceList - Error Web - сервис Имя ИмяSOAP ServisesWithoutSupplier (запрос) - partnerID (Направление - Входной) - serviceList (Направление - Выходной) - Error (Направление - Выходной) |
|||
2
бегинер
26.03.20
✎
09:14
|
установи SOAPUI в ней проверь работу и посмотри ответ - соответствует ли он структуре описанной
|
|||
3
svv1979
26.03.20
✎
09:42
|
(2)
Запрос по SOAPUI <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:pay="PayService.Service"> <soapenv:Header/> <soapenv:Body> <pay:ServisesWithoutSupplier> <!--Optional:--> <pay:partnerID>111111111111111</pay:partnerID> </pay:ServisesWithoutSupplier> </soapenv:Body> </soapenv:Envelope> Ответ <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <soap:Body> <ServisesWithoutSupplierResponse xmlns="PayService.Service"> <serviceList> <ServiceInfo> <SerID>111</SerID> <SerName>Имя1</SerName> </ServiceInfo> <ServiceInfo> <SerID>222</SerID> <SerName>Имя2</SerName> </ServiceInfo> </serviceList> </ServisesWithoutSupplierResponse> </soap:Body> </soap:Envelope> |
|||
4
NorthWind
26.03.20
✎
09:45
|
еще небесполезно будет поставить Fiddler и посмотреть, что именно 1С отправляет на сервис.
|
|||
5
NorthWind
26.03.20
✎
09:46
|
я бы сказал что Fiddler и SOAPUI обязательны для терзания клиентов веб-сервисов, причем первый, пожалуй, даже нужнее
|
|||
6
svv1979
26.03.20
✎
11:20
|
(4) Fiddler не видит 1С подскажи как настроить
Галочку "Allow remote computers to connect" поставил |
|||
7
arsik
гуру
26.03.20
✎
11:28
|
(6) при запуске фиддлер открывает порт прокси (там же в настройках), при соединении куда либо нужно указать этот прокси. Что бы запросы шли через прокси фиддлера.
|
|||
8
svv1979
27.03.20
✎
13:25
|
(7) фиддлер не видит запросы из 1С к внутреннему сервису http://111.11.111.1:10101/pays.asmx?WSDL
|
|||
9
arsik
гуру
27.03.20
✎
14:02
|
(7) При запросах к внутреннему сервису ты указываешь интернет прокси фидллера или нет?
|
|||
10
svv1979
28.03.20
✎
07:10
|
сейчас работает
|
|||
11
svv1979
01.04.20
✎
09:36
|
Разобрался
Ошибка была из-за того что partnerID передавался как список параметров, а надо было как значение метод отработал правильно ServiceList = ""; Error = ""; //Вызываем метод веб-сервиса, получения перечня услуг . Прокси.ServisesWithoutSupplier(WSПараметр.partnerID,ServiceList,Error); Для Каждого Стр ИЗ ServiceList.ServiceInfo Цикл КонецЦикла; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |