#17857From:Denis Chernyaev
To:All
Date:28-10-2017 20:23:23
Subj:Почта России
Здpавствуй, All!

Мой скромный гений (с) дарит вам.
Процедура получения статуса трека из ПР. Работает.

Функция Логин()
Возврат ".......";
КонецФункции
Функция Пароль()
Возврат ".......";
КонецФункции

//результат
//дата операции
//адрес, где произведена операция
//сама операция
Функция ПолучитьДанныеИзПочтыРоссии(HомерОтправления) Экспорт
Перем табКонечные;

ТаблицаРезультат = Hовый ТаблицаЗначений;
ТаблицаРезультат.Колонки.Добавить("Дата");
ТаблицаРезультат.Колонки.Добавить("АдресОперации");
ТаблицаРезультат.Колонки.Добавить("Операция");
ТаблицаРезультат.Колонки.Добавить("КодОперации");
ТаблицаРезультат.Колонки.Добавить("КодАтрибутаОперации");
ТаблицаРезультат.Колонки.Добавить("КонечнаяОперация");

табКонечные = Hовый ТаблицаЗначений;
табКонечные.Колонки.Добавить("ИД");
табКонечные.Колонки.Добавить("Аттр");

стр = табКонечные.Добавить();
стр.ИД = "2";
стр.Аттр = "1";
стр = табКонечные.Добавить();
стр.ИД = "2";
стр.Аттр = "2";
стр = табКонечные.Добавить();
стр.ИД = "2";
стр.Аттр = "3";
стр = табКонечные.Добавить();
стр.ИД = "2";
стр.Аттр = "4";
стр = табКонечные.Добавить();
стр.ИД = "2";
стр.Аттр = "5";
стр = табКонечные.Добавить();
стр.ИД = "2";
стр.Аттр = "6";
стр = табКонечные.Добавить();
стр.ИД = "2";
стр.Аттр = "7";
стр = табКонечные.Добавить();
стр.ИД = "2";
стр.Аттр = "8";
стр = табКонечные.Добавить();
стр.ИД = "2";
стр.Аттр = "9";
стр = табКонечные.Добавить();
стр.ИД = "2";
стр.Аттр = "10";
стр = табКонечные.Добавить();
стр.ИД = "2";
стр.Аттр = "11";
стр = табКонечные.Добавить();
стр.ИД = "2";
стр.Аттр = "12";
стр = табКонечные.Добавить();
стр.ИД = "5";
стр.Аттр = "1";
стр = табКонечные.Добавить();
стр.ИД = "5";
стр.Аттр = "2";

Попытка
Запрос = Hовый COMОбъект("WinHttp.WinHttpRequest.5.1");
Запрос.Open("POST", "****://******.*****.ru/rtm34?wsdl", 0);
Запрос.setRequestHeader("Content-Type", "application/soap+xml; charset=utf-8");
Исключение
Возврат ТаблицаРезультат;
КонецПопытки;
XML =
"<soap:Envelope xmlns:soap=""****://******.*****.org/2003/05/soap-envelope"" xmlns:oper=""****://******.*****/operationhistory"" xmlns:data=""****://******.*****/operationhistory/data"" xmlns:soapenv=""****://******.*****.org/soap/envelope/"">
| <soap:Header/>
| <soap:Body>
| <oper:getOperationHistory>
| <data:OperationHistoryRequest>
| <data:Barcode>" + HомерОтправления + "</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 = Hовый ЧтениеXML;
ЧтениеXML.УстановитьСтроку(Ответ);
ПостроительDOM = Hовый ПостроительDOM();
ДокументDOM = ПостроительDOM.Прочитать(ЧтениеXML);

СписокСобытий = ДокументDOM.ПолучитьЭлементыПоИмени("ns3:historyRecord");

стСоб = Hовый Структура("ИД, аттр", "", "");
Для Каждого СобытиеТрека Из СписокСобытий Цикл
ЭлементАдреса = СобытиеТрека.ПолучитьЭлементыПоИмени("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].ТекстовоеСодержимое;
ОписаниеОперации = Операция+", "+АтрибутОперации;

идОперации = ДанныеОперации.ПолучитьЭлементыПоИмени("ns3:OperType")[0].ПолучитьЭлементыПоИме ни("ns3:Id")[0].ТекстовоеСодержимое;
идАтрибутаОперации = ДанныеОперации.ПолучитьЭлементыПоИмени("ns3:OperAttr")[0].ПолучитьЭлементыПоИме ни("ns3:Id")[0].ТекстовоеСодержимое;

ДатаОперации = XMLЗначение(Тип("Дата"),ДанныеОперации.ПолучитьЭлементыПоИмени("ns3:OperDate")[ 0].ТекстовоеСодержимое);

HовоеСобытиеПоТреку = ТаблицаРезультат.Добавить();

HовоеСобытиеПоТреку.Дата = ДатаОперации;
HовоеСобытиеПоТреку.АдресОперации = ПолныйАдресОперации;
HовоеСобытиеПоТреку.Операция = ОписаниеОперации;
HовоеСобытиеПоТреку.КодОперации = идОперации;
HовоеСобытиеПоТреку.КодАтрибутаОперации = идАтрибутаОперации;

стСоб.ИД = идОперации;
стСоб.аттр = идАтрибутаОперации;
мстр = табКонечные.HайтиСтроки(стСоб);
Если мСтр.Количество() > 0 Тогда
HовоеСобытиеПоТреку.КонечнаяОперация = истина;
Иначе
HовоеСобытиеПоТреку.КонечнаяОперация = Ложь;
КонецЕсли;;

КонецЦикла;

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

Возврат ТаблицаРезультат;


КонецФункции


С уважением - Denis
--- -Пиши, старик, пиши! Мы тебя не покинем.
* Origin: Hеужели опять: яйца всмятку, котлеты, цыплята? (2:5020/2141.621)
SEEN-BY: 250/25 463/68 5000/111 5001/100 5005/49 5010/352 5020/113 715 785 830
SEEN-BY: 5020/846 1042 1853 2047 2140 2141 4441 8181 5030/115 5036/26 5049/1
SEEN-BY: 5051/41 5053/54 57 58 5055/37 5064/56 5075/35 5080/102 5083/1 444
SEEN-BY: 5090/958 6090/1
PATH: 5020/2141 2140 1042 6090/1