Имя: Пароль:
1C
1С v8
не сворачиваются группировки при выводе отчета
0 LivingStar
 
08.11.13
11:03
Почему может не формироваться дерево с ветвями?

    ПредАгент = "";
    Для Каждого ЭлементСписка1 Из ТА Цикл
        ОбновитьСписокТреков(ЭлементСписка1.Значение);
        ПромежуточнаяТЗ = ЗаполнитьТаблицуВывода(ЭлементСписка1.Значение);
        Если ПромежуточнаяТЗ.Количество() > 0 И ТипЗнч(ПромежуточнаяТЗ) <> Тип("Число") Тогда
            Для каждого СтрПромеж Из ПромежуточнаяТЗ Цикл
                //
                ЭлементыФормы.ТабРезультат.НачатьАвтоГруппировкуСтрок(); // НАЧАЛО АВТОГРУППИРОВКИ 2013_11_08
                Если ПредАгент <> СтрПромеж.ТорговыйАгент и ПредАгент <> "" Тогда
                    ЭлементыФормы.ТабРезультат.Вывести(ОбластьСтрока, 1, "ГРУППА", Истина);    
                КонецЕсли;
                //
                //НоваяСтрока                                  = Тз.Добавить();
                // №1. ТОРГОВЫЙ АГЕНТ
                ОбластьСтрока.Параметры.ТорговыйАгент              = СтрПромеж.ТорговыйАгент;
                //
                //НоваяСтрока.ТорговыйАгент                    = СтрПромеж.ТорговыйАгент;
                // №2. РАбОЧАЯ ДАТА
                ОбластьСтрока.Параметры.РабочаяДата                = Формат(СтрПромеж.РабочаяДата, "ДЛФ=Д");
                //
                //НоваяСтрока.РабочаяДата                       = Формат(СтрПромеж.РабочаяДата, "ДЛФ=Д");
                // 2013_11_06 ->
                // №3. ДАТА НАЧАЛА РАбОТЫ
                ОбластьСтрока.Параметры.ДатаНачалаРаботы           = ФОРМАТ(СтрПромеж.ДатаНачалаРаботы, "ДЛФ=Д");
                //
                //НоваяСтрока.ДатаНачалаРаботы                = СтрПромеж.ДатаНачалаРаботы;
                //     ВРЕМЯ НАЧАЛА РАбОТЫ
                ОбластьСтрока.Параметры.ВремяНачалаРаботы          = СтрПромеж.ВремяНачалаРаботы;
                //
                //НоваяСтрока.ВремяНачалаРаботы                = СтрПромеж.ВремяНачалаРаботы;                
                // <-
                // №4. НАЧАЛО ДВИЖЕНИЯ
                ОбластьСтрока.Параметры.НачалоДвижения             = СтрПромеж.НачалоДвижения;
                //
                //НоваяСтрока.НачалоДвижения                    = СтрПромеж.НачалоДвижения;
                // 2013_11_06 ->
                // №5. ДАТА ПОЯВЛЕНИЯ У ПЕРВОГО КОНТРАГЕНТА
                ОбластьСтрока.Параметры.ДатаПоявленияУКонтрагента  = ФОРМАТ(СтрПромеж.ДатаПоявленияУПервогоКонтрагента, "ДЛФ=Д");
                //
                //НоваяСтрока.ДатаПоявленияУКонтрагента       = СтрПромеж.ДатаПоявленияУПервогоКонтрагента;
                //     ВРЕМЯ ПОЯВЛЕНИЯ У КОНТРАГЕНТА
                ОбластьСтрока.Параметры.ВремяПоявленияУКонтрагента = СтрПромеж.ПоявлениеУПервогоКонтрагента;
                //
                //НоваяСтрока.ВремяПоявленияУКонтрагента       = СтрПромеж.ПоявлениеУПервогоКонтрагента;
                // №6. ДАТА ПОЯВЛЕНИЯ У ПОСЛЕДНЕГО КОНТРАГЕНТА
                ОбластьСтрока.Параметры.ДатаЗавершенияРабочегоДня  = ФОРМАТ(СтрПромеж.ДатаПоявленияУПоследнегоКонтрагента, "ДЛФ=Д");
                //
                //НоваяСтрока.ДатаЗавершенияРабочегоДня       = СтрПромеж.ДатаПоявленияУПоследнегоКонтрагента;
                //     ВРЕМЯ ЗАВЕРШЕНИЯ РАбОЧЕГО ДНЯ
                ОбластьСтрока.Параметры.ВремяЗавершенияРабочегоДня = СтрПромеж.ПоявлениеУПоследнегоКонтрагента;
                //
                //НоваяСтрока.ВремяЗавершенияРабочегоДня       = СтрПромеж.ПоявлениеУПоследнегоКонтрагента;
                // <-
                // 2013_11_05 ->
                // ДАТА_ПОЯВЛЕНИЯ_У_ПОСЛЕДНЕГО_КОНТРАГЕНТА - ДАТА_НАЧАЛА_РАбОТЫ
                // №7. ОТРАбОТАННО ЧАСОВ В ДЕНЬ 3 - 6
                Если СокрЛП(СтрПромеж.ДатаНачалаРаботы) <> "-" И СокрЛП(СтрПромеж.ДатаНачалаРаботы) <> "0" Тогда
                    // ЗАКОМЕНТИРОВАННО 2013_11_08 =>
                    //Разность                              = Макс(СтрПромеж.ДатаПоявленияУПоследнегоКонтрагента, СтрПромеж.ДатаНачалаРаботы)
                    //                                        - Мин(СтрПромеж.ДатаПоявленияУПоследнегоКонтрагента, СтрПромеж.ДатаНачалаРаботы);
                    //КолЧасов                                = Цел(Разность / 3600);
                    //КолМинут                                = Цел((Разность % 3600) / 60);
                    //КолСекунд                               = Разность % 60;                
                    //
                    //ОбластьСтрока.Параметры.ОтработанноЧасовВДень_3_6  = Строка(КолЧасов) + ":" + КолМинут;        
                    // ЗАКОМЕНТИРОВАННО <=
                    //НоваяСтрока.ОтработанноЧасовВДень_3_6 = Строка(КолЧасов) + ":" + КолМинут;
                Иначе
                    //
                    ОбластьСтрока.Параметры.ОтработанноЧасовВДень_3_6  = "-";        
                    //
                    //НоваяСтрока.ОтработанноЧасовВДень_3_6 = "-";
                КонецЕсли;
                // ДАТА_ПОЯВЛЕНИЯ_У_ПОСЛЕДНЕГО_КОНТРАГЕНТА - ДАТА_ПОЯВЛЕНИЯ_У_ПЕРВОГО_КОНТРАГЕНТА
                // №8. ОТРАбОТАННО ЧАСОВ В ДЕНЬ 5 - 6
                Разность                                  = Макс(СтрПромеж.ДатаПоявленияУПоследнегоКонтрагента, СтрПромеж.ДатаПоявленияУПервогоКонтрагента)
                                                          - Мин(СтрПромеж.ДатаПоявленияУПоследнегоКонтрагента, СтрПромеж.ДатаПоявленияУПервогоКонтрагента);
                КолЧасов                                      = Цел(Разность / 3600);
                КолМинут                                      = Цел((Разность % 3600) / 60);
                КолСекунд                                     = Разность % 60;                
                //НоваяСтрока.ОтработанноЧасовВДень_5_6       = Строка(КолЧасов) + ":" + КолМинут;
                //
                ОбластьСтрока.Параметры.ОтработанноЧасовВДень_5_6  = Строка(КолЧасов) + ":" + КолМинут;        
                //
                // <-
                ЭлементыФормы.ТабРезультат.Вывести(ОбластьСтрока, 2, "СТРОКА", Истина);    
                ПредАгент = СтрПромеж.ТорговыйАгент;
            КонецЦикла;
        КонецЕсли;
        Сообщить(Строка(Ном) + "). " + ЭлементСписка1.Значение);
        Ном = Ном + 1;
    КонецЦикла;
    Сообщить("-------------------------");
    Сообщить("ФОРМИРОВАНИЕ ЗАВЕРШЕНО !!!");
    ЭлементыФормы.ТабРезультат.ТолькоПросмотр = Истина;
    // <-
    //Возврат Тз;
КонецПроцедуры
1 Wobland
 
08.11.13
11:05
2 zak555
 
08.11.13
11:05
> №8. ОТРАбОТАННО ЧАСОВ В ДЕНЬ 5 - 6

это что ?
3 el7cartel
 
08.11.13
11:06
мда...автор претендует на звание крутейшего ТС...хренова туча тем...бестолковых
4 LivingStar
 
08.11.13
11:07
(3) веебон хелов, картельна .....
5 LivingStar
 
08.11.13
11:08
(3) ты сопли сотри с епла сначала. потом будешь на мои ветки залазить, дотянешся если
6 LivingStar
 
08.11.13
11:09
(2) да это хрень, вычисляемая ячейка, ничего такого, почему они не сворачиваются вот это не понятно, и автогруппировку задаю, и начать и закончить....
7 Wobland
 
08.11.13
11:09
(5) >КолЧасов                                      = Цел(Разность / 3600);
ты вот эту строку сколько рожал? так и не родил самостоятельно
8 Ненавижу 1С
 
гуру
08.11.13
11:10
(0) ты вернулся!
9 zak555
 
08.11.13
11:10
что мешает сразу из запроса получать нужнные данные ?
10 LivingStar
 
08.11.13
11:10
(9) я эти данные из текстового файла вытягиваю, там не так просто, вопрос в том почему в выводе не сворачиваются строки....
11 el7cartel
 
08.11.13
11:11
(5) ну это уже не Вам решать, куда мне заходить, а куда нет
12 LivingStar
 
08.11.13
11:11
(11) ну да тут сбободно пока....
13 Ненавижу 1С
 
гуру
08.11.13
11:13
а где ЗакончитьАвтогруппировкуСтрок?
14 LivingStar
 
11.11.13
07:43
(13) Вы водит какие попало группировки, не пойму пока в че дело

    Ном = 1;
    Сообщить("ФОРМИРУЮТСЯ ДАННЫЕ ПО ТА:");
    Сообщить("-------------------------");
    ПредАгент = "";
    Для Каждого ЭлементСписка1 Из ТА Цикл
        ОбновитьСписокТреков(ЭлементСписка1.Значение);
        ПромежуточнаяТЗ = ЗаполнитьТаблицуВывода(ЭлементСписка1.Значение);
        Если ПромежуточнаяТЗ.Количество() > 0 И ТипЗнч(ПромежуточнаяТЗ) <> Тип("Число") Тогда
            Для каждого СтрПромеж Из ПромежуточнаяТЗ Цикл
                //
                Если ПредАгент <> СтрПромеж.ТорговыйАгент и ПредАгент <> "" Тогда
                    ЭлементыФормы.ТабРезультат.ЗакончитьАвтоГруппировкуСтрок(); // ЗАВЕРШЕНИЕ АВТОГРУППИРОВКИ                        
                    ЭлементыФормы.ТабРезультат.НачатьАвтоГруппировкуСтрок(); // НАЧАЛО АВТОГРУППИРОВКИ 2013_11_08                    
                    ЭлементыФормы.ТабРезультат.Вывести(ОбластьСтрока, 1, "ГРУППА", Истина);    
                ИначеЕсли ПредАгент = "" Тогда
                    ЭлементыФормы.ТабРезультат.НачатьАвтоГруппировкуСтрок(); // НАЧАЛО АВТОГРУППИРОВКИ 2013_11_08                    
                    ОбластьСтрока.Параметры.ТорговыйАгент = СтрПромеж.ТорговыйАгент;
                    ЭлементыФормы.ТабРезультат.Вывести(ОбластьСтрока, 1, "ГРУППА", Истина);    
                КонецЕсли;
                //
                // №1. ТОРГОВЫЙ АГЕНТ
                ОбластьСтрока.Параметры.ТорговыйАгент              = СтрПромеж.ТорговыйАгент;
                //
                // №2. РАбОЧАЯ ДАТА
                ОбластьСтрока.Параметры.РабочаяДата                = Формат(СтрПромеж.РабочаяДата, "ДЛФ=Д");
                //
                // №3. ДАТА НАЧАЛА РАбОТЫ
                ОбластьСтрока.Параметры.ДатаНачалаРаботы           = ФОРМАТ(СтрПромеж.ДатаНачалаРаботы, "ДЛФ=Д");
                //
                // №4. ВРЕМЯ НАЧАЛА РАбОТЫ
                ОбластьСтрока.Параметры.ВремяНачалаРаботы          = СтрПромеж.ВремяНачалаРаботы;
                //
                // №5. ДАТА ПОЯВЛЕНИЯ У ПЕРВОГО КОНТРАГЕНТА
                ОбластьСтрока.Параметры.ДатаПоявленияУКонтрагента  = ФОРМАТ(СтрПромеж.ДатаПоявленияУПервогоКонтрагента, "ДЛФ=Д");
                //
                // №6. ВРЕМЯ ПОЯВЛЕНИЯ У КОНТРАГЕНТА
                ОбластьСтрока.Параметры.ВремяПоявленияУКонтрагента = СтрПромеж.ПоявлениеУПервогоКонтрагента;
                //
                // №7. ДАТА ПОЯВЛЕНИЯ У ПОСЛЕДНЕГО КОНТРАГЕНТА
                ОбластьСтрока.Параметры.ДатаЗавершенияРабочегоДня  = ФОРМАТ(СтрПромеж.ДатаПоявленияУПоследнегоКонтрагента, "ДЛФ=Д");
                //
                // №8. ВРЕМЯ ЗАВЕРШЕНИЯ РАбОЧЕГО ДНЯ
                ОбластьСтрока.Параметры.ВремяЗавершенияРабочегоДня = СтрПромеж.ПоявлениеУПоследнегоКонтрагента;
                //
                // №9. ОТРАбОТАННО ЧАСОВ В ДЕНЬ 3 - 6
                Если СокрЛП(СтрПромеж.ДатаНачалаРаботы) <> "-" И СокрЛП(СтрПромеж.ДатаНачалаРаботы) <> "0" Тогда
                    ОбластьСтрока.Параметры.ОтработанноЧасовВДень_3_6  = СтрПромеж.ОтработанноЧасовВДень_3_6;        
                Иначе
                    //
                    ОбластьСтрока.Параметры.ОтработанноЧасовВДень_3_6  = "-";        
                    //
                    //НоваяСтрока.ОтработанноЧасовВДень_3_6 = "-";
                КонецЕсли;
                // №10. ОТРАбОТАННО ЧАСОВ В ДЕНЬ 5 - 6
                ОбластьСтрока.Параметры.ОтработанноЧасовВДень_5_6  = СтрПромеж.ОтработанноЧасовВДень_5_6;        
                //
                // <-
                ЭлементыФормы.ТабРезультат.Вывести(ОбластьСтрока, 2, "СТРОКА", Истина);    
                ПредАгент = СтрПромеж.ТорговыйАгент;
            КонецЦикла;
        КонецЕсли;
        Сообщить(Строка(Ном) + "). " + ЭлементСписка1.Значение);
        Ном = Ном + 1;
    КонецЦикла;
    ЭлементыФормы.ТабРезультат.ЗакончитьАвтоГруппировкуСтрок(); // ЗАВЕРШЕНИЕ АВТОГРУППИРОВКИ
15 Ненавижу 1С
 
гуру
11.11.13
11:42
(14) навставлял видимо как попало, вот и радуйся