//*******************************************
Процедура ВыгрузитьМаршруты()
ДокЗапрос = Анализатор.СоздатьДокумент();
ArrayOfDEX_Import = ДокЗапрос.СоздатьПодчиненныйЭлемент("ArrayOfDEX_Import");
ТТ.Очистить();
ТТ.НоваяКолонка("МаршрутныйЛист", "Строка", 25, ," Документ");
ТТ.НоваяКолонка("АвтомобильВодитель", "Строка", 30,,"Автомобиль/Водитель");
ТТ.НоваяКолонка("Клиент", "Строка",50,,"Клиент (тип)");
ТТ.НоваяКолонка("Заявка");
ТТ.НоваяКолонка("НомерЗаявки");
ТТ.НоваяКолонка("Вес","Число", 10,3);
ТТ.НоваяКолонка("Пробег","Число", 10,2);
ТТ.НоваяКолонка("Приезд", "Строка", 10);
ТТ.НоваяКолонка("Время","Число", 10,0);
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|ОбрабатыватьДокументы Проведенные;
|Период с ДатаМаршрутов по ДатаМаршрутов;
|ТекДок = Документ.МАРШРУТНЫЙЛИСТ.ТекущийДокумент;
|Водитель = Документ.МАРШРУТНЫЙЛИСТ.Водитель;
|Экспедитор = Документ.МАРШРУТНЫЙЛИСТ.Экспедитор;
|НомерЗаявкиТА=Документ.МАРШРУТНЫЙЛИСТ.НомерЗаявкиТА;
|Клиент = Документ.МАРШРУТНЫЙЛИСТ.Клиент;
|Заявка = Документ.МАРШРУТНЫЙЛИСТ.Заявка;
|Вес = Документ.МАРШРУТНЫЙЛИСТ.Заявка.Вес;
|Группировка ТекДок;
|Группировка Клиент без групп;
|Группировка Заявка;
|Условие(ТекДок в ВыбМЛ);
|"//}}ЗАПРОС
;
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
Пока Запрос.Группировка("ТекДок")=1 Цикл
Пока Запрос.Группировка("Клиент")=1 Цикл
ТТ.НоваяСтрока();
ТТ.Клиент =Запрос.Клиент.Наименование;
ТТ.НомерЗаявки=Запрос.НомерЗаявкиТА;
ТТ.МаршрутныйЛист = ""+Запрос.ТекДок.НомерДок+ " от "+Запрос.ТекДок.ДатаДок;
ТТ.АвтомобильВодитель = ""+Запрос.ТекДок.Автомобиль.Наименование+" / "+Запрос.ТекДок.Водитель.Наименование;
ТТ.Заявка=Запрос.Заявка;
КонецЦикла;
КонецЦикла;
Пока Запрос.Группировка("ТекДок")=1 Цикл
Пока Запрос.Группировка("Клиент")=1 Цикл
DEX_Import = ArrayOfDEX_Import.СоздатьПодчиненныйЭлемент("DEX_Import");
Route_Num = DEX_Import.СоздатьПодчиненныйЭлемент("Route_Num");
Route_Num.Текст = Запрос.ТекДок.НомерДок;
Auto_Id = DEX_Import.СоздатьПодчиненныйЭлемент("Auto_Id");
Auto_Id.Значение = Запрос.ТекДок.Автомобиль.Код;
Driver_Id= DEX_Import.СоздатьПодчиненныйЭлемент("Driver_Id");
Driver_Id.Значение = Запрос.ТекДок.Водитель.Код;
Dispatcher_Id= DEX_Import.СоздатьПодчиненныйЭлемент("Dispatcher_Id");
Dispatcher_Id.Значение = Запрос.ТекДок.Экспедитор.Код;
RouteTime_B= DEX_Import.СоздатьПодчиненныйЭлемент("RouteTime_B");
RouteTime_B.Текст = СокрЛП(Запрос.ТекДок.Выезд);
Pos_Id = DEX_Import.СоздатьПодчиненныйЭлемент("Pos_Id");
Pos_Id.Значение =Запрос.ТекДок.НомерСтроки;
////////по маршрутному листу
Comp_Id = DEX_Import.СоздатьПодчиненныйЭлемент("Comp_Id");
Comp_Id.Значение = Запрос.ТекДок.Клиент.КодСоответствия;
Comp_Name = DEX_Import.СоздатьПодчиненныйЭлемент("Comp_Name");
Comp_Name.Текст =Запрос.ТекДок.Клиент. Наименование;
Address = DEX_Import.СоздатьПодчиненныйЭлемент("Address");
Address.Текст =Запрос.ТекДок.Клиент.ПочтовыйАдрес;
lat = DEX_Import.СоздатьПодчиненныйЭлемент("lat");
lat.Значение =Число(Запрос.ТекДок.Клиент.Широта); // Широта, если известна
lng = DEX_Import.СоздатьПодчиненныйЭлемент("lng");
lng.Значение =Число(Запрос.ТекДок.Клиент.Долгота); // Долгота, если известна
TimeWork_Beg = DEX_Import.СоздатьПодчиненныйЭлемент("TimeWork_Beg");
TimeWork_Beg.Текст = СокрЛП(Запрос.ТекДок.Клиент.ВремяРаботыНачало);
TimeWork_End = DEX_Import.СоздатьПодчиненныйЭлемент("TimeWork_End");
TimeWork_End.Текст = СокрЛП(Запрос.ТекДок.Клиент.ВремяРаботыКонец);
TimeBreak_Beg = DEX_Import.СоздатьПодчиненныйЭлемент("TimeBreak_Beg");
TimeBreak_Beg.Текст =Сред((Запрос.ТекДок.Клиент.ВремяОбедаНачало), 12,5);
TimeBreak_End = DEX_Import.СоздатьПодчиненныйЭлемент("TimeBreak_End");
TimeBreak_End.Текст = Сред((Запрос.ТекДок.Клиент.ВремяОбедаКонец), 12,5);
Unload_Time = DEX_Import.СоздатьПодчиненныйЭлемент("Unload_Time");
Unload_Time.Значение = СокрЛП(Запрос.ТекДок.ОрганизационоеВремя);
// НомерЗаявкиТА="НЕТ"+"-"+(Запрос.Клиент.КодСоответствия+ДатаМаршрутов);
Request_Num = DEX_Import.СоздатьПодчиненныйЭлемент("Request_Num");
Request_Num.Текст = Запрос.ТекДок.НомерЗаявкиТА;
QtyW = DEX_Import.СоздатьПодчиненныйЭлемент("QtyW");
QtyW.Значение = Запрос.ТекДок.Вес;
CompGroup_Id = DEX_Import.СоздатьПодчиненныйЭлемент("CompGroup_Id");
CompGroup_Id.Значение = Запрос.ТекДок.Клиент.Маршрут.КодСоответствия;
CompGroup_Name = DEX_Import.СоздатьПодчиненныйЭлемент("CompGroup_Name");
CompGroup_Name.Текст =Запрос.ТекДок.Клиент. Маршрут.Наименование;
ProductGroup_Id = DEX_Import.СоздатьПодчиненныйЭлемент("ProductGroup_Id");
ProductGroup_Id.Значение = 0; // Группа товаров
КонецЦикла;
КонецЦикла;
СтрРез = "";
ПараметрыЗапроса = "Session_Ident="+ИДСессии+
"&Date_Data="+Формат(ДатаМаршрутов, "ДДДММГГГГ")+"&format=xml&Comps=<?xml version=""1.0""?>" +
ПреобразоватьСтрокуВУТФ8(ДокЗапрос.ЭлементДокумента.ПредставлениеXML);
Соединение.ОтправитьДляОбработки(АдресСервиса + "/DEX_Import_Routes_JSON", ПараметрыЗапроса, 2, СтрРез, 1);
РезультатЗагрузки = ПреобразоватьСтрокуИзУТФ8(СтрРез);
КонецПроцедуры //**************************************
Подскажите пожалуйста как доработать ПараметрыЗапроса согласно этих данных:
Вид запроса:
POST
Описание:
Передает на сервер список готовых маршрутов. Данные передаются в виде списка маршрутов и списка точек для каждого из этих маршрутов.
Команда:
DEX_Import_Routes_JSON
Параметры:
● Session_Ident - идентификатор сессии
● Date_Data - дата общего списка заявок. Формат: "dd.MM.yyyy"
● Ext_Ident - идентификатор всего списка заявок (не обязательный)
● TSM_Calc - действие, которое нужно выполнить с загруженными маршрутами
(0 - посчитать маршрут, без оптимизации | 1 - оптимизировать маршрут), параметр не обязательный, по умолчанию расчет не выполняется
● Add_Template - добавлять шаблон маршрута (0 или 1, не обязательный, по умолчанию добавляется)
● Remove - удалить или нет загружаемые маршруты (0 или 1, не обязательный, по умолчанию 0)
● SyncComps - выполнять синхронизацию точек, или точки уже точно есть в системе (0 или 1, не обязательный, по умолчанию 0)
● Update_GeoCoord - обновлять или нет координаты точек (широты и долготу), на те которые загружаются из учетной системы (по умолчанию 1)
● Routes - список маршрутов
● Comps - список точек маршрута.
Возвращаемый результат: JSON