Отслеживание (трейсинг)

Функция ПолучитьТекстЗапросПоЗаказамORDERNUM(Заказы, Заказчик, Ключ)

ЗаписьXML = Новый ЗаписьXML;

ЗаписьXML. УстановитьСтроку();

//ЗаписьXML. ЗаписатьОбъявлениеXML();

ЗаписьXML. ЗаписатьНачалоЭлемента("soap:Envelope");

ЗаписьXML. ЗаписатьАтрибут("xmlns:soap", "http://schemas. xmlsoap. org/soap/envelope/");

ЗаписьXML. ЗаписатьАтрибут("xmlns:ns0", "http://dpd. ru/ws/order2/2012-04-04");

ЗаписьXML. ЗаписатьНачалоЭлемента("soap:Header");

ЗаписьXML. ЗаписатьКонецЭлемента();

ЗаписьXML. ЗаписатьНачалоЭлемента("soap:Body");

ЗаписьXML. ЗаписатьНачалоЭлемента("ns0:getOrderStatus");

ЗаписьXML. ЗаписатьАтрибут("xmlns:xs", "http://www. w3.org/2001/XMLSchema");

ЗаписьXML. ЗаписатьАтрибут("xmlns:xsi", "http://www. w3.org/2001/XMLSchema-instance");

ЗаписьXML. ЗаписатьНачалоЭлемента("orderStatus");

ЗаписьXML. ЗаписатьНачалоЭлемента("auth");

ЗаписьXML. ЗаписатьНачалоЭлемента("clientNumber");

ЗаписьXML. ЗаписатьТекст(Заказчик);

ЗаписьXML. ЗаписатьКонецЭлемента();

ЗаписьXML. ЗаписатьНачалоЭлемента("clientKey");

ЗаписьXML. ЗаписатьТекст(Ключ);

ЗаписьXML. ЗаписатьКонецЭлемента();

ЗаписьXML. ЗаписатьКонецЭлемента();

Для Каждого Заказ Из Заказы Цикл

ЗаписьXML. ЗаписатьНачалоЭлемента("order");

ЗаписьXML. ЗаписатьНачалоЭлемента("orderNumberInternal");

ЗаписьXML. ЗаписатьТекст(Заказ);

ЗаписьXML. ЗаписатьКонецЭлемента();

ЗаписьXML. ЗаписатьКонецЭлемента();

КонецЦикла;

ЗаписьXML. ЗаписатьКонецЭлемента();

ЗаписьXML. ЗаписатьКонецЭлемента();

ЗаписьXML. ЗаписатьКонецЭлемента();

ЗаписьXML. ЗаписатьКонецЭлемента();

ТекстXML = ЗаписьXML. Закрыть();

Возврат ТекстXML;

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

Функция ОтправитьЗапросWEBСервису(URL, ТекстXML, Таймаут = 10000)

Если ПустаяСтрока(ТекстXML) Тогда

Возврат "";

КонецЕсли;

WinHttp = Новый COMОбъект("WinHttp. WinHttpRequest.5.1");

WinHttp. SetTimeouts(Таймаут, Таймаут, Таймаут, Таймаут);

WinHttp. Option(2,"utf-8");

WinHttp. Open("POST",URL);

WinHttp. setRequestHeader("Content-Type","text/xml; charset=utf-8");

Сообщить("Начало - " + ТекущаяДата());

Сообщить("URL: " + URL);

//Сообщить("ТекстXML запроса: " + ТекстXML);

Попытка

WinHttp. Send(ТекстXML);

Сообщить("Завершение - " + ТекущаяДата());

Если WinHttp. Status = 200 Тогда

Сообщить("Ответ: " + WinHttp. ResponseText);

Возврат(WinHttp. ResponseText);

Иначе

Сообщить("Ошибка сервера: " + WinHttp. Status + " " + WinHttp. ResponseText + " " + WinHttp. StatusText, СтатусСообщения. Важное);

Возврат("");

КонецЕсли;

Исключение

Сообщить(ОписаниеОшибки(), СтатусСообщения. Важное);

Возврат("");

КонецПопытки;

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