Имя: Пароль:
1C
1С v8
Как это сделать правильно?
0 Студиозус
 
21.03.12
18:11
Есть такой вот код

   Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
                  |    ТрафикСалоновОбороты.ДилерскийЦентр КАК ДилерскийЦентр,
                  |    СУММА(ТрафикСалоновОбороты.РабочиеЛистыОборот) КАК РабочиеЛисты,
                  |    СУММА(ТрафикСалоновОбороты.ТестДрайвыОборот) КАК ТестДрайвы
                  |ИЗ
                  |    РегистрНакопления.ТрафикСалонов.Обороты(&НачалоПериода, &ОкончаниеПериода, , ) КАК ТрафикСалоновОбороты
                  |
                  |СГРУППИРОВАТЬ ПО
                  |    ТрафикСалоновОбороты.ДилерскийЦентр
                  |
                  |УПОРЯДОЧИТЬ ПО
                  |    ДилерскийЦентр";
                 
   Запрос.УстановитьПараметр("НачалоПериода", НачалоДня(НачалоПериода));
   Запрос.УстановитьПараметр("ОкончаниеПериода", КонецДня(ОкончаниеПериода));
   
   Т = 0;
   
   РабЛ = 0;
   ТестД = 0;
   
   Выборка = Запрос.Выполнить().Выбрать();
   Пока Выборка.Следующий() Цикл
       Область = Макет.ПолучитьОбласть("Строка");
       Т = Т + 1;
       ЗаполнитьЗначенияСвойств(Область.Параметры, Выборка);
       Область.Параметры.ПП = Т;
       Результат.Вывести(Область);
       РабЛ = РабЛ + Выборка.РабочиеЛисты;
       ТестД = ТестД + Выборка.ТестДрайвы;
   КонецЦикла;
   
   Область = Макет.ПолучитьОбласть("Итого");
   Область.Параметры.РабочиеЛисты = РабЛ;
   Область.Параметры.ТестДрайвы = ТестД;
   
   Результат.Вывести(Область);

В котором выводятся нужные данные по записям и в цикле считаются итоги. Подскажите как сделать правильно что бы итоги не плюсовать в процессе перебора, а сразу получать из запроса?

Знаю что в запросе надо поставить "итоги", но тогда выбирать надо по группировкам, и группировка идёт сверху. А мне надо итог выводить внизу отчета.
1 Господин ПЖ
 
21.03.12
18:14
>Подскажите как сделать правильно что бы итоги не плюсовать в процессе перебора, а сразу получать из запроса?

включить их в запрос (с) КО
2 Relader
 
21.03.12
18:14
Считай итоги вначале, а выводе в конце, в чем проблема?
3 le_
 
21.03.12
18:15
ИТОГИ в запросе.
4 Студиозус
 
21.03.12
18:17
ВыборкаИтоги = запрос....
Пока ВыборкаИтоги.Следующий() Цикл
 ЗаполнитьЗначениясвойств(Область....);
 Выборка = ВыборкаИтоги.Выбрать(....
 Пока Выборка.Следующий() Цикл
  //ТУТ ВЫВОДИМ ДАННЫЕ
 КонецЦикла
 ТабДок.Вывести(ОбластьИтогов);
КонецЦикла

Как то так???
5 Студиозус
 
21.03.12
18:17
Я понял про итоги в запросе, я спрашивал про то как правильно их выводить.
6 le_
 
21.03.12
18:21
Можно в дерево выгрузить.
Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);

В дереве в первой строке будет общий итог и дальше по группировкам.
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.