Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> прекращена работа программы 1c v7 starter program multi-user , База 1с ТИС 7.7 2 страниц V   1 2 >          
inna.innainna84 Подменю пользователя
сообщение 18.05.16, 12:03
Сообщение #1

Завсегдатай
****
Группа: Пользователи
Сообщений: 108
Спасибо сказали: 2 раз
Рейтинг: 0

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

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

Функция ПреобразоватьСтрокуВУТФ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;


Сообщение отредактировал Vofka - 18.05.16, 16:32

Sharzem Подменю пользователя
сообщение 18.05.16, 12:36
Сообщение #2

Оратор
Иконка группы
Группа: Местный
Сообщений: 298
Спасибо сказали: 98 раз
Рейтинг: 99.1

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

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


Signature
То, что для одного человека константа, для другого - переменная. (Алан.Дж.Перлис)

Спасибо сказали: inna.innainna84,

inna.innainna84 Подменю пользователя
сообщение 18.05.16, 15:22
Сообщение #3

Завсегдатай
****
Группа: Пользователи
Сообщений: 108
Спасибо сказали: 2 раз
Рейтинг: 0

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
Сообщение #4

Оратор
Иконка группы
Группа: Местный
Сообщений: 298
Спасибо сказали: 98 раз
Рейтинг: 99.1

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

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

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

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

Угадал ?


Signature
То, что для одного человека константа, для другого - переменная. (Алан.Дж.Перлис)

Спасибо сказали: inna.innainna84,

inna.innainna84 Подменю пользователя
сообщение 19.05.16, 7:42
Сообщение #5

Завсегдатай
****
Группа: Пользователи
Сообщений: 108
Спасибо сказали: 2 раз
Рейтинг: 0

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


Sharzem Подменю пользователя
сообщение 19.05.16, 8:11
Сообщение #6

Оратор
Иконка группы
Группа: Местный
Сообщений: 298
Спасибо сказали: 98 раз
Рейтинг: 99.1

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

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

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


Signature
То, что для одного человека константа, для другого - переменная. (Алан.Дж.Перлис)

inna.innainna84 Подменю пользователя
сообщение 19.05.16, 9:20
Сообщение #7

Завсегдатай
****
Группа: Пользователи
Сообщений: 108
Спасибо сказали: 2 раз
Рейтинг: 0

Sharzem @ Сегодня, 9:11 *,
Извините пожалуйста я в этом не сильно разбираюсь, Мы нанимали человека который это писал. Скажите какую из процедур вы считаете "чепухой" .

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

Загрузка маршрутов

Вид запроса:
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

{
ErrorResponse
{
"error": <int>, /*код ошибки, 0 - нет ошибки*/
"msg": <text> /*подробное сообщение об ошибке*/
}
}

*метод возвращает и другие поля, но они для API не нужны

Пример:
Запрос:
[необходимо зарегистрироваться для просмотра ссылки]

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

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



Sharzem Подменю пользователя
сообщение 19.05.16, 9:48
Сообщение #8

Оратор
Иконка группы
Группа: Местный
Сообщений: 298
Спасибо сказали: 98 раз
Рейтинг: 99.1

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


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

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

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

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

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


Signature
То, что для одного человека константа, для другого - переменная. (Алан.Дж.Перлис)

inna.innainna84 Подменю пользователя
сообщение 19.05.16, 10:28
Сообщение #9

Завсегдатай
****
Группа: Пользователи
Сообщений: 108
Спасибо сказали: 2 раз
Рейтинг: 0

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

Sharzem Подменю пользователя
сообщение 19.05.16, 11:08
Сообщение #10

Оратор
Иконка группы
Группа: Местный
Сообщений: 298
Спасибо сказали: 98 раз
Рейтинг: 99.1

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

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

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


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


Signature
То, что для одного человека константа, для другого - переменная. (Алан.Дж.Перлис)

inna.innainna84 Подменю пользователя
сообщение 19.05.16, 11:25
Сообщение #11

Завсегдатай
****
Группа: Пользователи
Сообщений: 108
Спасибо сказали: 2 раз
Рейтинг: 0

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

Sharzem Подменю пользователя
сообщение 19.05.16, 12:01
Сообщение #12

Оратор
Иконка группы
Группа: Местный
Сообщений: 298
Спасибо сказали: 98 раз
Рейтинг: 99.1

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

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

Сообщение отредактировал Sharzem - 19.05.16, 12:04


Signature
То, что для одного человека константа, для другого - переменная. (Алан.Дж.Перлис)

inna.innainna84 Подменю пользователя
сообщение 19.05.16, 12:31
Сообщение #13

Завсегдатай
****
Группа: Пользователи
Сообщений: 108
Спасибо сказали: 2 раз
Рейтинг: 0

Sharzem @ Сегодня, 13:01 *,
Спасибо. Огромное.


Sharzem @ Сегодня, 13:01 *,
Это множественный список - выбор документа маршрутный лист

Sharzem Подменю пользователя
сообщение 19.05.16, 14:24
Сообщение #14

Оратор
Иконка группы
Группа: Местный
Сообщений: 298
Спасибо сказали: 98 раз
Рейтинг: 99.1

Ловите, исправил одни ошибки намножил другие.
Запрос 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");
        КонецЦикла;
    КонецЕсли;
КонецПроцедуры


Signature
То, что для одного человека константа, для другого - переменная. (Алан.Дж.Перлис)

Sharzem Подменю пользователя
сообщение 19.05.16, 15:44
Сообщение #15

Оратор
Иконка группы
Группа: Местный
Сообщений: 298
Спасибо сказали: 98 раз
Рейтинг: 99.1

В догонку Функция Выполняющая сам запрос:
Функция    ОтправитьПостЗапрос(прАдрес,прФайл)
    
    Если ПустаяСтрока(прФайл) = 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;
    КонецПопытки;
КонецФункции

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


Signature
То, что для одного человека константа, для другого - переменная. (Алан.Дж.Перлис)

inna.innainna84 Подменю пользователя
сообщение 19.05.16, 17:06
Сообщение #16

Завсегдатай
****
Группа: Пользователи
Сообщений: 108
Спасибо сказали: 2 раз
Рейтинг: 0

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
Сообщение #17

Оратор
Иконка группы
Группа: Местный
Сообщений: 298
Спасибо сказали: 98 раз
Рейтинг: 99.1

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 % реализован.

Сообщение отредактировал Sharzem - 19.05.16, 18:00


Signature
То, что для одного человека константа, для другого - переменная. (Алан.Дж.Перлис)

inna.innainna84 Подменю пользователя
сообщение 19.05.16, 22:57
Сообщение #18

Завсегдатай
****
Группа: Пользователи
Сообщений: 108
Спасибо сказали: 2 раз
Рейтинг: 0

Sharzem @ Сегодня, 18:50 *,
Извините пожалуйста что я вас наверное уже достала ничего не пойму файлы сохраняются на комп. но не напрямую на сайт
Отключает 1с при нажатии даже кнопки закрыть отчет, скорей всего эта ошибка в начале в одной из процедур пас() или авторизация() или же в функциях


///Весь модуль ниже не актуален ?????

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

    ТТ.Очистить();
    ТТ.НоваяКолонка("МаршрутныйЛист", "Строка", 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)=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_Import1.СоздатьПодчиненныйЭлемент("Request_Num").Текст          = СокрЛП(ПреобразоватьСтрокуВУТФ8(лпНомерЗаявкиТА));
            DEX_Import1.СоздатьПодчиненныйЭлемент("QtyW").Значение             = Число(ПреобразоватьСтрокуВУТФ8(лпВес));
            DEX_Import1.СоздатьПодчиненныйЭлемент("ProductGroup_Id").Значение = Число(ПреобразоватьСтрокуВУТФ8(лпТипТочки));

              лпСообщение    =    "Список накладных-"+"НомерМаршрута- "+лпНомерДок+" Клиент- "+лпКодСоответствия+" Типточки- "+лпТипТочки+
                          " КлиентНаимен- "+лпКлиентИмя+" Адрес- "+лпКлиентПочта+" номерСтроки- "+лпНомерСтроки+ " номерЗаявки- "+лпНомерЗаявкиТА+
                          " вес- "+лпВес+" орг.вермя- "+лпОрганизВремя;
              лпСписокСообщенийComps.ДобавитьЗначение(лпСообщение);
        КонецЦикла;
    КонецЦикла;
    КонецЦикла;
    лпИмяФайлаОбменаRoutes = КаталогВременныхФайлов()+"Routes_"+Формат(ДатаМаршрутов,"ДГГГГММДД")+".xml";
    лпИмяФайлаОбменаComps = КаталогВременныхФайлов()+"Comps_"+Формат(ДатаМаршрутов,"ДГГГГММДД")+".xml";
    Routes.Записать(лпИмяФайлаОбменаRoutes);
    Comps.Записать(лпИмяФайлаОбменаComps);
    
    //лпРазмерСписка = лпСписокСообщенийRoutes.РазмерСписка();
    //Сообщить("Данные Routes :","!!!");
    //Для лпНомерСтроки = 1 По лпРазмерСписка Цикл
    //    лпСтрока = лпСписокСообщенийRoutes.ПолучитьЗначение(лпНомерСтроки);
    //    Сообщить(лпСтрока,"i");
    //КонецЦикла;
    //
    //лпРазмерСписка = лпСписокСообщенийComps.РазмерСписка();
    //Сообщить("Данные Comps :","!!!");
    //Для лпНомерСтроки = 1 По лпРазмерСписка Цикл
    //    лпСтрока = лпСписокСообщенийComps.ПолучитьЗначение(лпНомерСтроки);
    //    Сообщить(лпСтрока,"i");
    //КонецЦикла;
        
    Сообщить("Файл сохранен "+лпИмяФайлаОбменаRoutes);
    Сообщить("Файл сохранен "+лпИмяФайлаОбменаComps);
    
//ДОБАВЛЯЕМ
// АдресСервиса - Это глобальная переменная ?
//Если да то:

   лпАдресСервиса =  АдресСервиса+"/DEX_Import_Routes_JSON";

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



КонецПроцедуры

Sharzem Подменю пользователя
сообщение 20.05.16, 10:32
Сообщение #19

Оратор
Иконка группы
Группа: Местный
Сообщений: 298
Спасибо сказали: 98 раз
Рейтинг: 99.1

Вот это нужно закоментировать:
//СтрРез = "";
//    
//    ПараметрыЗапроса ="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 кинуть саму обработку и тех.описание по работе с сервисом.
Если будете сбрасывать и боитесь за конфиденциальность пароли, личные данные, адреса в обработке замените символами ххххх, чтобы я понял что это не переменные.

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


Signature
То, что для одного человека константа, для другого - переменная. (Алан.Дж.Перлис)

inna.innainna84 Подменю пользователя
сообщение 20.05.16, 10:41
Сообщение #20

Завсегдатай
****
Группа: Пользователи
Сообщений: 108
Спасибо сказали: 2 раз
Рейтинг: 0

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);

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


2 страниц V   1 2 >
Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 28.04.24, 0:32
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!