Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Как прочитать ответ от WEB-сервиса Почты России

Как прочитать ответ от WEB-сервиса Почты России
Я
   alex-79
 
06.07.20 - 15:37
Здравствуйте!

   Как распарсить ответ от web-сервиса Почты России?
    
    текЗапрос = Новый COMОбъект("WinHttp.WinHttpRequest.5.1");
    текЗапрос.Open("POST", "http://tracking.russianpost.ru/fc?wsdl";, 0);
    текЗапрос.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
    
    XMLБилет =
         "<soapenv:Envelope xmlns:soapenv=""http://schemas.xmlsoap.org/soap/envelope/""; xmlns:pos=""http://fclient.russianpost.org/postserver"">;
             |<soapenv:Header/>
             |<soapenv:Body>
             |   <pos:answerByTicketRequest>
             |      <ticket>" + Билет + "</ticket>
             |      <login>"+рЛогин+"</login>
             |      <password>"+рПароль+"</password>
             |   </pos:answerByTicketRequest>
             |</soapenv:Body>
             |</soapenv:Envelope>";            
            
        текЗапрос.Send(XMLБилет);
        текЗапрос.WaitForResponse();
        ОтветСервера = текЗапрос.ResponseText;

   WEB-сервис присылает ответ в виде XML
   Пример https://i0.wampi.ru/2020/07/06/OTVET-WEB-SERVISA.png

   В 1С использую объект ЧтениеXML, но данный объект не умеет читать структура XML-строки присланной WEB-Сервисом.

   Файл с ответом web-сервиса https://cloud.mail.ru/public/9c5R%2FM7STyJgwt
   Волшебник
 
Модератор
1 - 06.07.20 - 15:39
Создай пакет XDTO
   arsik
 
2 - 06.07.20 - 15:50
(0) Стаж: 7 лет 10 месяцев 9 дней - а до сих пор гуглом не научили пользоваться.
http://catalog.mista.ru/public/311011/
   sitex
 
3 - 06.07.20 - 15:57
(2) Может аккаунт продал)
   alex-79
 
4 - 06.07.20 - 15:58
(1) XDTO не сложно создать, но в функции Фабрика.ПрочитатьXML в первый параметр нужно передавать значение объекта ЧтениеXML. При выполнении процедуры ЧтениеXML.УстановитьСтроку 1С выдает ошибку, что передаваема строка в параметре не того формата. В этом вся сложность.
   alex-79
 
5 - 06.07.20 - 15:58
(3) Нет
   acht
 
6 - 06.07.20 - 15:59
(0) Как это все печально...

Ты же в своей ветке Пакетное отслеживание посылок Почты России из 1С собственноручно давал ссылку на страницу с примерами, по которой специально, блд, для 1Сников, выложена конфигурация с примерами работы через CreateWSProxy.
   alex-79
 
7 - 06.07.20 - 16:02
(6) Нет не печально.  CreateWSProxy только для одиночного запроса, а у меня пакетный. И этого куска кода в демо конфе нет. В демо конфе по пакетному запросу выдается номер билета и нужно после этого делать запрос по билету, чтобы получить список информацию по посылкам. Во этого куска кода там нет.
   alex-79
 
8 - 06.07.20 - 16:08
(6) Вот пожалуйста по поводу WS ссылки в демо базе от Почты России https://i0.wampi.ru/2020/07/06/ws-SSYLKA.png
Только одиночный запрос. Пакетного нет.
   alex-79
 
9 - 06.07.20 - 16:10
Насколько я понимаю к строке ответа web-сервиса при чтении надо подсунуть ещё схему, чтобы 1С могла с помощью неё прочитать. Но не понимаю как сделать.
   acht
 
10 - 06.07.20 - 16:11
falselight №2
   alex-79
 
11 - 06.07.20 - 16:13
(10) Что это?
   sitex
 
12 - 06.07.20 - 16:14
(9) А комментарии читал в (2) ?
   arsik
 
13 - 06.07.20 - 16:24
(4) Ну вот загрузил твой пример. Все читает. Что нужно еще?
https://i.imgur.com/6qOkpCr.png
   alex-79
 
14 - 06.07.20 - 16:28
(13) Вот тут СокрЛП() надо использовать было
     ЧтениеXML.УстановитьСтроку(СокрЛП(ОтветСервера))

    Ужас! Из-за обрезки пробелов не читалось 

    Спасибо за помощь!

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.