API Почты России, получение данных

1. SeverBaP 5 02.12.15 17:27 Сейчас в теме
Пробую получить данные из сервиса почты России о данных трекномера используя их новый API - постоянно выпадает на ошибках соединения к WEB-сервису (Сам их сайт подвисает - вообщем одним словом ПОЧТА). Если и проходит до создания прокси то дальше не успеваю разобраться с их методом getOperationHistory возвращает неверный формат входных данных.
Сейчас написал вот это:
    Логин = "**************";
    Пароль = "*************";    
    
    // Инициализация отправки данных в почту РОСССИИ
    Попытка
        Определения = Новый WSОпределения("http://tracking.russianpost.ru/rtm34?wsdl",Логин,Пароль); 
    Исключение
        Определения = Неопределено;
    КонецПопытки;
    
    Если НЕ Определения = Неопределено Тогда 
        Попытка
            Прокси = Новый WSПрокси(Определения, "http://russianpost.org/operationhistory", "OperationHistory12","OperationHistory12Port");
        Исключение
            Прокси = Неопределено;
        КонецПопытки;
    КонецЕсли;
    
    Если НЕ Прокси = Неопределено Тогда 
        Прокси.Пользователь = Логин;
        Прокси.Пароль = Пароль;
        Попытка
            
            OperationHistoryRequest = Прокси.ФабрикаXDTO.Создать(Прокси.ФабрикаXDTO.Тип("http://russianpost.org/operationhistory/data","OperationHistoryRequest"));
            OperationHistoryRequest.BarCode = ТрекКод;
            OperationHistoryRequest.MessageType = 0;
            
            AuthorizationHeader = Прокси.ФабрикаXDTO.Создать(Прокси.ФабрикаXDTO.Тип("http://russianpost.org/operationhistory/data","AuthorizationHeader"));
            AuthorizationHeader.mustUnderstand = Истина;
            AuthorizationHeader.login = Логин;
            AuthorizationHeader.password = Пароль;
            
            ДанныеИзСервиса = Прокси.GetOperationHistory(OperationHistoryRequest, AuthorizationHeader);
            
        Исключение
            ОписаниеОшибки = ОписаниеОшибки();
            Сообщить(ОписаниеОшибки);
            ДанныеИзСервиса = Неопределено;
        КонецПопытки;
    КонецЕсли;;

Показать

Может кто-нибудь уже реализовывал так подскажите что я делаю не так.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. SeverBaP 5 02.12.15 17:34 Сейчас в теме
Сейчас отработав весь код вернуло:
Метод объекта не обнаружен (GetOperationHistory)
3. SeverBaP 5 02.12.15 17:45 Сейчас в теме
Исправил метод: ДанныеИзСервиса = Прокси.getOperationHistory(OperationHistoryRequest) - почему-то GetOperationHistory не проходит разница только в одной букве и то по регистру. Сейчас возвращает:
Ошибка при вызове метода контекста (getOperationHistory): Ошибка вызова операции сервиса: {http://russianpost.org/operationhistory}:OperationHistory12:getOperationHistory(): Неверный формат.
4. RocKeR_13 1381 02.12.15 22:13 Сейчас в теме
(3) SeverBaP, загрузил в 1С веб-сервис, по идее параметр запроса включает в себя и OperationHistoryRequest, и AuthorizationHeader, поэтому пробовал вот так:
    Попытка
        Определения = Новый WSОпределения("http://tracking.russianpost.ru/rtm34?wsdl",Логин,Пароль); 
    Исключение
        Определения = Неопределено;
    КонецПопытки;
    
    Если НЕ Определения = Неопределено Тогда 
        Попытка
            Прокси = Новый WSПрокси(Определения, "http://russianpost.org/operationhistory", "OperationHistory12", "OperationHistory12Port");
        Исключение
            Прокси = Неопределено;
        КонецПопытки;
    КонецЕсли;
    
    //========Заполняем структуру OperationHistoryRequest 
    ТипЗапроса = Прокси.ФабрикаXDTO.Пакеты.Получить(
                                        "http://russianpost.org/operationhistory/data").Получить("OperationHistoryRequest");
    Запрос       = Прокси.ФабрикаXDTO.Создать(ТипЗапроса);
    Запрос.Barcode = ТрекНомер;
    Запрос.MessageType = 0;

    //========Заполняем структуру AuthorizationHeader
    ТипАвторизация = Прокси.ФабрикаXDTO.Пакеты.Получить("http://russianpost.org/operationhistory/data").Получить("AuthorizationHeader");
    Авторизация = Прокси.ФабрикаXDTO.Создать(ТипАвторизация);
    Авторизация.mustUnderstand = 0;
    Авторизация.login = Логин;
    Авторизация.password = Пароль;    
    
        //=======================Собираем параметр запроса для getOperationHistory
    ТипПараметры = Прокси.ФабрикаXDTO.Пакеты.Получить("http://russianpost.org/operationhistory").Получить("getOperationHistory");
    ПараметрыЗапроса       = Прокси.ФабрикаXDTO.Создать(ТипПараметры);
    ПараметрыЗапроса.OperationHistoryRequest = Запрос;
    ПараметрыЗапроса.AuthorizationHeader = Авторизация;

    ДанныеИзСервиса = Прокси.getOperationHistory(ПараметрыЗапроса);
Показать


Но тоже ругается на неверный формат.... А в SoapUI не тестировали, работает хоть этот веб-сервис?
5. SeverBaP 5 02.12.15 23:38 Сейчас в теме
Вроде по логике должно быть:
    // Инициализация отправки данных в почту РОСССИИ
    Попытка
        Определения = Новый WSОпределения("http://tracking.russianpost.ru/rtm34?wsdl",Логин,Пароль); 
    Исключение
        ОписаниеОшибки = ОписаниеОшибки();
        Сообщить(ОписаниеОшибки);
        Определения = Неопределено;
    КонецПопытки;
    
    Если НЕ Определения = Неопределено Тогда 
        Попытка
            Прокси = Новый WSПрокси(Определения, "http://russianpost.org/operationhistory", "OperationHistory12","OperationHistory12Port");
        Исключение
            Прокси = Неопределено;
        КонецПопытки;
    КонецЕсли;
    
    Если НЕ Прокси = Неопределено Тогда 
        
        Прокси.Пользователь = Логин;
        Прокси.Пароль = Пароль;
        
        Попытка
            
            OperationHistoryRequest = Прокси.ФабрикаXDTO.Создать(Прокси.ФабрикаXDTO.Тип("http://russianpost.org/operationhistory/data","OperationHistoryRequest"));
            OperationHistoryRequest.BarCode = ТрекКод;
            OperationHistoryRequest.MessageType = 0;
            
            ДанныеИзСервиса = Прокси.getOperationHistory(OperationHistoryRequest);
                                     
        Исключение
            ОписаниеОшибки = ОписаниеОшибки();
            Сообщить(ОписаниеОшибки);
            ДанныеИзСервиса = Неопределено;
        КонецПопытки;
        
    КонецЕсли;;

Показать

Но нет все же неверный формат.
Это из описания сервиса:
<operation name="getOperationHistory">
<input wsam:Action="http://russianpost.org/operationhistory/OperationHistory12/getOperationHistoryR­equest" message="tns:getOperationHistory"/>
<output wsam:Action="http://russianpost.org/operationhistory/OperationHistory12/getOperationHistoryR­esponse" message="tns:getOperationHistoryResponse"/>
<fault message="tns:OperationHistoryFault" name="OperationHistoryFault" wsam:Action="http://russianpost.org/operationhistory/OperationHistory12/getOperationHistory/­Fault/OperationHistoryFault"/>
<fault message="tns:AuthorizationFault" name="AuthorizationFault" wsam:Action="http://russianpost.org/operationhistory/OperationHistory12/getOperationHistory/­Fault/AuthorizationFault"/>
</operation>
6. SeverBaP 5 03.12.15 11:43 Сейчас в теме
Пробовал передавать данные вот так:
        Прокси.Пользователь = Логин;
        Прокси.Пароль = Пароль;
        
        Попытка
            getOperationHistory = Прокси.ФабрикаXDTO.Создать(Прокси.ФабрикаXDTO.Тип("http://russianpost.org/operationhistory","getOperationHistory"));
            
            OperationHistoryRequest = Прокси.ФабрикаXDTO.Создать(Прокси.ФабрикаXDTO.Тип("http://russianpost.org/operationhistory/data","OperationHistoryRequest"));
            OperationHistoryRequest.BarCode = ТрекКод;
            OperationHistoryRequest.MessageType = 0;
            getOperationHistory.OperationHistoryRequest = OperationHistoryRequest;
            
            AuthorizationHeader = Прокси.ФабрикаXDTO.Создать(Прокси.ФабрикаXDTO.Тип("http://russianpost.org/operationhistory/data","AuthorizationHeader"));
            AuthorizationHeader.mustUnderstand = Истина;
            AuthorizationHeader.login = Логин;
            AuthorizationHeader.password = Пароль;
            
            getOperationHistory.AuthorizationHeader = AuthorizationHeader;
            
            ДанныеИзСервиса = Прокси.getOperationHistory(getOperationHistory);
                                     
        Исключение
            ОписаниеОшибки = ОписаниеОшибки();
            Сообщить(ОписаниеОшибки);
            ДанныеИзСервиса = Неопределено;
        КонецПопытки;

Показать

также неверный формат.
7. SeverBaP 5 03.12.15 11:45 Сейчас в теме
Может туда не надо передавать объект XDTO, как-то иначе? через структуру вообще выпадает на ошибке неверный тип.
8. SeverBaP 5 03.12.15 16:50 Сейчас в теме
Есть пример для работы:
    
    Запрос = Новый COMОбъект("WinHttp.WinHttpRequest.5.1");
    Запрос.Open("POST", "http://tracking.russianpost.ru/rtm34?wsdl", 0);
    Запрос.setRequestHeader("Content-Type", "application/soap+xml; charset=utf-8");
    
    XML =
    "<soap:Envelope xmlns:soap=""http://www.w3.org/2003/05/soap-envelope"" xmlns:oper=""http://russianpost.org/operationhistory"" xmlns:data=""http://russianpost.org/operationhistory/data"" xmlns:soapenv=""http://schemas.xmlsoap.org/soap/envelope/"">
    |   <soap:Header/>
    |   <soap:Body>
    |      <oper:getOperationHistory>
    |         <data:OperationHistoryRequest>
    |            <data:Barcode>" + ТрекКод + "</data:Barcode>
    |            <data:MessageType>0</data:MessageType>
    |            <data:Language>RUS</data:Language>
    |         </data:OperationHistoryRequest>
    |         <data:AuthorizationHeader soapenv:mustUnderstand=""1"">
    |            <data:login>"+Логин+"</data:login>
    |            <data:password>"+Пароль+"</data:password>
    |         </data:AuthorizationHeader>
    |      </oper:getOperationHistory>
    |   </soap:Body>
    |</soap:Envelope>";
    
    Запрос.Send(XML);
    Запрос.WaitForResponse();
    Ответ = Запрос.ResponseText;

Показать

Может это что-то даст, не на всех ПК работает (под линухой нет) но результат выдает.
9. SeverBaP 5 08.12.15 14:50 Сейчас в теме
Текущий рабочий вариант получения данных по API:
Функция ПолучитьДанныеИзПочтыРоссии(НомерОтправления) Экспорт
    
    ТаблицаРезультат = Новый ТаблицаЗначений;
    ТаблицаРезультат.Колонки.Добавить("Дата");
    ТаблицаРезультат.Колонки.Добавить("АдресОперации");
    ТаблицаРезультат.Колонки.Добавить("Операция");
    
    Логин = "**************";
    Пароль = "****************";    
    Попытка
        Запрос = Новый COMОбъект("WinHttp.WinHttpRequest.5.1");
        Запрос.Open("POST", "http://tracking.russianpost.ru/rtm34?wsdl", 0);
        Запрос.setRequestHeader("Content-Type", "application/soap+xml; charset=utf-8");
    Исключение
        Возврат ТаблицаРезультат;
    КонецПопытки;
    XML =
    "<soap:Envelope xmlns:soap=""http://www.w3.org/2003/05/soap-envelope"" xmlns:oper=""http://russianpost.org/operationhistory"" xmlns:data=""http://russianpost.org/operationhistory/data"" xmlns:soapenv=""http://schemas.xmlsoap.org/soap/envelope/"">
    |   <soap:Header/>
    |   <soap:Body>
    |      <oper:getOperationHistory>
    |         <data:OperationHistoryRequest>
    |            <data:Barcode>" + НомерОтправления + "</data:Barcode>
    |            <data:MessageType>0</data:MessageType>
    |            <data:Language>RUS</data:Language>
    |         </data:OperationHistoryRequest>
    |         <data:AuthorizationHeader soapenv:mustUnderstand=""1"">
    |            <data:login>"+Логин+"</data:login>
    |            <data:password>"+Пароль+"</data:password>
    |         </data:AuthorizationHeader>
    |      </oper:getOperationHistory>
    |   </soap:Body>
    |</soap:Envelope>";
    
    Попытка
        Запрос.Send(XML);
        Запрос.WaitForResponse();
        Ответ = Запрос.ResponseText;
    Исключение
        
        Возврат ТаблицаРезультат;
        
    КонецПопытки;
    ЧтениеXML = Новый ЧтениеXML;
    ЧтениеXML.УстановитьСтроку(Ответ);
    ПостроительDOM = Новый ПостроительDOM();
    ДокументDOM = ПостроительDOM.Прочитать(ЧтениеXML);
    
    СписокСобытий = ДокументDOM.ПолучитьЭлементыПоИмени("ns3:historyRecord");
    
    Для Каждого СобытиеТрека Из СписокСобытий Цикл
        ЭлементАдреса = СобытиеТрека.ПолучитьЭлементыПоИмени("ns3:AddressParameters")[0];
        СтранаОперация = ЭлементАдреса.ПолучитьЭлементыПоИмени("ns3:CountryOper")[0].ПолучитьЭлементыПоИмени("ns3:NameRU")[0].ТекстовоеСодержимое;
        АдресОперации = ЭлементАдреса.ПолучитьЭлементыПоИмени("ns3:OperationAddress")[0].ПолучитьЭлементыПоИмени("ns3:Description")[0].ТекстовоеСодержимое;
        ПолныйАдресОперации = СтранаОперация + ", "+АдресОперации;
        
        ДанныеОперации = СобытиеТрека.ПолучитьЭлементыПоИмени("ns3:OperationParameters")[0];
        Операция = ДанныеОперации.ПолучитьЭлементыПоИмени("ns3:OperType")[0].ПолучитьЭлементыПоИмени("ns3:Name")[0].ТекстовоеСодержимое;
        АтрибутОперации = ДанныеОперации.ПолучитьЭлементыПоИмени("ns3:OperAttr")[0].ПолучитьЭлементыПоИмени("ns3:Name")[0].ТекстовоеСодержимое;
        ОписаниеОперации = Операция+", "+АтрибутОперации;
        
        ДатаОперации = XMLЗначение(Тип("Дата"),ДанныеОперации.ПолучитьЭлементыПоИмени("ns3:OperDate")[0].ТекстовоеСодержимое);
        
        НовоеСобытиеПоТреку = ТаблицаРезультат.Добавить();
        НовоеСобытиеПоТреку.Дата = ДатаОперации;
        НовоеСобытиеПоТреку.АдресОперации = ПолныйАдресОперации;
        НовоеСобытиеПоТреку.Операция = ОписаниеОперации;

    КонецЦикла;    
    
    ТаблицаРезультат.Сортировать("Дата Возр");
    
    Возврат ТаблицаРезультат;

    
КонецФункции
Показать

Есть у кого разбор получше?
10. A.Sytchev 08.12.15 15:13 Сейчас в теме
(9) SeverBaP, ну и нагородил огород.
Ты не правильно передаешь параметры.
Посмотри тут http://screenpresso.com/=jkhOb какого типа должен быть параметр.

Перейди вот по этой ссылке http://tracking.russianpost.ru/rtm34?xsd=6 , это схема, которая импортируется в wsdl:

Обрати внимание на описание типа параметра:

xs:complexType name="getOperationHistory">
<xs:sequence>
<xs:element ref="ns1:OperationHistoryRequest" minOccurs="0"/>
<xs:element ref="ns1:AuthorizationHeader" minOccurs="0"/>
</xs:sequence>
</xs:complexType>



А ты передаешь в качестве параметра: Создать(Прокси.ФабрикаXDTO.Тип("http://russianpost.org/operationhistory/data","OperationHistoryRequest").
11. SeverBaP 5 08.12.15 15:23 Сейчас в теме
(10) A.Sytchev, я в 6 сообщении твой вариант описывал он также не работает.
12. A.Sytchev 08.12.15 15:40 Сейчас в теме
(11) SeverBaP, а точно, проглядел, прошу прощения.
13. SeverBaP 5 08.12.15 16:14 Сейчас в теме
(12) A.Sytchev, Скорее всего надо рыть в сторону вот этого:
    XML =
    "<soap:Envelope xmlns:soap=""http://www.w3.org/2003/05/soap-envelope"" xmlns:oper=""http://russianpost.org/operationhistory"" xmlns:data=""http://russianpost.org/operationhistory/data"" xmlns:soapenv=""http://schemas.xmlsoap.org/soap/envelope/"">
    |   <soap:Header/>
    |   <soap:Body>
    |      <oper:getOperationHistory>
    |         <data:OperationHistoryRequest>
    |            <data:Barcode>" + НомерОтправления + "</data:Barcode>
    |            <data:MessageType>0</data:MessageType>
    |            <data:Language>RUS</data:Language>
    |         </data:OperationHistoryRequest>
    |         <data:AuthorizationHeader soapenv:mustUnderstand=""1"">
    |            <data:login>"+Логин+"</data:login>
    |            <data:password>"+Пароль+"</data:password>
    |         </data:AuthorizationHeader>
    |      </oper:getOperationHistory>
    |   </soap:Body>
    |</soap:Envelope>";
Показать

Я пробовал создать на основании этого текста объектXDTO и отправить его, так вот, - он выдавал ошибку неверный логин пароль... мне кажется надо его просто доработать и выяснить с фабрикой что не так
14. RocKeR_13 1381 08.12.15 17:44 Сейчас в теме
(13) SeverBaP, а логин/пароль - это те, что для авторизации на Pochta.ru? Я что-то даже не могу там зарегаться, на почту письмо не приходит...
15. SeverBaP 5 08.12.15 18:42 Сейчас в теме
(14) RocKeR_13, пробуйте должно прийти - это же Почта РОССИИ.
16. RocKeR_13 1381 09.12.15 09:23 Сейчас в теме
(15) SeverBaP, с утреца сегодня пришло)) Попробовал в SoapUI оттестить, но и там ничего путного... На запрос
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:oper="http://russianpost.org/operationhistory" xmlns:data="http://russianpost.org/operationhistory/data" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    |   <soap:Header/>
   <soap:Body>
    |      <oper:getOperationHistory>
    |         <!--Optional:-->
         <data:OperationHistoryRequest>
    |            <data:Barcode>трек_номер</data:Barcode>
            <data:MessageType>0</data:MessageType>
            <!--Optional:-->
            <data:Language>EN</data:Language>
         </data:OperationHistoryRequest>
         <!--Optional:-->
         <data:AuthorizationHeader soapenv:mustUnderstand="0">
    |            <data:login>тут_мой_логин</data:login>
            <data:password>а_вот_тут_пароль</data:password>
         </data:AuthorizationHeader>
      </oper:getOperationHistory>
   </soap:Body>
</soap:Envelope>
Показать


почта разочаровано отвечает
<S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope">
   <S:Body>
      <S:Fault xmlns:ns4="http://schemas.xmlsoap.org/soap/envelope/">
         <S:Code>
            <S:Value>S:Receiver</S:Value>
         </S:Code>
         <S:Reason>
            <S:Text xml:lang="en">XML reader error: unexpected character content: "
    |   "</S:Text>
         </S:Reason>
      </S:Fault>
   </S:Body>
</S:Envelope>
Показать


У вас есть пример работающего запроса? А то может и сервис у них нерабочий....
17. SeverBaP 5 09.12.15 12:36 Сейчас в теме
(16) RocKeR_13, в 9 сообщении рабочий вариант
18. RocKeR_13 1381 10.12.15 20:27 Сейчас в теме
(17) SeverBaP, в (4) все-таки рабочий вариант, а вот сервис у них, строго говоря, косячный... Вот что выдает 1С:
Ошибка вызова операции сервиса:  {<noindex><a class="is-fancybox" href="/redirect.php?url=aHR0cDovL3J1c3NpYW5wb3N0Lm9yZy9vcGVyYXRpb25oaXN0b3J5" target="_blank" rel="nofollow">http://russianpost.org/operationhistory}:OperationHistory12:getOperationHistory()
по причине:
Неизвестная ошибка. Ошибка преобразования данных XDTO:
Чтение объекта типа: {<noindex><a class="is-fancybox" href="/redirect.php?url=aHR0cDovL3J1c3NpYW5wb3N0Lm9yZy9vcGVyYXRpb25oaXN0b3J5L2RhdGE=" target="_blank" rel="nofollow">http://russianpost.org/operationhistory/data}Address - [1,527]
Проверка свойства 'Description':
    форма: Элемент
    имя: {<noindex><a class="is-fancybox" href="/redirect.php?url=aHR0cDovL3J1c3NpYW5wb3N0Lm9yZy9vcGVyYXRpb25oaXN0b3J5L2RhdGE=" target="_blank" rel="nofollow">http://russianpost.org/operationhistory/data}Description
    тип: {<noindex><a class="is-fancybox" href="/redirect.php?url=aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWE=" target="_blank" rel="nofollow">http://www.w3.org/2001/XMLSchema}string
по причине:
Ошибка преобразования данных XDTO:
Чтение объекта типа: {<noindex><a class="is-fancybox" href="/redirect.php?url=aHR0cDovL3J1c3NpYW5wb3N0Lm9yZy9vcGVyYXRpb25oaXN0b3J5L2RhdGE=" target="_blank" rel="nofollow">http://russianpost.org/operationhistory/data}Address - [1,527]
Проверка свойства 'Description':
    форма: Элемент
    имя: {<noindex><a class="is-fancybox" href="/redirect.php?url=aHR0cDovL3J1c3NpYW5wb3N0Lm9yZy9vcGVyYXRpb25oaXN0b3J5L2RhdGE=" target="_blank" rel="nofollow">http://russianpost.org/operationhistory/data}Description
    тип: {<noindex><a class="is-fancybox" href="/redirect.php?url=aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWE=" target="_blank" rel="nofollow">http://www.w3.org/2001/XMLSchema}string
по причине:
Ошибка проверки данных XDTO:
Структура объекта не соответствует типу: {<noindex><a class="is-fancybox" href="/redirect.php?url=aHR0cDovL3J1c3NpYW5wb3N0Lm9yZy9vcGVyYXRpb25oaXN0b3J5L2RhdGE=" target="_blank" rel="nofollow">http://russianpost.org/operationhistory/data}Address
Проверка свойства 'Description':
    форма: Элемент
    имя: {<noindex><a class="is-fancybox" href="/redirect.php?url=aHR0cDovL3J1c3NpYW5wb3N0Lm9yZy9vcGVyYXRpb25oaXN0b3J5L2RhdGE=" target="_blank" rel="nofollow">http://russianpost.org/operationhistory/data}Description
    тип: {<noindex><a class="is-fancybox" href="/redirect.php?url=aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWE=" target="_blank" rel="nofollow">http://www.w3.org/2001/XMLSchema}string
Не установлено значение одного из следующих свойств: Index
Показать


То бишь 1С говорит, что свойство Index не может быть пустым. Прогоняем этот запрос в SoapUI и видим, что индекс-то там пустой! Грузим WS-ссылку в конфу для простоты навигации и видим, что действительно свойство Index не может быть пустым! Так что 1С со своей строгой проверкой с данной ошибкой справится в рамках XDTO не может. Попутно попробовал отследить трек-номер из их примера: свойство MaxMassRU объявлено обязательным, но в ответе напрочь отсутствует... Так что методом (4) пока совершенно безнадежно пользоваться. Остается только использовать метод ваш из (9), либо пытаться с разрабами сервиса связаться.
Прикрепленные файлы:
19. RUDSOFT 21 12.12.15 15:30 Сейчас в теме
У меня такая же проблема, может быть написать в почту России? только вот по какому адресу?
20. Serginio 942 13.12.15 22:17 Сейчас в теме
Не понимает 1С ws- протоколы. Именно по этому и сделал
http://www.forum.mista.ru/topic.php?id=689926&page=1
21. RocKeR_13 1381 14.12.15 09:41 Сейчас в теме
(20) Serginio, с формальной точки зрения 1С понимает все, вот только отказывается работать, если структура ответа/запроса отличается от того, что заявлено в описании web-сервиса
22. Serginio 942 14.12.15 11:26 Сейчас в теме
C формальной точки в ней не реализована работа с ws- протоколами. В том числе с передачей данных в секции Header http://dev.mista.ru/topic.php?id=686516
23. SeverBaP 5 15.12.15 11:51 Сейчас в теме
Написал в support.tracking@russianpost.ru поэтому поводу, думаю скажут иди ....
24. RocKeR_13 1381 15.12.15 16:11 Сейчас в теме
(23) SeverBaP, ну теперь ждать, пока к ним почта дойдет, а потом когда от них ответ придет...)))
25. SeverBaP 5 17.12.15 11:16 Сейчас в теме
(24) RocKeR_13, Пришел ответ от почты России. Вообщем всем смотреть новый пример для 1с в их API там все работает как надо.
26. SeverBaP 5 17.12.15 12:00 Сейчас в теме
Вообщем решил попробовать через WS-ссылки, добавил напрямую с указанием адреса "http://tracking.russianpost.ru/rtm34?wsdl" присвоил имя: "APIЕдиничныйДоступКТрекеру".
Изменил код на тот который похож на сообщение 6:
    Логин = ***************;
    Пароль = **************;    
    
    СервисПочты = WSСсылки.APIЕдиничныйДоступКТрекеру.СоздатьWSПрокси("http://russianpost.org/operationhistory",
                                                                      "OperationHistory12",
                                                                      "OperationHistory12Port",
                                                                      ,
                                                                      ,
                                                                      Новый ЗащищенноеСоединениеOpenSSL);
    ФабрикаСервиса = СервисПочты.ФабрикаXDTO;
    
    getOperationHistory = ФабрикаСервиса.Создать(ФабрикаСервиса.Тип("http://russianpost.org/operationhistory","getOperationHistory"));
            
    OperationHistoryRequest = ФабрикаСервиса.Создать(ФабрикаСервиса.Тип("http://russianpost.org/operationhistory/data","OperationHistoryRequest"));
    OperationHistoryRequest.BarCode = ТрекКод;
    OperationHistoryRequest.MessageType = 0;
    getOperationHistory.OperationHistoryRequest = OperationHistoryRequest;
            
    AuthorizationHeader = ФабрикаСервиса.Создать(ФабрикаСервиса.Тип("http://russianpost.org/operationhistory/data","AuthorizationHeader"));
    AuthorizationHeader.mustUnderstand = Истина;
    AuthorizationHeader.login = Логин;
    AuthorizationHeader.password = Пароль;
            
    getOperationHistory.AuthorizationHeader = AuthorizationHeader;
    
    ДанныеИзСервиса = СервисПочты.getOperationHistory(getOperationHistory);    

Показать

И о чудо он выдает ошибку:
Ошибка при вызове метода контекста (getOperationHistory)
ДанныеИзСервиса = СервисПочты.getOperationHistory(getOperationHistory);
по причине:
Ошибка вызова операции сервиса: {http://russianpost.org/operationhistory}:OperationHistory12:getOperationHistory()
по причине:
Неизвестная ошибка. Ошибка проверки данных XDTO:
Структура объекта не соответствует типу: {http://russianpost.org/operationhistory/data}ItemParameters
Проверка свойства 'MaxMassRU':
форма: Элемент
имя: {http://russianpost.org/operationhistory/data}MaxMassRU
тип: {http://www.w3.org/2001/XMLSchema}integer
Отсутствует обязательное свойство
по причине:
Ошибка проверки данных XDTO:
Структура объекта не соответствует типу: {http://russianpost.org/operationhistory/data}ItemParameters
Проверка свойства 'MaxMassRU':
форма: Элемент
имя: {http://russianpost.org/operationhistory/data}MaxMassRU
тип: {http://www.w3.org/2001/XMLSchema}integer
Отсутствует обязательное свойство
Ступор .... да и в самом примере который у них сейчас на сайте есть в примерах каталог "Правильные схемы для работы единичного доступа" где эти пакеты для импорта правильные - он работает. Но почему тогда они не могут у себя в сервисе поправить то?????
Может кто-нибудь напишит насчет этого им в поддержку???
29. RocKeR_13 1381 17.12.15 14:53 Сейчас в теме
(26) SeverBaP, так я уже писал про отсутствие обязательного свойства в (18) и подключался к сервису из внешней обработки...хотя отличий-то никаких нет, что в конфуз ws-ссылку добавлять, что программно подключаться. И я думаю, вряд ли что-то они сломают, если у этих несчастных свойств снимут параметр "Обязвтельный"...к тому же, как видно, из заполнение совсем не обязательно, во всяком случае, пока)
27. SeverBaP 5 17.12.15 12:13 Сейчас в теме
Кинул письмо: "Воспользовался вашим сервисом с новым примером, да он работает. Но возникает вопрос почему для работы используются схемы в каталоге "Правильные схемы для работы единичного доступа", а не те которые заявлены в самом сервисе?" жду кирпич в ответ...
28. SeverBaP 5 17.12.15 12:55 Сейчас в теме
Ответ: "Схемы которые лежат "в самом сервисе" сохранены как есть, чтобы поддержать совместимость с предыдущей версией сервиса. Есть много клиентов кто работает имеенно с ней."
30. Serginio 942 17.12.15 14:57 Сейчас в теме
31. Serginio 942 17.12.15 15:00 Сейчас в теме
Вот здесь человек с 0 http://www.forum.mista.ru/topic.php?id=720653&page=1#48
Если не сможете завтра вам скомпилирую сборку
32. SeverBaP 5 17.12.15 15:17 Сейчас в теме
(31) Serginio, Есть уже реализованные методы получения данных по треккоду: первый описан в 9 сообщении, второй то что у них сейчас в примерах API есть. Суть в том что сервис почты России сейчас с режимом поддержки старого формата и поэтому 1с не может это проработать. Так что не надо какие-то еще костыли делать.
33. Serginio 942 17.12.15 15:41 Сейчас в теме
(32) В отличие от 9 WCF производит сериализацию и десериализацию автоматически. И ты работаешь с объектами а не XML
А это значительно проще, чем с родными 1С XDTO
35. tusv 212 06.04.16 21:25 Сейчас в теме
(33) Serginio, Скорее читает по конструкции Попытка Исключение и летит дальше. Ну не понятен узел, ну и мир ему, главное закрыт и можно чесать дальше. Пакеты XDTO придумал не Родной 1с. Если видит в определении веб сервиса "Адрес" и он обязателен, ну Вы знаете куда 1с пошлет такой пакет если не увидит то что ему доложил сторонний Веб сервис
34. solary 186 06.04.16 20:31 Сейчас в теме
(32) SeverBaP, с первым вариантом из сообщения 9 все более-менее понятно. А второй вариант? Где эти примеры найти? В примерах на сайте https://tracking.pochta.ru/support/about/examples есть пример для 1С, но там получаем ошибку из 26 сообщения...
37. tusv 212 06.04.16 21:57 Сейчас в теме
(34) solary, Все дело в 5 поправке пакете. Его нужно локально подправить и подгрузить. Вернее указать в сервисе локальный адрес файла определения, где нужно указать, что объекты не обязятельны.
Ну в общем; либо виноваты сами - Нефига покупать на ибей и у китайцев:) - валится как раз на международке, либо у Питерских разработчиков Веб сервиса програмщина круче 1с, что ваще думать не надо:(
Увы помочь смогу только по памяти. Аксес денайт. Нужна пара xml файлов с этого сайта. Сам сервис и пятый пакет
36. solary 186 06.04.16 21:34 Сейчас в теме
Разобрался. Сходу прописывал в ws-ссылку адрес http://tracking.russianpost.ru/rtm34?wsdl или https://tracking.russianpost.ru/tracking-web-static/rtm34_wsdl.xml А оказалось этого делать не надо, нужно оставлять вс-ссылку как есть file:////127.0.0.1/sha/schema/rtm34_wsdl.xml
Решение конечно странное, но работает. Единственное, обязательно встраивать в конфу и во внешнюю обработку не поместить...
38. lisrws 145 15.04.16 23:06 Сейчас в теме
Поделюсь кодом для работы с сервисом по наложкам "PostalOrderEventsForMail", может пригодится кому:
    текЗапрос = Новый COMОбъект("WinHttp.WinHttpRequest.5.1");
    текЗапрос.Open("POST", "http://tracking.russianpost.ru/rtm34?wsdl", 0);
    текЗапрос.setRequestHeader("Content-Type", "application/soap+xml; charset=utf-8");
    
    XMLБезТаблицыШтрихкодов =
    "<soap:Envelope xmlns:soap=""http://www.w3.org/2003/05/soap-envelope"" xmlns:oper=""http://russianpost.org/operationhistory"" xmlns:data=""http://russianpost.org/operationhistory/data"" xmlns:soapenv=""http://schemas.xmlsoap.org/soap/envelope/"" xmlns:data1=""http://www.russianpost.org/RTM/DataExchangeESPP/Data"">
    |  <soap:Header/>
    |<soap:Body>
    |  <oper:PostalOrderEventsForMail>
    |<data:AuthorizationHeader soapenv:mustUnderstand="""">
    |        <data:login>"+рЛогин+"</data:login>
    |       <data:password>"+рПароль+"</data:password>
    |    </data:AuthorizationHeader>
    |<data1:PostalOrderEventsForMailInput Barcode="""+ТрекерНалПлатежа+""" Language=""""/>
       |</oper:PostalOrderEventsForMail>
    |</soap:Body>
    |</soap:Envelope>";
    текЗапрос.Send(XMLБезТаблицыШтрихкодов);
    текЗапрос.WaitForResponse();
    Ответ = текЗапрос.ResponseText;

Показать
39. solary 186 15.05.16 14:34 Сейчас в теме
(38) lisrws, спасибо, работает! А вот через WS-ссылку у меня так и не получилось.
46. RWS88 1 09.12.19 22:16 Сейчас в теме
(38) Сделал на базе WS:
//++_Установим соединение
    текСервис = WSСсылки.ЕдиничныйДоступКТрекеру.СоздатьWSПрокси(текURI, текНаименованиеВебСервиса, текНаименованиеПорта,,,Новый ЗащищенноеСоединениеOpenSSL);
    текФабрика = текСервис.ФабрикаXDTO;
    текПакет = текФабрика.Пакеты.Получить(текURI);
    
    //++_Получим элементы свойства AuthorizationHeader
    текAuthorizationHeader = текФабрика.Создать("http://russianpost.org/operationhistory/data","AuthorizationHeader");
    текAuthorizationHeader.login = рЛогин;  //++_логин полученный при регистрации https://tracking.pochta.ru
    текAuthorizationHeader.password = рПароль; //++_пароль полученный при регистрации https://tracking.pochta.ru
    
    //++_Получим элементы свойства PostalOrderEventsForMailInput
    текPostalOrderEventsForMailInput = текФабрика.Создать("http://www.russianpost.org/RTM/DataExchangeESPP/Data","PostalOrderEventsForMailInput");
    текPostalOrderEventsForMailInput.Barcode = ЗаказПокупателя.НомерДляОтслеживание;
    текPostalOrderEventsForMailInput.Language = "RUS";
    
    //++_Получим элементы свойства PostalOrderEventsForMail и поместим в него элементы свойств AuthorizationHeader и PostalOrderEventsForMailInput
    текПакетPostalOrderEventsForMail = текФабрика.Пакеты.Получить("http://russianpost.org/operationhistory").Получить("PostalOrderEventsForMail");
    текPostalOrderEventsForMail    =  текФабрика.Создать(текПакетPostalOrderEventsForMail);
    текPostalOrderEventsForMail.PostalOrderEventsForMailInput = текPostalOrderEventsForMailInput;
    текPostalOrderEventsForMail.AuthorizationHeader = текAuthorizationHeader;
    
    //++_Получим ответ от сервера
    ОтветОтСервера = текСервис.PostalOrderEventsForMail(текPostalOrderEventsForMail);
Показать


Правда всё равно вылетает ошибка:
При вызове веб-сервиса произошла ошибка. Ошибка вызова операции сервиса:  {<noindex><a class="is-fancybox" href="/redirect.php?url=aHR0cDovL3J1c3NpYW5wb3N0Lm9yZy9vcGVyYXRpb25oaXN0b3J5" target="_blank" rel="nofollow">http://russianpost.org/operationhistory}:OperationHistory12:PostalOrderEventsForMail()
по причине:
При вызове веб-сервиса произошла ошибка. Неизвестная ошибка. Ошибка преобразования данных XDTO:
Чтение объекта типа: {<noindex><a class="is-fancybox" href="/redirect.php?url=aHR0cDovL3d3dy5ydXNzaWFucG9zdC5vcmcvUlRNL0RhdGFFeGNoYW5nZUVTUFAvRGF0YQ==" target="_blank" rel="nofollow">http://www.russianpost.org/RTM/DataExchangeESPP/Data}PostalOrderEventsForMaiOutput - [1,971]
Проверка дополнительного свойства:
    форма: Элемент
    имя: PostalOrderEvent
по причине:
Ошибка преобразования данных XDTO:
Чтение объекта типа: {<noindex><a class="is-fancybox" href="/redirect.php?url=aHR0cDovL3d3dy5ydXNzaWFucG9zdC5vcmcvUlRNL0RhdGFFeGNoYW5nZUVTUFAvRGF0YQ==" target="_blank" rel="nofollow">http://www.russianpost.org/RTM/DataExchangeESPP/Data}PostalOrderEventsForMaiOutput - [1,971]
Проверка дополнительного свойства:
    форма: Элемент
    имя: PostalOrderEvent
по причине:
Ошибка проверки данных XDTO:
Структура объекта не соответствует типу: {<noindex><a class="is-fancybox" href="/redirect.php?url=aHR0cDovL3d3dy5ydXNzaWFucG9zdC5vcmcvUlRNL0RhdGFFeGNoYW5nZUVTUFAvRGF0YQ==" target="_blank" rel="nofollow">http://www.russianpost.org/RTM/DataExchangeESPP/Data}PostalOrderEventsForMaiOutput
Показать


Правда есть подозрение, что это по причине кривого сервиса ПР... Буду мучать их техподдержку.
40. legzzi 30.05.17 20:06 Сейчас в теме
Друзья - поясните пожалуйста: тарифы и трекинг работает с данным сервисом http://tariff.russianpost.ru - верно?
41. Sibars 406 14.09.17 17:56 Сейчас в теме
Друзья, починил WSСсылку (Подменил на свою валидную схему xsd). Если кому надо создать ws-ссылку, что б нормально по SOAP получать информацию - велкам в личку - пришлю конфигурацию с ws-ссылкой)
42. user857965 07.11.17 16:41 Сейчас в теме
Люди, кто может поделится безлимитным логином паролем к api поштучного трекинга pochta.ru? Для безлимита ИП или ООО делать муторно.
44. DenisCh 08.02.18 08:44 Сейчас в теме
(42)а тебе 100 обращений в сутки не хватает, что ли?
45. user857965 09.02.18 11:42 Сейчас в теме
(44)
(42)а тебе 100 обращений в сутки не хватает, что ли?
+


Если спрашиваю, значит не хватает.
43. Roman_SE 9 08.02.18 06:41 Сейчас в теме
У кого-нибудь есть рабочий вариант? У меня ошибка авторизации во всех примерах ниже. В ЛК почты указан только логин на настройках, пробовал его и в логин И В ПАРОЛЬ и в оба... никак (
47. пользователь 27.04.20 11:08
Сообщение было скрыто модератором.
...
48. пользователь 28.04.20 12:17
Сообщение было скрыто модератором.
...
49. user1288704 26.03.21 15:00 Сейчас в теме
Выдает вот такие ошибки. Пример с сайта почты России.
Прикрепленные файлы:
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот