Имя: Пароль:
1C
1C 7.7
v7: Проблема с отчетом
0 serg-lom89
 
18.05.13
15:13
Проблеме в отчете

у автомобилях разный вид топлива.
при формирование без вида авто(перечисление),показывает у одного вида ездят на разных видат топлива(например ДТ и АИ-92). http://zalil.ru/34513097
Когда выбираем один вид авто  http://zalil.ru/34513104    то тогда только один вид топлива показывает,а должно несколько.
не могу понять в чем дело,в свертке?

Процедура Сформировать()
   ТЗ=СоздатьОбъект("ТаблицаЗначений");
   ТЗ.НоваяКолонка("Авто","Справочник.АвтомобилиПредприятия");
   ТЗ.НоваяКолонка("ВидАвто","Перечисления.ВидыАвто");
   ТЗ.НоваяКолонка("ВидТоплива","Перечисления.ВидыТоплива");
   ТЗ.НоваяКолонка("Перевезоно","Число");
   ТЗ.НоваяКолонка("ТКМ","Число");
   ТЗ.НоваяКолонка("ПробегВсего","Число");
   ТЗ.НоваяКолонка("ПолученоТоплива","Число");
   Док=СоздатьОбъект("Документ.ПутевойЛист2Г");    

   Док.ВыбратьДокументы(НачДата,КонДата);    
   Док.УстановитьФильтр(1,0);
   Пока Док.ПолучитьДокумент()>0 Цикл  
               Если ВидАвто.Выбран() = 1 Тогда
                   Если Док.Автомобиль.ВидАвто <> ВидАвто Тогда
                       Продолжить;
                   КонецЕсли;
               КонецЕсли;
       ТЗ.НоваяСтрока();
       ТЗ.ВидАвто=Док.Автомобиль.ВидАвто;
       ТЗ.ВидТоплива=Док.Автомобиль.ВидТоплива;
       ТЗ.Перевезоно=Док.Перевезено      ;
       ТЗ.ТКМ=Док.ВыполненоТКМ        ;
       ТЗ.ПробегВсего =Док.ОбщийПробег      ;
       ТЗ.ПолученоТоплива= Док.Получено   ;
   КонецЦикла;
   Тз.Сортировать("ВидАвто");
   ТЗ.Свернуть("ВидАвто,ВидТоплива","Перевезоно,ТКМ,ПробегВсего,ПолученоТоплива");  
   
   Таб=СоздатьОбъект("Таблица");
   Таб.исходнаятаблица("Таблица");
   Таб.вывестиСекцию("Шапка");
   ТекВидАвто="";
   ИтогПеревезоно=0;
   ИтогТКМ =0;
   ИтогПробегВсего=0;
   ИтогПолученоТоплива=0;

   ТЗ.ВыбратьСтроки();
   Пока ТЗ.ПолучитьСтроку()>0 Цикл
       Если  ТекВидАвто="" ТОгда  
             ТекВидАвто=ТЗ.ВидАвто;
           Таб.вывестиСекцию("Строка");  
       КонецЕсли;
       Если  ТекВидАвто<>ТЗ.ВидАвто Тогда
             ТекВидАвто=ТЗ.ВидАвто;
           Таб.ВывестиСекцию("Строка");  
       КонецЕсли;
   КонецЦикла;
   Таб.Показать();
КонецПроцедуры
Процедура ПриОткрытии()
НачДата=НачМесяца(РабочаяДата());
КонДата=КонМесяца(РабочаяДата());
КОнецПроцедуры
1 serg-lom89
 
18.05.13
15:16
2 alex74
 
18.05.13
15:21
в твоем случае если подряд идут несколько строк с одинаковым видом авто, то выводится только первая строка, остальные пропускаются.
3 serg-lom89
 
18.05.13
15:22
да..сейчас прогнал по отладчику увидел
4 serg-lom89
 
18.05.13
15:22
а как исправить.подкиньте идею-))
5 alex74
 
18.05.13
15:24
Пока ТЗ.ПолучитьСтроку()>0 Цикл
       Если  ТекВидАвто="" ТОгда  
             ТекВидАвто=ТЗ.ВидАвто;
        КонецЕсли;
       Если  ТекВидАвто<>ТЗ.ВидАвто Тогда
             ТекВидАвто=ТЗ.ВидАвто;
       КонецЕсли;
       Таб.ВывестиСекцию("Строка");  
   КонецЦикла;
6 serg-lom89
 
18.05.13
15:27
(5) Спасибо большое=)))