Версия для печати темы (https://pro1c.org.ua/index.php?s=76e66ab72f1f5e03238c703789baaf58&showtopic=29853)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 7.7 _ прекращена работа программы 1c v7 starter program multi-user

Автор: inna.innainna84 18.05.16, 12:03

При работе с этим отчетом вылетаю из базы не сразу а через какое-то время.
Можно ли как-то протестировать и узнать где в коде ошибка отладчиком пробывала нигде не останавливается.

Код

Перем Маршруты;
Перем Соединение;
Перем Анализатор;

Функция ПреобразоватьСтрокуВУТФ8(Стр)
    Длина=СтрДлина(Стр);
    Итог="";
    Для Н=1 По Длина Цикл
        Знак=Сред(Стр,Н,1);
        Код=КодСимв(Знак);
        Если Код<128 Тогда
            Итог=Итог+Знак;
        Иначе
            Если (Код>=КодСимв("А"))И(Код<=КодСимв("п")) Тогда
                Итог=Итог+Симв(208)+Симв(144+Код-КодСимв("А"));
            ИначеЕсли (Код>=КодСимв("р"))И(Код<=КодСимв("я")) Тогда
                Итог=Итог+Симв(209)+Симв(128+Код-КодСимв("р"));
            ИначеЕсли (Знак="ё") Тогда
                Итог=Итог+Симв(209)+Симв(145);
            ИначеЕсли (Знак="Ё") Тогда
                Итог=Итог+Симв(208)+Симв(129);
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;
    Возврат Итог;
КонецФункции

Функция ПреобразоватьСтрокуИзУТФ8(Стр)
    Длина=СтрДлина(Стр);
    Итог="";
    Для Н=1 По Длина Цикл
        Знак=Сред(Стр,Н,1);
        Код=КодСимв(Знак);
        Если Код<128 Тогда
            Итог=Итог+Знак;
        ИначеЕсли (Код>=128)И(Код<192) Тогда
        Иначе
            Н=Н+1;
            Знак2=Сред(Стр,Н,1);
            Код2=КодСимв(Знак2);
            Если Код=208 Тогда
                Если Код2=129 Тогда Итог=Итог+"Ё";
                Иначе Итог=Итог+Симв(КодСимв("А")+Код2-144);
                КонецЕсли;
            ИначеЕсли Код=209 Тогда
                Если Код2=145 Тогда Итог=Итог+"ё";
                Иначе Итог=Итог+Симв(КодСимв("р")+Код2-128);
                КонецЕсли;
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;
    Возврат Итог;
КонецФункции

//*******************************************
Процедура ПАС()
    СтрРез = "";
    Соединение.ПолучитьКакСтроку(СокрЛП(БазовыйАдрес) + "/config?req=srv", СтрРез);
    
    АдресСервиса = СтрРез;
    
КонецПроцедуры

Процедура Авторизация()

    СтрРез = "";
    СтрЗапрос = "type=login&format=xml&email=" + Логин + "&pass="+Пароль;
    
    Соединение.ОтправитьДляОбработки(АдресСервиса + "/DEX_UserAuthorization", СтрЗапрос, 2, СтрРез, 2);
    
    Если Фл = 1 Тогда
        РезультатЗагрузки = ПреобразоватьСтрокуИзУТФ8(СтрРез);    
    Иначе
        РезультатЗагрузки = "";
    КонецЕсли;
    
    ДокРез = Анализатор.СоздатьДокумент();
    ДокРез.ЗагрузитьИзСтроки(СтрРез);
    
    ИДСессии = ДокРез.ВыбратьУзел("//Session_Ident").Текст;
    
КонецПроцедуры


Функция УжеЗагружен(ВыбДатаМаршрутов, ВыбНомерМаршрута)
    
    Док = ПолучитьПустоеЗначение("Документ.МАРШРУТНЫЙЛИСТ");
    
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)    
    |ОбрабатыватьДокументы Все;
    |Период с ДатаМаршрутов по ДатаМаршрутов;
    |ТекДок = Документ.МАРШРУТНЫЙЛИСТ.ТекущийДокумент;
    |НомМаршрута = Документ.МАРШРУТНЫЙЛИСТ.НомерМаршрута;
    |Группировка ТекДок;
    |"//}}ЗАПРОС
;
    
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат Док;
    КонецЕсли;
    
    Пока Запрос.Группировка()=1 Цикл  
        Если (Запрос.НомМаршрута = ВыбНомерМаршрута) И (Запрос.ТекДок.ПометкаУдаления() <> 1) Тогда  
            Док = Запрос.ТекДок;    
            Возврат Док;
        КонецЕсли;
    КонецЦикла;    
    
    Возврат Док;        
    
КонецФункции    // гл                        
        
//*******************************************
Процедура ИзменениеСпМЛ(зн)
    Если зн=1 тогда  
        Конт = "";
        ОткрытьПодбор("Журнал.Транспорт",,Конт);    
        //УстановитьИнтервал (ДатаДок, ДатаДок,1);
        
    ИначеЕсли зн=2 тогда
            Стр = ВыбМЛ.ТекущаяСтрока();
            Если стр>0 тогда  
                ВыбМЛ.УдалитьЗначение(Стр);
            КонецЕсли;    
    ИначеЕсли зн=3 тогда
            ВыбМЛ.УдалитьВсе();  
    КонецЕсли;
КонецПроцедуры  
    

//*******************************************
Процедура ОбработкаПодбора(Эл,Конт)        
    Если Эл.Вид()="МАРШРУТНЫЙЛИСТ" Тогда
        Если ВыбМЛ.Принадлежит(Эл.ТекущийДокумент()) = 1 Тогда
            Сообщить("Этот Документ уже присутствует в списке");      
            СтатусВозврата(0);
            Возврат;
        КонецЕсли;
        ВыбМЛ.ДобавитьЗначение(Эл.ТекущийДокумент(), "МЛ № "+Эл.ТекущийДокумент().НомерДок+ "("+Эл.ТекущийДокумент().ДатаДок+")"+Эл.ТекущийДокумент().Менеджер);       

    КонецЕсли;
КонецПроцедуры
              
//*******************************************

Процедура ЗаполнитьПоБыбМЛиОтправить()

    
    
    ДокЗапрос = Анализатор.СоздатьДокумент();
    ArrayOfDEX_Import = ДокЗапрос.СоздатьПодчиненныйЭлемент("ArrayOfDEX_Import");
    
     ТТ.Очистить();

    
    ТТ.НоваяКолонка("МаршрутныйЛист", "Строка", 25, ," Документ");
    ТТ.НоваяКолонка("АвтомобильВодитель", "Строка", 30,,"Автомобиль/Водитель");
    ТТ.НоваяКолонка("Клиент", "Строка",50,,"Клиент (тип)");
    ТТ.НоваяКолонка("Заявка");    
    ТТ.НоваяКолонка("НомерЗаявки");
    ТТ.НоваяКолонка("Вес","Число", 10,3);
    ТТ.НоваяКолонка("Пробег","Число", 10,2);
    ТТ.НоваяКолонка("Приезд", "Строка", 10);
    ТТ.НоваяКолонка("Время","Число", 10,0);  
    
    
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)    
    |ОбрабатыватьДокументы Проведенные;
    |Период с ДатаМаршрутов по ДатаМаршрутов;
    |ТекДок = Документ.МАРШРУТНЫЙЛИСТ.ТекущийДокумент;
    |Водитель = Документ.МАРШРУТНЫЙЛИСТ.Водитель;
    |Экспедитор = Документ.МАРШРУТНЫЙЛИСТ.Экспедитор;
    |НомерЗаявкиТА=Документ.МАРШРУТНЫЙЛИСТ.НомерЗаявкиТА;
    |Клиент = Документ.МАРШРУТНЫЙЛИСТ.Клиент;
    |Заявка = Документ.МАРШРУТНЫЙЛИСТ.Заявка;
    |Вес = Документ.МАРШРУТНЫЙЛИСТ.Заявка.Вес;  
    |Группировка ТекДок;
    |Группировка Клиент без групп;
    |Группировка НомерЗаявкиТА;
    |Условие(ТекДок в ВыбМЛ);
    |"//}}ЗАПРОС
;
    
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;
    
    
        
        
    Пока Запрос.Группировка("ТекДок")=1 Цикл
    Пока Запрос.Группировка("Клиент")=1 Цикл
    Пока Запрос.Группировка("НомерЗаявкиТА")=1 Цикл               
            ТТ.НоваяСтрока();
            
                ТТ.Клиент =Запрос.Клиент.Наименование;     
                ТТ.НомерЗаявки=Запрос.НомерЗаявкиТА;  
                ТТ.МаршрутныйЛист = ""+Запрос.ТекДок.НомерДок+ " от "+Запрос.ТекДок.ДатаДок;
                ТТ.АвтомобильВодитель = ""+Запрос.ТекДок.Автомобиль.Наименование+" / "+Запрос.ТекДок.Водитель.Наименование;
             КонецЦикла;        
    КонецЦикла;    
КонецЦикла;        
        
    Пока Запрос.Группировка("ТекДок")=1 Цикл
    Пока Запрос.Группировка("Клиент")=1 Цикл        
            DEX_Import = ArrayOfDEX_Import.СоздатьПодчиненныйЭлемент("DEX_Import");      
            
            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.Текст =Запрос.Клиент. Маршрут.Наименование;
            
        
                        
            
        КонецЦикла;        

        КонецЦикла;
    
           СтрРез = "";
    
    
    
    //"c:\response.xml";
    //Текст = СоздатьОбъект("Текст");
    //Текст.ДобавитьСтроку("Session_Ident="+ИДСессии+"&Date_Data="+Формат(ДатаМаршрутов, "ДДДММГГГГ")+"&format=xml&DTRoutes=<?xml version='1.0'?>");
    ///Текст.ДобавитьСтроку(ПреобразоватьСтрокуВУТФ8(ДокЗапрос.ЭлементДокумента.ПредставлениеXML));
    //              
    //ИмяФайлаЗапроса = "c:\query.txt";
    //Текст.Записать(ИмяФайлаЗапроса);
    //      
          ПараметрыЗапроса = "Session_Ident="+ИДСессии+
        "&Date_Data="+Формат(ДатаМаршрутов, "ДДДММГГГГ")+"&format=xml&Comps=<?xml version=""1.0""?>" +
        ПреобразоватьСтрокуВУТФ8(ДокЗапрос.ЭлементДокумента.ПредставлениеXML);
    
        
    Соединение.ОтправитьДляОбработки(АдресСервиса + "/DEX_Import_Request_JSON", ПараметрыЗапроса, 2, СтрРез, 1);
    
    РезультатЗагрузки = ПреобразоватьСтрокуИзУТФ8(СтрРез);
    
КонецПроцедуры  //**************************************    
      
Процедура ВыгрузитьИПровестиМаршруты()
    
//    ДокЗапрос = Анализатор.СоздатьДокумент();
//   ДокЗапрос1 = Анализатор.СоздатьДокумент();    
    
     ТТ.Очистить();

    
    ТТ.НоваяКолонка("МаршрутныйЛист", "Строка", 25, ," Документ");
    ТТ.НоваяКолонка("АвтомобильВодитель", "Строка", 30,,"Автомобиль/Водитель");
    ТТ.НоваяКолонка("Клиент", "Строка",50,,"Клиент (тип)");
    ТТ.НоваяКолонка("Заявка");    
    ТТ.НоваяКолонка("НомерЗаявки");
    ТТ.НоваяКолонка("Вес","Число", 10,3);
    ТТ.НоваяКолонка("Пробег","Число", 10,2);
    ТТ.НоваяКолонка("Приезд", "Строка", 10);
    ТТ.НоваяКолонка("Время","Число", 10,0);  
    
    
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)    
    |ОбрабатыватьДокументы Проведенные;
    |Период с ДатаМаршрутов по ДатаМаршрутов;
    |ТекДок = Документ.МАРШРУТНЫЙЛИСТ.ТекущийДокумент;
    |Водитель = Документ.МАРШРУТНЫЙЛИСТ.Водитель;
    |Экспедитор = Документ.МАРШРУТНЫЙЛИСТ.Экспедитор;
    |НомерЗаявкиТА=Документ.МАРШРУТНЫЙЛИСТ.НомерЗаявкиТА;
    |НомерСтроки=Документ.МАРШРУТНЫЙЛИСТ.ТекущийДокумент.НомерСтроки;
    |Клиент = Документ.МАРШРУТНЫЙЛИСТ.Клиент;
    |Заявка = Документ.МАРШРУТНЫЙЛИСТ.Заявка;
    |Вес = Документ.МАРШРУТНЫЙЛИСТ.Заявка.Вес;
    |ОрганизационоеВремя = Документ.МАРШРУТНЫЙЛИСТ.ОрганизационоеВремя;
    |Группировка ТекДок;
    |Группировка Клиент без групп;
    |Группировка НомерЗаявкиТА;
    |Условие(ТекДок в ВыбМЛ);
    |"//}}ЗАПРОС
;
    
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;
    
      
        
        
    Пока Запрос.Группировка("ТекДок")=1 Цикл
        Пока Запрос.Группировка("Клиент")=1 Цикл
        Пока Запрос.Группировка("НомерЗаявкиТА")=1 Цикл    
            ТТ.НоваяСтрока();
            
            ТТ.Клиент =Запрос.Клиент.Наименование;     
            ТТ.НомерЗаявки=Запрос.НомерЗаявкиТА;  
            ТТ.МаршрутныйЛист = ""+Запрос.ТекДок.НомерДок+ " от "+Запрос.ТекДок.ДатаДок;
            ТТ.АвтомобильВодитель = ""+Запрос.ТекДок.Автомобиль.Наименование+" / "+Запрос.ТекДок.Водитель.Наименование;
            ТТ.Заявка=Запрос.Заявка;
        КонецЦикла;        
    КонецЦикла;  
КонецЦикла;        

    ДокЗапрос = Анализатор.СоздатьДокумент();
    ArrayOfDEX_Import_Routes = ДокЗапрос.СоздатьПодчиненныйЭлемент("ArrayOfDEX_Import_Routes");    
                                                      
    //newAttr = ДокЗапрос.createAttribute("xmlns:xsd");
    //newAttr.value = "http://www.w3.org/2001/XMLSchema";
    //ArrayOfDEX_Import_Routes.setAttributeNode(newAttr);
    //
    //newAttr = ДокЗапрос.createAttribute("xmlns:xsi");
    //newAttr.value = "http://www.w3.org/2001/XMLSchema-instance";
    //ArrayOfDEX_Import_Routes.setAttributeNode(newAttr);    
    
    Пока Запрос.Группировка("ТекДок")=1 Цикл  
        DEX_Import = ArrayOfDEX_Import_Routes.СоздатьПодчиненныйЭлемент("DEX_Import_Routes");
        
        
        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.Текст  = СокрЛП(Запрос.ТекДок.Выезд);
        RouteTime_B.Текст  = СокрЛП("08:00");
        
        НомерСтроки2=Запрос.ТекДок.Итог("НомерСтроки3");
        Pos_Id = DEX_Import.СоздатьПодчиненныйЭлемент("Pos_Id");
        Pos_Id.Значение = Число(НомерСтроки2);
        
        
        
                                
            Источник="НомерМаршрута-"+Route_Num.Значение+"-    Авто "+Auto_Id.Значение+"    Водитель- "+Driver_Id.Значение+"    Экспедитор- "+Dispatcher_Id.Значение+
                "    Выезд- "+RouteTime_B.Текст+    "   номерСтроки- "+  Pos_Id.Значение;
                Сообщить(Источник);
    
    КонецЦикла;
    
    ДокЗапрос1 = Анализатор.СоздатьДокумент();    
    ArrayOfDEX_Import_Comps = ДокЗапрос1.СоздатьПодчиненныйЭлемент("ArrayOfDEX_Import_Comps");    
    
    //newAttr = ДокЗапрос1.createAttribute("xmlns:xsd");
    //newAttr.value = "http://www.w3.org/2001/XMLSchema";
    //ArrayOfDEX_Import_Comps.setAttributeNode(newAttr);
    //
    //newAttr = ДокЗапрос1.createAttribute("xmlns:xsi");
    //newAttr.value = "http://www.w3.org/2001/XMLSchema-instance";
    //ArrayOfDEX_Import_Comps.setAttributeNode(newAttr);
    
     Пока Запрос.Группировка("ТекДок")=1 Цикл  
    
        Пока Запрос.Группировка("Клиент")=1 Цикл        
    
        Пока Запрос.Группировка("НомерЗаявкиТА")=1 Цикл
            ////////по маршрутному листу
            DEX_Import1 = ArrayOfDEX_Import_Comps.СоздатьПодчиненныйЭлемент("DEX_Import_Comps");
                    
            
            
            Route_Num = DEX_Import1.СоздатьПодчиненныйЭлемент("Route_Num");  
            
            //Если ПустоеЗначение(Route_Num.Текст)=0 Тогда
            //    
            //    Route_Num.Текст="";
            //Иначе;
            //    
                Route_Num.Текст  = Запрос.ТекДок.НомерДок;
            //    
            //КонецЕсли;
            //             
                    
                    
            Pos_Id = DEX_Import1.СоздатьПодчиненныйЭлемент("Pos_Id");
            Pos_Id.Значение =Запрос.НомерСтроки;                  
            
            Comp_Id = DEX_Import1.СоздатьПодчиненныйЭлемент("Comp_Id");
            Comp_Id.Значение = Запрос.Клиент.КодСоответствия;                
            
            CompType_Id = DEX_Import1.СоздатьПодчиненныйЭлемент("CompType_Id");
            CompType_Id.Значение = Число(0);
            
            Comp_Name =DEX_Import1.СоздатьПодчиненныйЭлемент("Comp_Name");
            Comp_Name.Текст =Запрос.Клиент.Наименование;
    
            Address = DEX_Import1.СоздатьПодчиненныйЭлемент("Address");
            Address.Текст =Запрос.Клиент.ПочтовыйАдрес;
            
                                    
            
            Unload_Time = DEX_Import1.СоздатьПодчиненныйЭлемент("Unload_Time");
            Unload_Time.Значение = Число(Запрос.ОрганизационоеВремя);        
            
        
            Request_Num = DEX_Import.СоздатьПодчиненныйЭлемент("Request_Num");
            Request_Num.Текст  = Запрос.НомерЗаявкиТА;
                    
            QtyW = DEX_Import.СоздатьПодчиненныйЭлемент("QtyW");
            QtyW.Значение =Число( Запрос.Вес);     
            
            ProductGroup_Id = DEX_Import.СоздатьПодчиненныйЭлемент("ProductGroup_Id");
            ProductGroup_Id.Значение = 0; // Группа товаров
            
          Источник1="Список накладных"+"НомерМаршрута-"+Route_Num.Значение+"    Клиент- "+Comp_Id.Значение +"    Типточки- "+CompType_Id.Значение+"    КлиентНаимен- "+Comp_Name.Текст+
                "    Адрес- "+Address.Текст+    "   номерСтроки- "+  Pos_Id.Значение+ "   номерЗаявки- "+  Request_Num.Текст+"   вес- "+  QtyW.Значение +"   орг.вермя- "+  Unload_Time.Значение;
                Сообщить(Источник1);
        КонецЦикла;        
    КонецЦикла;    
    КонецЦикла;
    
    СтрРез = "";
          
            
    ПараметрыЗапроса ="Session_Ident="+ИДСессии+
    "&Date_Data="+Формат(ДатаМаршрутов, "ДДДММГГГГ")+"&Add_Template=0&TSM_Calc=1&Remove=1&SyncComps=1&format=xml&Routes=<?xml version=""1.0""?>"+
    ПреобразоватьСтрокуИзУТФ8(ДокЗапрос.ЭлементДокумента.ПредставлениеXML)+
   "&Comps=<?xml version=""1.0""?>"+ПреобразоватьСтрокуИзУТФ8(ДокЗапрос1.ЭлементДокумента.ПредставлениеXML);

    Соединение.ОтправитьДляОбработки(АдресСервиса + "/DEX_Import_Routes_JSON", ПараметрыЗапроса, 2, СтрРез, 1);

    РезультатЗагрузки = ПараметрыЗапроса;
    ОтветЗагрузки = ПреобразоватьСтрокуИзУТФ8(СтрРез);
    
КонецПроцедуры  //**************************************    
  
              
Процедура ВыгрузитьКонтрагентов()            
    
    ТТ.Очистить();
    ДокЗапрос = Анализатор.СоздатьДокумент();
    ArrayOfDEX_Import = ДокЗапрос.СоздатьПодчиненныйЭлемент("ArrayOfDEX_Import");
    
    // Цикл по выборке
    // Для примера используем один эдемент
    
        
    Запрос=СоздатьОбъект("Запрос");
    
    ТекстЗапроса="
        |ПЕРИОД С ДатаМаршрутов По ДатаМаршрутов;
        |Клиент = Справочник.Контрагенты.ТекущийЭлемент;
        |Группировка Клиент без групп упорядочить по Клиент.Наименование;
           |";  
      
        СписокКонтрагентов = СоздатьОбъект("СписокЗначений");
             

          
          Если глФильтрПоСправочнику("Контрагенты",0,0,ВыбКатегорияКонтрагентов,0,0,СписокКонтрагентов,ТекстЗапроса,0,0,"Клиент,,,СписокКонтрагентов,,,,,")=0 Тогда
            Возврат;
        КонецЕсли;
           
        
        Если Запрос.Выполнить(ТекстЗапроса)=0 тогда
            Предупреждение("Запрос по Партиям не выполнился!");
            Возврат;
        КонецЕсли;  
        
          

        
         Пока Запрос.Группировка("Клиент")=1 Цикл  
        DEX_Import = ArrayOfDEX_Import.СоздатьПодчиненныйЭлемент("DEX_Import");      
            
            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.Значение =Число(Запрос.Клиент.Широта1); // Широта, если известна
        
            
            lng = DEX_Import.СоздатьПодчиненныйЭлемент("lng");
            lng.Значение =Число(Запрос.Клиент.Долгота1); // Долгота, если известна
        
        
            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.Значение = СокрЛП(Запрос.ТекДок.ОрганизационоеВремя);
    //    
    
           НомерЗаявкиТА2=(Запрос.Клиент.КодСоответствия+ДатаМаршрутов);
            Request_Num = DEX_Import.СоздатьПодчиненныйЭлемент("Request_Num");
            Request_Num.Текст  = НомерЗаявкиТА2;
        
            
            CompGroup_Id = DEX_Import.СоздатьПодчиненныйЭлемент("CompGroup_Id");
            CompGroup_Id.Значение = Запрос.Клиент.Маршрут.КодСоответствия;
            
            CompGroup_Name = DEX_Import.СоздатьПодчиненныйЭлемент("CompGroup_Name");
            CompGroup_Name.Текст =Запрос.Клиент. Маршрут.Наименование;
            
    
            
    КонецЦикла;                                                                                              


        СтрРез = "";

    
    //"c:\response.xml";
    //Текст = СоздатьОбъект("Текст");
    //Текст.ДобавитьСтроку("Session_Ident="+ИДСессии+"&Date_Data="+Формат(ДатаМаршрутов, "ДДДММГГГГ")+"&format=xml&Comps=<?xml version='1.0'?>");
    //Текст.ДобавитьСтроку(ПреобразоватьСтрокуВУТФ8(ДокЗапрос.ЭлементДокумента.ПредставлениеXML));
    //              
    //ИмяФайлаЗапроса = "c:\query.txt";
    //Текст.Записать(ИмяФайлаЗапроса);

    ПараметрыЗапроса = "Session_Ident="+ИДСессии+
        "&Date_Data="+Формат(ДатаМаршрутов, "ДДДММГГГГ")+"&format=xml&Comps=<?xml version=""1.0""?>" +
        ПреобразоватьСтрокуВУТФ8(ДокЗапрос.ЭлементДокумента.ПредставлениеXML);
    
        
    Соединение.ОтправитьДляОбработки(АдресСервиса + "/DEX_Import_Request_JSON", ПараметрыЗапроса, 2, СтрРез, 1);
    
    РезультатЗагрузки = ПреобразоватьСтрокуИзУТФ8(СтрРез);
    ОтветЗагрузки = ПреобразоватьСтрокуИзУТФ8(СтрРез);
    
    
КонецПроцедуры  //**************************************



Процедура ПолучитьМаршруты()
    //очищаем таблицу значений
    ТТ.Очистить();      
    ТТ.НоваяКолонка("МаршрутныйЛист", "Строка", 25, ," Документ");
    ТТ.НоваяКолонка("АвтомобильВодитель", "Строка", 30,,"Автомобиль/Водитель");
    ТТ.НоваяКолонка("Клиент", "Строка",50,,"Клиент (тип)");
    ТТ.НоваяКолонка("Заявка");
    ТТ.НоваяКолонка("НомерЗаявки");
    ТТ.НоваяКолонка("Вес","Число", 10,3);
    ТТ.НоваяКолонка("Пробег","Число", 10,2);
    ТТ.НоваяКолонка("Приезд", "Строка", 10);
    ТТ.НоваяКолонка("Время","Число", 10,0);
    
    СтрРез = "";
    Соединение.ПолучитьКакСтроку(АдресСервиса + "/DEX_Export_Response_JSON?Session_Ident="+ИДСессии+"&Date_Data="+Формат(ДатаМаршрутов, "ДДДММГГГГ")+"&format=xml"+"&AllComps=1&CompInfo=1", СтрРез);
    
    Если Фл = 1 Тогда
        РезультатЗагрузки = ПреобразоватьСтрокуИзУТФ8(СтрРез);    
    Иначе
        РезультатЗагрузки = "";
    КонецЕсли;
    
    Результат = СтрРез;
    
    XMLParser = СоздатьОбъект("Msxml2.DOMDocument");
    XMLParser.async = 0;
    
    XMLParser.loadXML(СтрРез);
    
    РежимСоединения = XMLParser.selectNodes("//ErrorResponse").item(0).Text;
    
    Если XMLParser.selectNodes("//ErrorResponse").item(0).Text <> "OK" Тогда
        Предупреждение("Ошибка. Данные не загружены.");
        Возврат;
    Иначе
        Если Фл = 0 Тогда
            РезультатЗагрузки = XMLParser.selectNodes("//ErrorResponse").item(0).Text;
        КонецЕсли;
    КонецЕсли;
    
    
    
    // нужно перебирать маршруты и создавать новые Документы
    
    ТЗМаршрутов = СоздатьОбъект("ТаблицаЗначений");
    ТЗМаршрутов.НоваяКолонка("НомерМаршрута");
    ТЗМаршрутов.НоваяКолонка("АвтоИд");
    ТЗМаршрутов.НоваяКолонка("КолвоТочек");
    ТЗМаршрутов.НоваяКолонка("ВодительИд");  
    ТЗМаршрутов.НоваяКолонка("ЭкспедиторИд");
    ТЗМаршрутов.НоваяКолонка("ВремяНач");
    ТЗМаршрутов.НоваяКолонка("ВремяОкон");
    ТЗМаршрутов.НоваяКолонка("ВремяДвиженияМин");
    ТЗМаршрутов.НоваяКолонка("ПробегМетр");
    
    Док = СоздатьОбъект("Документ.МАРШРУТНЫЙЛИСТ");
    Док1 = СоздатьОбъект("Документ.МАРШРУТНЫЙЛИСТ");
    ДокЗаявка = СоздатьОбъект("Документ.РасходнаяНакладная");
    СпрМашин = СоздатьОбъект("Справочник.Автомобили");
    СпрВодители = СоздатьОбъект("Справочник.ВодительЭкспедиторМенеджер");
    СпрКлиентов = СоздатьОбъект("Справочник.Контрагенты");      
    
    SelNodes = XMLParser.selectNodes("//DEX_Routes");
    
    Для ххх = 0 По SelNodes.Length - 1  Цикл
        nodeNode = SelNodes.Item(ххх);    
        
        
        Если nodeNode.childNodes.length > 0 Тогда
            ТЗМаршрутов.НоваяСтрока();
            Для хх = 0 По  nodeNode.childNodes.length - 1 Цикл
                
                Если nodeNode.childNodes(хх).nodeName = "Route_Num" Тогда                     
                    ТЗМаршрутов.НомерМаршрута = Число(nodeNode.childNodes(хх).Text);                     
                ИначеЕсли nodeNode.childNodes(хх).nodeName = "Auto_Id" Тогда                     
                    ТЗМаршрутов.АвтоИд = Число(nodeNode.childNodes(хх).Text);                    
                ИначеЕсли nodeNode.childNodes(хх).nodeName = "Count_Comps" Тогда                     
                    ТЗМаршрутов.КолвоТочек = Число(nodeNode.childNodes(хх).Text);
                ИначеЕсли nodeNode.childNodes(хх).nodeName = "Driver_Id" Тогда
                    ТЗМаршрутов.ВодительИд = Число(nodeNode.childNodes(хх).Text);
                ИначеЕсли nodeNode.childNodes(хх).nodeName = "Dispatcher_Id" Тогда
                    ТЗМаршрутов.ЭкспедиторИд = Число(nodeNode.childNodes(хх).Text);
                ИначеЕсли nodeNode.childNodes(хх).nodeName = "RouteTime_B" Тогда
                    ТЗМаршрутов.ВремяНач = Число(nodeNode.childNodes(хх).Text);
                ИначеЕсли nodeNode.childNodes(хх).nodeName = "RouteTime_E" Тогда
                    ТЗМаршрутов.ВремяОкон = Число(nodeNode.childNodes(хх).Text);
                ИначеЕсли nodeNode.childNodes(хх).nodeName = "Travel_Duration" Тогда
                    ТЗМаршрутов.ВремяДвиженияМин = Число(nodeNode.childNodes(хх).Text);
                ИначеЕсли nodeNode.childNodes(хх).nodeName = "distance" Тогда
                    ТЗМаршрутов.ПробегМетр = Число(nodeNode.childNodes(хх).Text);
                КонецЕсли;    
            КонецЦикла;
        КонецЕсли;
    КонецЦикла;     
    
    ТекМаршрут = 0;  
    
    SelNodes2 = XMLParser.selectNodes("//DEX_Comps");
    
    Для ххх = 0 По SelNodes2.Length - 1  Цикл
        nodeNode2 = SelNodes2.Item(ххх);        
        
        Если nodeNode2.childNodes.length > 0 Тогда
            Если Число(nodeNode2.selectNodes ("//Route_Num").item(ххх).Text) <> ТекМаршрут Тогда
                ТТ.НоваяСтрока();
                ТекМаршрут = Число(nodeNode2.selectNodes ("//Route_Num").item(ххх).Text);
                Попытка
                    Док.Записать();
                Исключение
                КонецПопытки;
                
                //проверка если уже импортирован маршрут
                ТекДокМаршрут = УжеЗагружен (ДатаМаршрутов, ТЗМаршрутов.НомерМаршрута);
                Если ПустоеЗначение(ТекДокМаршрут) = 1 Тогда
                    Док.Новый();
                    Док.ДатаДок= ДатаМаршрутов;
                    Док.Записать();
                Иначе
                    Если Вопрос("Маршрут № "+ТекМаршрут+" уже записан (Маршрутный лист № "+ТекДокМаршрут.Номердок+"). ПЕРЕЗАПИСАТЬ?", "Да+Нет") =  "Да" Тогда
                        Если Док1.НайтиПономеру(ТекДокМаршрут.НомерДок,ДатаМаршрутов) = 1 Тогда
                            Док = Док1;
                            Если Док.Проведен()=1 Тогда
                                Док.СделатьНеПроведенным();    
                            КонецЕсли;                      
                            Док.УдалитьСтроки();  

                            Док.Записать();    
                        КонецЕсли;
                    КонецЕсли;    
                КонецЕсли;
                
                Попытка
                    Док.Записать();
                    Сообщить("Записан документ "+ Док);    
                Исключение
                КонецПопытки;
                
                Если ПустоеЗначение(Док.номердок) = 0 Тогда
                    
                    Док.ДатаДок= ДатаМаршрутов;
                    Док.Автор = ИмяПользователя();
                    Док.Комментарий = "Автозагрузка";
                    Док.НомерМаршрута = ТЗМаршрутов.НомерМаршрута;
                    
                    стр = 0;
                    Если ТЗМаршрутов.НайтиЗначение(ТекМаршрут, стр,"НомерМаршрута") = 1 Тогда
                        ТЗМаршрутов.ПолучитьСтрокуПоНомеру(стр);    
                        Если СпрМашин.НайтиПоКоду(ТЗМаршрутов.АвтоИд) <> 1 Тогда
                            Сообщить("Не найден автомобиль с кодом "+ ТЗМаршрутов.АвтоИд);
                        Иначе
                            Док.Автомобиль = СпрМашин.ТекущийЭлемент();
                        КонецЕсли;                                                            
                        
                        Если СпрВодители.НайтиПоКоду(ТЗМаршрутов.ВодительИд) <> 1 Тогда
                            Сообщить("Не найден водитель с кодом "+ ТЗМаршрутов.ВодительИд);
                        Иначе
                            Док.Водитель = СпрВодители.ТекущийЭлемент();
                        КонецЕсли;                                                            
                        
                        Если СпрВодители.НайтиПоКоду(ТЗМаршрутов.ЭкспедиторИд) <> 1 Тогда
                            Сообщить("Не найден экспедитор с кодом "+ ТЗМаршрутов.ЭкспедиторИд);
                        Иначе
                            Док.Экспедитор = СпрВодители.ТекущийЭлемент();
                        КонецЕсли;        
                        
                        Док.ДатаВыезда = ДатаМаршрутов;
                        Док.ДатаВозвр  = ДатаМаршрутов;
                        
                        Док.Выезд = Число(""+Сред(ТЗМаршрутов.ВремяНач,9,2) + "." + Сред(ТЗМаршрутов.ВремяНач,11,2) );
                        Док.Возвр = Число(""+Сред(ТЗМаршрутов.ВремяОкон,9,2) + "." + Сред(ТЗМаршрутов.ВремяОкон,11,2) );
                        
                        КолвоМин = ТЗМаршрутов.ВремяОкон - ТЗМаршрутов.ВремяНач;
                        
                        Док.ВсегоВРаботеВ = КолвоМин/100;
                        
                        Док.ТочекМаршрута = ТЗМаршрутов.КолвоТочек;
                        Док.ПробегПлан = ТЗМаршрутов.ПробегМетр/1000;
                        Док.Длительность = КолвоМин / 100;
                        
                    КонецЕсли;
                КонецЕсли;
            КонецЕсли;
            
            Если ПустоеЗначение(Док.номердок) = 0 Тогда
                Док.НоваяСтрока();
                
                ТекКлиент = Число(nodeNode2.selectNodes ("//Comp_Id").item(ххх).Text);
                Если СпрКлиентов.НайтиПоРеквизиту("КодСоответствия",ТекКлиент,1) = 0 Тогда
                //    Сообщить("Контрагент с кодом соответствия "+ ТекКлиент+" не найден.");  
                    Сообщить("Контрагент с кодом соответствия "+ ТекКлиент+" не найден. Будет создан.");  
                    СпрКлиентов.Новый();
                    СпрКлиентов.Наименование = ПреобразоватьСтрокуИзУТФ8(СокрЛП(nodeNode2.selectNodes ("//Comp_Name").item(ххх).Text));
                    СпрКлиентов.ПочтовыйАдрес = ПреобразоватьСтрокуИзУТФ8(СокрЛП(nodeNode2.selectNodes ("//Address").item(ххх).Text));
                    СпрКлиентов.КодСоответствия = Число(nodeNode2.selectNodes ("//Comp_Id").item(ххх).Text);
                    СпрКлиентов.Широта = Число(nodeNode2.selectNodes ("//lat").item(ххх).Text);
                    СпрКлиентов.Долгота = Число(nodeNode2.selectNodes ("//lng").item(ххх).Text);  
                    Если Число(nodeNode2.selectNodes ("//CompType_Id").item(ххх).Text) = 1 Тогда
                        СпрКлиентов.НеИспользуется = 1;
                    КонецЕсли;
                        
                    СпрКлиентов.Записать();
                    
                КонецЕсли;
                
                Док.Клиент = СпрКлиентов.ТекущийЭлемент();
                ТипСклад = "Склад";
                Если Число(nodeNode2.selectNodes ("//CompType_Id").item(ххх).Text) = 0 Тогда                                  
                    ТипСклад = "";
                    ТекЗаявка = ПреобразоватьСтрокуИзУТФ8(СокрЛП(nodeNode2.selectNodes ("//Request_Num").item(ххх).Text));          
                    Если ТекЗаявка <> "" Тогда
                        Если ДокЗаявка.НайтиПоНомеру(ТекЗаявка,ДатаМаршрутов)=0  Тогда
                            Сообщить("Не найден документ № "+ ТекЗаявка);
                        Иначе
                            Док.Заявка = ДокЗаявка.ТекущийДокумент();
                            Док.СуммаЗаявки = Док.Заявка.Итог("СуммаСНДС");
                            Док.Деньги = Док.Заявка.Итог("Деньги");
                            Док.Доход = Док.Заявка.Итог("Доход");
                        КонецЕсли;              
                    КонецЕсли;
                КонецЕсли;
                
                Док.Вес = Число(nodeNode2.selectNodes ("//QtyW").item(ххх).Text);
                Док.Приезд = Сред((nodeNode2.selectNodes ("//Time_Arrival").item(ххх).Text ), 12,5); //выбираем только время;
                Док.ВрВыгДв = Число(nodeNode2.selectNodes ("//Unload_Time").item(ххх).Text) + Число(nodeNode2.selectNodes ("//Travel_Time").item(ххх).Text);
                Док.НомерЗаявкиТА = Число(nodeNode2.selectNodes ("//Request_Num").item(ххх).Text);
                Док.ПробегПланТ = Число(nodeNode2.selectNodes ("//distance").item(ххх).Text)/1000;    
                //*******
                Док.ИтогоДоход=Формат(Док.Итог("Доход"),"Ч12.2");
                Док.ИтогоДеньги=Формат(Док.Итог("Деньги"),"Ч12.2");
                //*******
                Док.Записать();        
                
                ТТ.НоваяСтрока();
                ТТ.АвтомобильВодитель = ""+Док.Автомобиль.Наименование+" / "+Док.Водитель.Наименование;
                ТТ.МаршрутныйЛист = ""+Док.НомерДок+ " от "+Док.ДатаДок+ "("+Док.НомерМаршрута+")";
                Если ТипСклад = "Склад" Тогда
                    ТТ.Клиент = ""+Док.Клиент+" ("+ТипСклад+")";
                Иначе
                    ТТ.Клиент = ""+Док.Клиент;
                КонецЕсли;
                ТТ.НомерЗаявки= Док.НомерЗаявкиТА;
                ТТ.Заявка = Док.Заявка;
                ТТ.Вес = Док.Вес;
                ТТ.Приезд = Док.Приезд;
                ТТ.Время = Док.ВрВыгДв;
                ТТ.Пробег = Док.ПробегПланТ;
                ТТ.НомерЗаявки =Док.Заявка.НомерДок;
            КонецЕсли;
            
        КонецЕсли;        
        
    КонецЦикла;
    
    Попытка
        Док.Записать();
    Исключение
    КонецПопытки;    
КонецПроцедуры      
        
Процедура ПриВыбореЗакладки(Выб)                                                    
    Если Выб=1 Тогда
        Форма.ИспользоватьСлой("Основной,Общий");
    иначеесли Выб=2 тогда                                            
        Форма.ИспользоватьСлой("ТекстЗагрузки,Общий");
    КонецЕсли;
конецпроцедуры


Процедура ПриОткрытии()
    
    ФлЗагрузитьВнешнююКомпоненту = 0;
    Если ЗагрузитьВнешнююКомпоненту("C:\Users\Public\CARS\v7plus.dll") = 1 Тогда
        ФлЗагрузитьВнешнююКомпоненту = 1;
    ИначеЕсли ЗагрузитьВнешнююКомпоненту("C:\v7plus.dll") = 1 Тогда
        ФлЗагрузитьВнешнююКомпоненту = 1;
    КонецЕсли;
    
    Если ФлЗагрузитьВнешнююКомпоненту = 0 Тогда
        Сообщить("Не удалось обнаружить компоненту v7plus.dll!");
        СтатусВозврата(0);                            
        Возврат;
    КонецЕсли;

    
    Попытка
        Соединение = СоздатьОбъект("Addin.V7HttpReader");
        Соединение.КоличествоПопытокАвторизации = 3;
    Исключение
        Сообщить("Не удалось создать объект Addin.V7HttpReader!");
        СтатусВозврата(0);
        Возврат;
    КонецПопытки;
    
    Попытка
        Анализатор = СоздатьОбъект("AddIn.XMLParser");
    Исключение      
        Сообщить("Не удалось создать объект Addin.XMLParser!");
        СтатусВозврата(0);
        Возврат;
    КонецПопытки;
      
        
    Форма.ИспользоватьЗакладки(1);
    Форма.Закладки.ДобавитьЗначение(1,"Основная");      
    Форма.Закладки.ДобавитьЗначение(2,"Текст Загрузки" );      
    // Форма.Закладки.ДобавитьЗначение(3,"Запрос");      
    // Форма.Закладки.ДобавитьЗначение(4,"Отладка");      
    Форма.ИспользоватьСлой("Основной,Общий");
  
КонецПроцедуры
БазовыйАдрес = "http://ant-logistics.com";
//Логин = "import@rambler.ru";
//Пароль = "123456";
Логин = "innainna84@mail.ru";
Пароль = "123";


ДатаМаршрутов = ТекущаяДата() + 1;
Фл =1;

Автор: Sharzem 18.05.16, 12:36

А это "чудо" у Вас, это лично мое мнение, летать корректно не будет, даже если все исправите.
Аргументирую тем что используете объект "Addin.V7HttpReader" создающийся "глючной" v7plus.dll.
Лучше всего строить POST-запросы используя объект "WinHttp.WinHttpRequest.5.1".

По-поводу отлатки: Повставляйте в процедуры (их у Вас немного), что-то типа:

Процедура Название процедуры()
Сообщить ("Начато выполнение Название процедуры","i");
///Ваш код
Сообщить ("Выполнено Название процедуры","i");
КонецПроцедуры

Автор: inna.innainna84 18.05.16, 15:22

Sharzem @ Сегодня, 13:36 *,
Извените пожалуйста вы можете на этой процедуре сделать наглядный пример?

Процедура ВыгрузитьКонтрагентов()             
    
    ТТ.Очистить();
    ДокЗапрос = Анализатор.СоздатьДокумент();
    ArrayOfDEX_Import = ДокЗапрос.СоздатьПодчиненныйЭлемент("ArrayOfDEX_Import");
    
    // Цикл по выборке
    // Для примера используем один эдемент
    
        
    Запрос=СоздатьОбъект("Запрос");
    
    ТекстЗапроса="
        |ПЕРИОД С ДатаМаршрутов По ДатаМаршрутов;
        |Клиент = Справочник.Контрагенты.ТекущийЭлемент;
        |Группировка Клиент без групп упорядочить по Клиент.Наименование;
           |";  
      
        СписокКонтрагентов = СоздатьОбъект("СписокЗначений");
            

          
          Если глФильтрПоСправочнику("Контрагенты",0,0,ВыбКатегорияКонтрагентов,0,0,СписокКонтрагентов,ТекстЗапроса,0,0,"Клиент,,,СписокКонтрагентов,,,,,")=0 Тогда
            Возврат;
        КонецЕсли;
          
        
        Если Запрос.Выполнить(ТекстЗапроса)=0 тогда
            Предупреждение("Запрос по Партиям не выполнился!");
            Возврат;
        КонецЕсли;  
        
          

        
         Пока Запрос.Группировка("Клиент")=1 Цикл  
        DEX_Import = ArrayOfDEX_Import.СоздатьПодчиненныйЭлемент("DEX_Import");      
            
            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.Значение =Число(Запрос.Клиент.Широта1); // Широта, если известна
        
            
            lng = DEX_Import.СоздатьПодчиненныйЭлемент("lng");
            lng.Значение =Число(Запрос.Клиент.Долгота1); // Долгота, если известна
        
        
            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.Значение = СокрЛП(Запрос.ТекДок.ОрганизационоеВремя);
    //    
    
           НомерЗаявкиТА2=(Запрос.Клиент.КодСоответствия+ДатаМаршрутов);
            Request_Num = DEX_Import.СоздатьПодчиненныйЭлемент("Request_Num");
            Request_Num.Текст  = НомерЗаявкиТА2;
        
            
            CompGroup_Id = DEX_Import.СоздатьПодчиненныйЭлемент("CompGroup_Id");
            CompGroup_Id.Значение = Запрос.Клиент.Маршрут.КодСоответствия;
            
            CompGroup_Name = DEX_Import.СоздатьПодчиненныйЭлемент("CompGroup_Name");
            CompGroup_Name.Текст =Запрос.Клиент. Маршрут.Наименование;
            
    
            
    КонецЦикла;                                                                                              


        СтрРез = "";

    
    //"c:\response.xml";
    //Текст = СоздатьОбъект("Текст");
    //Текст.ДобавитьСтроку("Session_Ident="+ИДСессии+"&Date_Data="+Формат(ДатаМаршрутов, "ДДДММГГГГ")+"&format=xml&Comps=<?xml version='1.0'?>");
    //Текст.ДобавитьСтроку(ПреобразоватьСтрокуВУТФ8(ДокЗапрос.ЭлементДокумента.ПредставлениеXML));
    //              
    //ИмяФайлаЗапроса = "c:\query.txt";
    //Текст.Записать(ИмяФайлаЗапроса);

    ПараметрыЗапроса = "Session_Ident="+ИДСессии+
        "&Date_Data="+Формат(ДатаМаршрутов, "ДДДММГГГГ")+"&format=xml&Comps=<?xml version=""1.0""?>" +
        ПреобразоватьСтрокуВУТФ8(ДокЗапрос.ЭлементДокумента.ПредставлениеXML);
    
        
    Соединение.ОтправитьДляОбработки(АдресСервиса + "/DEX_Import_Request_JSON", ПараметрыЗапроса, 2, СтрРез, 1);
    
    РезультатЗагрузки = ПреобразоватьСтрокуИзУТФ8(СтрРез);
    ОтветЗагрузки = ПреобразоватьСтрокуИзУТФ8(СтрРез);
    
    
КонецПроцедуры  //**************************************


Автор: Sharzem 19.05.16, 7:07

inna.innainna84 @ Вчера, 15:22 *,

Начинаем заниматься удаленно телепатией.

Скорее всего, перед Вами стоит задача сформировать данные в формате json, в кодировке UTF-8 с последующей их отправкой в теле POST-запроса по адресу.

Вам это нужно или что-то иное ?
Никогда не вел обмен с тем сайтом, но думаю что именно так Вы будете ему кидать свои данные.

Угадал ?

Автор: inna.innainna84 19.05.16, 7:42

Sharzem @ Сегодня, 8:07 *,
Да. Это они предложили этот вариант через v7plus.dll.


Автор: Sharzem 19.05.16, 8:11

inna.innainna84 @ Сегодня, 7:42 *,

upset.gif Ну что же:
1. Сначала постройте правильный запрос по маршрутам, а то у Вас там чепуха.
2. Нужно описание формата для построения данных в формате json, на основании описания создавайте ТЗ и заполните ее из запроса.
3. Не забывайте о правилах, создайте новую тему, так как это уже совершенно другая проблема (Правила).

Выведем потихоньку Вас на нужный маршрут, только долго это все будет.

Автор: inna.innainna84 19.05.16, 9:20

Sharzem @ Сегодня, 9:11 http://pro1c.org.ua/index.php?act=findpost&pid=112607

Параметры в теле запроса:
Session_Ident=1B1CFA8D-FA4B-43FD-BFFB-64C6627DB357&Date_Data=02.08.2014&Routes=[{"”}]

Результат:
{
"ErrorResponse":
{
"error": 0,
"msg": null
}
}



Автор: Sharzem 19.05.16, 9:48

Цитата(inna.innainna84 @ 19.05.16, 9:20) *
Скажите какую из процедур вы считаете "чепухой"


ВыгрузитьКонтрагентов() - то что Вы указали в теме.
    ТекстЗапроса="
        |ПЕРИОД С ДатаМаршрутов По ДатаМаршрутов; //Какой период если ссылки на документы нет ?
        |Клиент = Справочник.Контрагенты.ТекущийЭлемент;
        |Группировка Клиент без групп упорядочить по Клиент.Наименование; //Запрос без счетчика или функции выполнится только при выгрузке в ТЗ, но ее нет
           |";  
      
        СписокКонтрагентов = СоздатьОбъект("СписокЗначений");
            
          //1. ВыбКатегорияКонтрагентов - не объявленая переменная, ранее в глобальных я ее не видел
          //2. У Вас функция в глобальном модуле формирует  ТекстЗапроса ? - СОМНЕВАЮСЬ

          Если глФильтрПоСправочнику("Контрагенты",0,0,ВыбКатегорияКонтрагентов,0,0,СписокКонтрагентов,ТекстЗапроса,0,0,"Клиент,,,СписокКонтрагентов,,,,,")=0 Тогда
            Возврат;//Не указаны причины прекращения Процедуры, откуда Вы будете знать почему не работает
        КонецЕсли;
          
        
        Если Запрос.Выполнить(ТекстЗапроса)=0 тогда
            Предупреждение("Запрос по Партиям не выполнился!");//// Какие партии ????
            Возврат;
        КонецЕсли;

Цитирую сам себя: "Сначала постройте правильный запрос по маршрутам..."
Я так понимаю, что в запросе должны присутствовать Документы "Маршрутный лист" или еще как он там называется и исходя из выборки за период, Вы отдаете на сайт информацию.

Вы технический специалист или Пользователь ?
Почему не обратитесь к своему человеку который Вам это все писал ?

Это форум, тут на Ваши вопросы дадут ответы, но никто Вам не гарантирует что они Вас удовлетворят на 100 %, далее, Вы все делаете сами и решения тоже принимаете сами.

Автор: inna.innainna84 19.05.16, 10:28

Да я поняла. Эта процедура выгружает информацию из справочника, не через документ. В принципе эта процедура не нужна.
Меня больше интересует ваше мнение о Процедуре ВыгрузитьИПровестиМаршруты(),

Автор: Sharzem 19.05.16, 11:08

Только что просмотрел я вашу процедуру ВыгрузитьИПровестиМаршруты() и все остальные...

Что могу сказать ? faceoff.gif 09000000.gif 44000000.gif

Аяяяй, и оно даже открывается в режиме Предприятия, даже Отладчиком прошли...., только вот:

Цитата(inna.innainna84 @ 18.05.16, 12:03) *
При работе с этим отчетом вылетаю из базы не сразу а через какое-то время


Не заработает и даже не откроется Ваш так называемый "отчет".
Извините, но это 47046430.gif

Автор: inna.innainna84 19.05.16, 11:25

Sharzem @ Сегодня, 12:08 *,
Блин я не знаю что делать , скажите что нужно менять процедуры и запросы по этому документу ,или же нужно менять v7plus.dll. на WinHttp.WinHttpRequest.5.1

Автор: Sharzem 19.05.16, 12:01

inna.innainna84 @ Сегодня, 11:25 *,
Сейчас, поправлю кину назад, попробуете.

Что такое в запросе ВыбМЛ ?
|Условие(ТекДок в ВыбМЛ);

Автор: inna.innainna84 19.05.16, 12:31

Sharzem @ Сегодня, 13:01 http://pro1c.org.ua/index.php?act=findpost&pid=112626,
Это множественный список - выбор документа маршрутный лист

Автор: Sharzem 19.05.16, 14:24

Ловите, исправил одни ошибки намножил другие.
Запрос 1 С теперь должен норм. выполниться, xml будет сохранен и 1 С не вылетит.
У xml, мне кажется неправильная структура, поэтому сможете его посмотреть, оно сообщит о месте сохранения.
Убрал в запросе Группировку НомерЗаявкиТА, она не нужна.
Post-запрос не трогал, посмотрите как отработает (оно сообщит). Если что напишите.

Процедура ВыгрузитьИПровестиМаршруты() 

    ТТ.Очистить();
    ТТ.НоваяКолонка("МаршрутныйЛист", "Строка", 25, ," Документ");
    ТТ.НоваяКолонка("АвтомобильВодитель", "Строка", 30,,"Автомобиль/Водитель");
    ТТ.НоваяКолонка("Клиент", "Строка",50,,"Клиент (тип)");
    ТТ.НоваяКолонка("Заявка");    
    ТТ.НоваяКолонка("НомерЗаявки");
    ТТ.НоваяКолонка("Вес","Число", 10,3);
    ТТ.НоваяКолонка("Пробег","Число", 10,2);
    ТТ.НоваяКолонка("Приезд", "Строка", 10);
    ТТ.НоваяКолонка("Время","Число", 10,0);  
    
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)    
    |ОбрабатыватьДокументы Проведенные;
    |Период с ДатаМаршрутов по ДатаМаршрутов;
    |ТекДок = Документ.МАРШРУТНЫЙЛИСТ.ТекущийДокумент;
    |Водитель = Документ.МАРШРУТНЫЙЛИСТ.Водитель;
    |Экспедитор = Документ.МАРШРУТНЫЙЛИСТ.Экспедитор;
    |НомерЗаявкиТА=Документ.МАРШРУТНЫЙЛИСТ.НомерЗаявкиТА;
    |НомерСтроки=Документ.МАРШРУТНЫЙЛИСТ.ТекущийДокумент.НомерСтроки;
    |Клиент = Документ.МАРШРУТНЫЙЛИСТ.Клиент;
    |Заявка = Документ.МАРШРУТНЫЙЛИСТ.Заявка;
    //|Вес = Документ.МАРШРУТНЫЙЛИСТ.Заявка.Вес;
    //|ОрганизационоеВремя = Документ.МАРШРУТНЫЙЛИСТ.ОрганизационоеВремя;
    |Группировка Клиент без групп;
    |Группировка ТекДок;
    //|Группировка НомерЗаявкиТА;
    |Условие(ТекДок в ВыбМЛ);
    |";
    
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;
    
    лпСписокСообщенийRoutes = СоздатьОбъект("СписокЗначений");
    лпСписокСообщенийComps    = СоздатьОбъект("СписокЗначений");
    
    Routes = Анализатор.СоздатьДокумент();
    ArrayOfDEX_Import_Routes = Routes.СоздатьПодчиненныйЭлемент("ArrayOfDEX_Import_Routes");    
    
    Comps = Анализатор.СоздатьДокумент();    
    ArrayOfDEX_Import_Comps = Comps.СоздатьПодчиненныйЭлемент("ArrayOfDEX_Import_Comps");    
    
    Пока Запрос.Группировка(1) = 1 Цикл //Клиент
        Пока Запрос.Группировка(2)=1 Цикл//"ТекДок"
            //Переменные
            лпДокумент         = Запрос.ТекДок;
            лпАвтомобиль     = лпДокумент.Автомобиль;
            лпВодитель         = лпДокумент.Водитель;
            лпНомерЗаявкиТА = Запрос.НомерЗаявкиТА;
            лпНомерСтроки3    = лпДокумент.Итог("НомерСтроки3");//???
            лпЗаявка        = Запрос.Заявка;
            лпВес            = лпЗаявка.Вес;
            
            лпНомерДок         = лпДокумент.НомерДок;
            лпДатаДок        = лпДокумент.ДатаДок;
            лпАвтомобильКод = лпАвтомобиль.Код;
            лпВодительКод     = лпВодитель.Код;
            лпДиспетчерКод     = лпДокумент.Экспедитор.Код;
            лпВыезд            = СокрЛП("08:00");
            
            лпНомерСтроки     = Запрос.НомерСтроки;
            лпКодСоответствия= Запрос.Клиент.КодСоответствия;
            лпТипТочки         = 0;
            лпКлиентИмя     = СокрЛП(Запрос.Клиент.Наименование);
            лпКлиентПочта     = СокрЛП(Запрос.Клиент.ПочтовыйАдрес);
            лпОрганизВремя    = Число(лпДокумент.ОрганизационоеВремя);
            //==========================Таблица Значений=================================================
            ТТ.НоваяСтрока();
            ТТ.Клиент             = лпКлиентИмя;    
            ТТ.НомерЗаявки        = лпНомерЗаявкиТА;
            ТТ.МаршрутныйЛист     = ""+лпНомерДок+ " от "+лпДатаДок;
            ТТ.АвтомобильВодитель = ""+СокрЛП(лпАвтомобиль.Наименование)+" / "+СокрЛП(лпВодитель.Наименование);
            ТТ.Заявка            = лпЗаявка;
            //==========================ДокЗапрос=================================================
            DEX_Import = ArrayOfDEX_Import_Routes.СоздатьПодчиненныйЭлемент("DEX_Import_Routes");
            DEX_Import.СоздатьПодчиненныйЭлемент("Route_Num").Текст         = СокрЛП(ПреобразоватьСтрокуВУТФ8(лпНомерДок));
            DEX_Import.СоздатьПодчиненныйЭлемент("Auto_Id").Значение         = Число(ПреобразоватьСтрокуВУТФ8(лпАвтомобильКод));
            DEX_Import.СоздатьПодчиненныйЭлемент("Driver_Id").Значение         = Число(ПреобразоватьСтрокуВУТФ8(лпВодительКод));
            DEX_Import.СоздатьПодчиненныйЭлемент("Dispatcher_Id").Значение     = Число(ПреобразоватьСтрокуВУТФ8(лпДиспетчерКод));
            DEX_Import.СоздатьПодчиненныйЭлемент("RouteTime_B").Текст          = СокрЛП(ПреобразоватьСтрокуВУТФ8("08:00"));
            DEX_Import.СоздатьПодчиненныйЭлемент("Pos_Id").Значение         = Число(ПреобразоватьСтрокуВУТФ8(лпНомерСтроки3));
            
            лпСообщение        =    "НомерМаршрута-"+лпНомерДок+" Авто- "+лпАвтомобильКод+" Водитель- "+лпВодительКод+" Экспедитор- "+
                                лпДиспетчерКод+" Выезд- "+лпВыезд+" номерСтроки- "+лпНомерСтроки3;
            лпСписокСообщенийRoutes.ДобавитьЗначение(лпСообщение);
            
            //==========================ДокЗапрос1=================================================
            DEX_Import1 = ArrayOfDEX_Import_Comps.СоздатьПодчиненныйЭлемент("DEX_Import_Comps");
            DEX_Import1.СоздатьПодчиненныйЭлемент("Route_Num").Текст          = СокрЛП(ПреобразоватьСтрокуВУТФ8(лпНомерДок));
            DEX_Import1.СоздатьПодчиненныйЭлемент("Pos_Id").Значение         = СокрЛП(ПреобразоватьСтрокуВУТФ8(лпНомерСтроки));
            DEX_Import1.СоздатьПодчиненныйЭлемент("Comp_Id").Значение         = СокрЛП(ПреобразоватьСтрокуВУТФ8(лпКодСоответствия));
            DEX_Import1.СоздатьПодчиненныйЭлемент("CompType_Id").Значение     = Число(ПреобразоватьСтрокуВУТФ8(лпТипТочки));
            DEX_Import1.СоздатьПодчиненныйЭлемент("Comp_Name").Текст         = СокрЛП(ПреобразоватьСтрокуВУТФ8(лпКлиентИмя));
            DEX_Import1.СоздатьПодчиненныйЭлемент("Address").Текст             = СокрЛП(ПреобразоватьСтрокуВУТФ8(лпКлиентПочта));
            DEX_Import1.СоздатьПодчиненныйЭлемент("Unload_Time").Значение     = Число(ПреобразоватьСтрокуВУТФ8(лпОрганизВремя));
            DEX_Import.СоздатьПодчиненныйЭлемент("Request_Num").Текст          = СокрЛП(ПреобразоватьСтрокуВУТФ8(лпНомерЗаявкиТА));
            DEX_Import.СоздатьПодчиненныйЭлемент("QtyW").Значение             = Число(ПреобразоватьСтрокуВУТФ8(лпВес));
            DEX_Import.СоздатьПодчиненныйЭлемент("ProductGroup_Id").Значение = Число(ПреобразоватьСтрокуВУТФ8(лпТипТочки));

              лпСообщение    =    "Список накладных-"+"НомерМаршрута- "+лпНомерДок+" Клиент- "+лпКодСоответствия+" Типточки- "+лпТипТочки+
                          " КлиентНаимен- "+лпКлиентИмя+" Адрес- "+лпКлиентПочта+" номерСтроки- "+лпНомерСтроки+ " номерЗаявки- "+лпНомерЗаявкиТА+
                          " вес- "+лпВес+" орг.вермя- "+лпОрганизВремя;
              лпСписокСообщенийComps.ДобавитьЗначение(лпСообщение);
        КонецЦикла;
    КонецЦикла;
    
    лпИмяФайлаОбменаRoutes = КаталогВременныхФайлов()+"Routes_"+Формат(ДатаМаршрутов,"ДГГГГММДД")+".xml";
    лпИмяФайлаОбменаComps = КаталогВременныхФайлов()+"Comps_"+Формат(ДатаМаршрутов,"ДГГГГММДД")+".xml";
    Routes.Записать(лпИмяФайлаОбменаRoutes);
    Comps.Записать(лпИмяФайлаОбменаComps);
    
    лпРазмерСписка = лпСписокСообщенийRoutes.РазмерСписка();
    Сообщить("Данные Routes :","!!!");
    Для лпНомерСтроки = 1 По лпРазмерСписка Цикл
        лпСтрока = лпСписокСообщенийRoutes.ПолучитьЗначение(лпНомерСтроки);
        Сообщить(лпСтрока,"i");
    КонецЦикла;
    
    лпРазмерСписка = лпСписокСообщенийComps.РазмерСписка();
    Сообщить("Данные Routes :","!!!");
    Для лпНомерСтроки = 1 По лпРазмерСписка Цикл
        лпСтрока = лпСписокСообщенийComps.ПолучитьЗначение(лпНомерСтроки);
        Сообщить(лпСтрока,"i");
    КонецЦикла;
        
    Сообщить("Файл сохранен "+лпИмяФайлаОбменаRoutes);
    Сообщить("Файл сохранен "+лпИмяФайлаОбменаComps);
        
    СтрРез = "";
    
    ПараметрыЗапроса ="Session_Ident="+ИДСессии+
    "&Date_Data="+Формат(ДатаМаршрутов, "ДДДММГГГГ")+"&Add_Template=0&TSM_Calc=1&Remove=1&SyncComps=1&format=xml&Routes=<?xml version=""1.0""?>"+
    ПреобразоватьСтрокуВУТФ8(Routes.ЭлементДокумента.ПредставлениеXML)+
    "&Comps=<?xml version=""1.0""?>"+ПреобразоватьСтрокуВУТФ8(Comps.ЭлементДокумента.ПредставлениеXML);
    //ПреобразоватьСтрокуИзУТФ8(Routes.ЭлементДокумента.ПредставлениеXML)+
    //"&Comps=<?xml version=""1.0""?>"+ПреобразоватьСтрокуИзУТФ8(Comps.ЭлементДокумента.ПредставлениеXML);
    ОтветЗагрузки = "";
    Попытка
        Соединение.ОтправитьДляОбработки(АдресСервиса + "/DEX_Import_Routes_JSON", ПараметрыЗапроса, 2, СтрРез, 1);
        РезультатЗагрузки = ПараметрыЗапроса;
        ОтветЗагрузки = ПреобразоватьСтрокуИзУТФ8(СтрРез);
    Исключение
        Предупреждение("Не удалось выполнить метод ОтправитьДляОбработки !");
        Сообщить(ОписаниеОшибки(),"!!!");
    КонецПопытки;
    Если ПустаяСтрока(ОтветЗагрузки) = 0 Тогда
        лпКолСтрок = СтрКоличествоСтрок(ОтветЗагрузки);
        Для лпНомерСтроки = 1 По лпКолСтрок Цикл
            лпСтрока = СокрЛП(СтрПолучитьСтроку(ОтветЗагрузки, лпНомерСтроки))
            Сообщить(лпСтрока,"i");
        КонецЦикла;
    КонецЕсли;
КонецПроцедуры

Автор: Sharzem 19.05.16, 15:44

В догонку Функция Выполняющая сам запрос:

Функция    ОтправитьПостЗапрос(прАдрес,прФайл)
    
    Если ПустаяСтрока(прФайл) = 1 Тогда
        Возврат 0;
    КонецЕсли;
    
    WinHttp = СоздатьОбъект("WinHttp.WinHttpRequest.5.1");
    
    MSScript = СоздатьОбъект("MSScriptControl.ScriptControl");
    MSScript.language="javascript";

    MSScript.AddObject("WinHttp",WinHttp);
    MSScript.Eval("WinHttp.Option(2)=1251");
    MSScript.Eval("WinHttp.Option(4)=13056");//intSslErrorIgnoreFlags
    MSScript.Eval("WinHttp.Option(6)=true");//blnEnableRedirects
    MSScript.Eval("WinHttp.Option(12)=true");//blnEnableHttpsToHttpRedirects
    
    WinHttp.Open("POST", прАдрес, 0);
    
    WinHttp.SetRequestHeader("Accept-Language", "ru");
    WinHttp.SetRequestHeader("Accept-Charset", "utf-8");
    WinHttp.SetRequestHeader("Content-Language", "ru");
    WinHttp.SetRequestHeader("Content-Charset", "utf-8");
    WinHttp.SetRequestHeader("Content-type", "application/xml; charset=utf-8;");
        
    Попытка  
        WinHttp.Send(прФайл);
        Если WinHttp.Status = 200 Тогда
            Сообщить("Ответ: " + WinHttp.ResponseText);
            Возврат 1;
         Иначе
            Сообщить("Ошибка сервера: " + WinHttp.Status + " " + WinHttp.ResponseText + " " + WinHttp.StatusText, "!");
            Возврат 0;
        КонецЕсли;
        
    Исключение
          Сообщить(ОписаниеОшибки(), "!!!");
        Возврат 0;
    КонецПопытки;
КонецФункции

Возможно имеются какие-то мелкие ошибки. Опять таки опишите проблемы, если таковы будут.

Автор: inna.innainna84 19.05.16, 17:06

Sharzem @ Сегодня, 16:44 *,
Отчет работает, если будет отключать 1с напишу.
Вот единственное я не пойму почему- то не правильно преобразовуются текстовые значения вместо букв иероглифы, это ошибка была изначально.

DEX_Import1.СоздатьПодчиненныйЭлемент("Route_Num").Текст = СокрЛП(ПреобразоватьСтрокуВУТФ8(лпНомерДок));
DEX_Import1.СоздатьПодчиненныйЭлемент("Comp_Name").Текст = СокрЛП(ПреобразоватьСтрокуВУТФ8(лпКлиентИмя));
DEX_Import1.СоздатьПодчиненныйЭлемент("Comp_Name").Текст = СокрЛП(ПреобразоватьСтрокуВУТФ8(лпКлиентИмя));
DEX_Import.СоздатьПодчиненныйЭлемент("Request_Num").Текст = СокрЛП(ПреобразоватьСтрокуВУТФ8(лпНомерЗаявкиТА));

А что означает "Получаемая строка превысит допустимые размеры" и не отправляет эти данные на сайт?

Автор: Sharzem 19.05.16, 17:50

1. Это не ошибка. Иероглифы это текст в UTF-8.
2. Воспользуйтесь Функцией ОтправитьПостЗапрос(прАдрес,прФайл) и все будет норм.

В модуле процедуры после строк:

///Получаемая строка превысит допустимые размеры - это в сообщении, строка более 450 символов
// нужно здесь закоментировать, поскольку не влазит в окно сообщений

//    лпРазмерСписка = лпСписокСообщенийRoutes.РазмерСписка();
//    Сообщить("Данные Routes :","!!!");
//    Для лпНомерСтроки = 1 По лпРазмерСписка Цикл
//        лпСтрока = лпСписокСообщенийRoutes.ПолучитьЗначение(лпНомерСтроки);
//        Сообщить(лпСтрока,"i");
//    КонецЦикла;
    
//    лпРазмерСписка = лпСписокСообщенийComps.РазмерСписка();
//    Сообщить("Данные Routes :","!!!");
//    Для лпНомерСтроки = 1 По лпРазмерСписка Цикл
//       лпСтрока = лпСписокСообщенийComps.ПолучитьЗначение(лпНомерСтроки);
//        Сообщить(лпСтрока,"i");
//    КонецЦикла;

Сообщить("Файл сохранен "+лпИмяФайлаОбменаRoutes);
Сообщить("Файл сохранен "+лпИмяФайлаОбменаComps);

//ДОБАВЛЯЕМ
// АдресСервиса - Это глобальная переменная ?
//Если да то:

Если ФС.СуществуетФайл(лпИмяФайлаОбменаRoutes) = 0 или ФС.СуществуетФайл(лпИмяФайлаОбменаComps) = 0 Тогда
      Предупреждение("Ошибка соранения отчета !",10);
      Возврат;
КонецЕсли;

лпАдресСервиса =  АдресСервиса+"/DEX_Import_Routes_JSON";
Если ОтправитьПостЗапрос(лпАдресСервиса,лпИмяФайлаОбменаRoutes) = 1 Тогда
       Если ОтправитьПостЗапрос(лпАдресСервиса,лпИмяФайлаОбменаComps) = 1 Тогда
              Предупреждение("Все отправлено, хлопаем в ладошки !",10)
       КонецЕсли;
Иначе
        Предупреждение ("Вилы в запросе, нужно еще смотреть что не так !",10);
КонецЕсли;

Возврат;
///Весь модуль ниже не актуален


Кстати, для просмотра текста в UTF-8 есть класный редактор "Notepad++".
Тем более что иногда нужно смотреть текст в UTF-8 (без Bom) - незаменимая вещь в определении наличия или отсутствия Bom.

Думаю что рассматриваемый Post-запрос умрет и Вы начнете все же обмениваться в формате Joison, он удобней для таких вещей.
Нужно Вам только поплотней с специалистами которые Вам рекомендуют существующий обмен пообщаться, у ни он 100 % реализован.

Автор: inna.innainna84 19.05.16, 22:57


Автор: Sharzem 20.05.16, 10:32

Вот это нужно закоментировать:

//СтрРез = "";
//    
//    ПараметрыЗапроса ="Session_Ident="+ИДСессии+
//    "&Date_Data="+Формат(ДатаМаршрутов, "ДДДММГГГГ")+"&Add_Template=0&TSM_Calc=1&Remove=1&SyncComps=1&format=xml&Routes=<?xml version=""1.0""?>"+
//    ПреобразоватьСтрокуВУТФ8(Routes.ЭлементДокумента.ПредставлениеXML)+
//    "&Comps=<?xml version=""1.0""?>"+ПреобразоватьСтрокуВУТФ8(Comps.ЭлементДокумента.ПредставлениеXML);
//    
//    ОтветЗагрузки = "";
//    Попытка
//        Соединение.ОтправитьДляОбработки(АдресСервиса + "/DEX_Import_Routes_JSON", ПараметрыЗапроса, 2, СтрРез, 1);
//        РезультатЗагрузки = ПараметрыЗапроса;
//        ОтветЗагрузки = ПреобразоватьСтрокуИзУТФ8(СтрРез);
//    Исключение
//        Предупреждение("Не удалось выполнить метод ОтправитьДляОбработки !");
//        Сообщить(ОписаниеОшибки(),"!!!");
//    КонецПопытки;
//    Если ПустаяСтрока(ОтветЗагрузки) = 0 Тогда
//        лпКолСтрок = СтрКоличествоСтрок(ОтветЗагрузки);
//        Для лпНомерСтроки = 1 По лпКолСтрок Цикл
//            лпСтрока = СокрЛП(СтрПолучитьСтроку(ОтветЗагрузки, лпНомерСтроки));
//            Сообщить(лпСтрока,"i");
//        КонецЦикла;
//    КонецЕсли;


Строки:
Если (ФС.СуществуетФайл(лпИмяФайлаОбменаRoutes) = 0) или (ФС.СуществуетФайл(лпИмяФайлаОбменаComps) = 0) Тогда
      Предупреждение("Ошибка сохранения отчета !",10);
      Возврат;
КонецЕсли;
//Нужно перенести после строк:
    Routes.Записать(лпИмяФайлаОбменаRoutes);
    Comps.Записать(лпИмяФайлаОбменаComps);


Sharzem @ Сегодня, 10:14 *,

Функция ОтправитьПостЗапрос(лпАдресСервиса,лпИмяФайлаОбменаRoutes) работать не будет, поскольку в АдресСервиса не те данные.

Во как накуралесил ...
Рассматривал одну процедуру, поскольку не ознакомился с полным текстом из 1 поста.
Туточки пока тупик и куча вопросов...
Предлагаю на мыло Sharzem@yandex.ru кинуть саму обработку и тех.описание по работе с сервисом.
Если будете сбрасывать и боитесь за конфиденциальность пароли, личные данные, адреса в обработке замените символами ххххх, чтобы я понял что это не переменные.

Извините, но более дальше помочь не могу.

Автор: inna.innainna84 20.05.16, 10:41

Sharzem @ Сегодня, 11:14 *,
А зачем это комментировать? это же необходимо для работы с сайтом
ПараметрыЗапроса ="Session_Ident="+ИДСессии+
// "&Date_Data="+Формат(ДатаМаршрутов, "ДДДММГГГГ")+"&Add_Template=0&TSM_Calc=1&Remove=1&SyncComps=1&format=xml&Routes=<?xml version=""1.0""?>"+
// ПреобразоватьСтрокуВУТФ8(Routes.ЭлементДокумента.ПредставлениеXML)+
// "&Comps=<?xml version=""1.0""?>"+ПреобразоватьСтрокуВУТФ8(Comps.ЭлементДокумента.ПредставлениеXML);

Автор: Sharzem 20.05.16, 10:42

Sharzem @ Сегодня, 10:32 *,

Информация для Администрации сайта:
Предложение Автору темы выслать обработку на свой адрес прошу расценивать как добровольное предложение помощи не имеющего под собой коммерческого характера или преследования других целей для получения в свою пользу каких либо выгод.

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua