Имя: Пароль:
1C
1С v8
Как прочитать ответ от WEB-сервиса Почты России
0 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
2 arsik
 
гуру
06.07.20
15:50
(0) Стаж: 7 лет 10 месяцев 9 дней - а до сих пор гуглом не научили пользоваться.
http://catalog.mista.ru/public/311011/
3 sitex
 
naïve
06.07.20
15:57
(2) Может аккаунт продал)
4 alex-79
 
06.07.20
15:58
(1) XDTO не сложно создать, но в функции Фабрика.ПрочитатьXML в первый параметр нужно передавать значение объекта ЧтениеXML. При выполнении процедуры ЧтениеXML.УстановитьСтроку 1С выдает ошибку, что передаваема строка в параметре не того формата. В этом вся сложность.
5 alex-79
 
06.07.20
15:58
(3) Нет
6 acht
 
06.07.20
15:59
(0) Как это все печально...

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

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

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