новое событие
Информационный поток
Задания вакансии материалы разработки сообщения форума
Форум

1С WEB - Сервис обмен SOAP WSDL

    • #1
    • 26.03.2020 07:48
    • Отредактировано: 26.03.2020 16:28:02
    0
    Запрос перечня услуг, доступных для партнёра
    Для запроса перечня услуг необходимо вызвать процедуру 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

    Загрузил WS ссылку в 1С

    Модель данных
    Пакет
    Типы объектов
    ServisesWithoutSupplier (запрос)
    - partnerID
    ServisesWithoutSupplierResponse (Ответ)
    - serviceList
    - Error
    Web - сервис
    Имя
    ИмяSOAP
    ServisesWithoutSupplier (запрос)
    - partnerID (Направление - Входной)
    - serviceList (Направление - Выходной)
    - Error (Направление - Выходной)


    Запрос по 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>
    • #2
    • 26.03.2020 09:15
    • Отредактировано: 26.03.2020 16:29:32
    0
    1
    • #3
    • 26.03.2020 11:02
    • Отредактировано: 26.03.2020 16:29:42
    0
    1
    • #4
    • 28.03.2020 02:59
    0
    День добрый!
    может кодировка бывает когда указано UTF-8, а внутри Windows-1251
    • #5
    • 28.03.2020 03:07
    0
    <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>

    из вашего примера получается так ?

    <?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>
    • #6
    • 28.03.2020 07:00
    0
    ctk05851
    День добрый!
    может кодировка бывает когда указано UTF-8, а внутри Windows-1251


    Fiddler
    по другому методу Status

    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
    <m:Status xmlns:m="PayService.Service">
    <m:partnerID xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">4L4D052A16WKWZG0</m:partnerID>
    </m:Status>
    </soap:Body>
    </soap:Envelope>

    ответ

    <?xml version="1.0" encoding="UTF-8"?>

    -<soap:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">


    -<soap:Body>


    -<StatusResponse xmlns="PayService.Service">

    <StatusResult>OK</StatusResult>

    </StatusResponse>

    </soap:Body>

    </soap:Envelope>
    • #7
    • 28.03.2020 07:01
    0
    ctk05851
    День добрый!
    может кодировка бывает когда указано UTF-8, а внутри Windows-1251


    А как поменять установить кодировку?
    • #8
    • 01.04.2020 09:52
    0
    Разобрался

    Ошибка была из-за того что partnerID передавался как список параметров, а надо было как значение метод отработал правильно

    ServiceList = "";
    Error = "";

    //Вызываем метод веб-сервиса, получения перечня услуг .

    Прокси.ServisesWithoutSupplier(WSПараметр.partnerID,ServiceList,Error);

    Для Каждого Стр ИЗ ServiceList.ServiceInfo Цикл

    КонецЦикла;
Для участия в обсуждении Вам необходимо авторизоваться либо   зарегистрироваться