Имя: Пароль:
1C
1С v8
ОбходРезультатаЗапроса.ПоГруппировкам
,
0 Ar-Bus
 
25.01.13
01:45
При обходе результата запроса обрабатываются только те записи, у которых тип=ИтогПоГруппировке. Детальных записей нет. Почему?

   Выборка=Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
   Пока Выборка.Следующий() Цикл
       Если Выборка.ТипЗаписи() = ТипЗаписиЗапроса.ИтогПоГруппировке Тогда
           ОбластьСтрокаПериод.Параметры.Период=Выборка.Период;
           ОбластьСтрокаПериод.Параметры.СуммаПлатежей=Выборка.СуммаПлатежей;
           ТабДок.Вывести(ОбластьСтрокаПериод);
       Иначе
           ОбластьСтрокаОбъект.Параметры.Заполнить(Выборка);
           ТабДок.Вывести(ОбластьСтрокаОбъект);
       КонецЕсли;
   КонецЦикла;


   Запрос.Текст="
   |ВЫБРАТЬ
   |    период,
   |    подразделение,
   |    объект,
   |    регистратор,
   |    НазначениеПлатежа,
   |    СУММА(Сумма) КАК СуммаПлатежей
   |ИЗ
   |    РегистрНакопления.ПлатежныйКалендарь
   |ГДЕ
   |    (Период>=&НачДата) И (Период<=&КонДата) И (НаправлениеДвижения = ЗНАЧЕНИЕ(Перечисление.НаправленияДвиженияДенег.Платеж))
   |СГРУППИРОВАТЬ ПО
   |    Период,
   |    Объект,
   |    Регистратор,
   |    Подразделение,
   |    НазначениеПлатежа
   |УПОРЯДОЧИТЬ По
   |    Период,
   |    Объект
   |ИТОГИ
   |    СУММА(СуммаПлатежей)
   |ПО
   |    Период";
1 GROOVY
 
25.01.13
01:49
А второй цикл по деталям кто писать будет? Сама система не поймет что из итогов в детали свалится надо.
2 GROOVY
 
25.01.13
01:50
Выборка=Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
   Пока Выборка.Следующий() Цикл

ВыборкаДетали = Выборка.Выбрать();
Пока ВыборкаДетали ЦИкл


КонецЦикла;

   КонецЦикла;
3 Ar-Bus
 
25.01.13
09:28
(2) Сделал такие выборки:

   Пока Выборка.Следующий() Цикл
       Если Выборка.ТипЗаписи() = ТипЗаписиЗапроса.ИтогПоГруппировке Тогда
           ОбластьСтрокаПериод.Параметры.Период=Выборка.Период;
           ОбластьСтрокаПериод.Параметры.СуммаПлатежей=Выборка.СуммаПлатежей;
           ТабДок.Вывести(ОбластьСтрокаПериод);
           ВыборкаДетали = Выборка.Выбрать();
           Пока ВыборкаДетали.Следующий() Цикл
               ОбластьСтрокаОбъект.Параметры.Заполнить(ВыборкаДетали);
               ТабДок.Вывести(ОбластьСтрокаОбъект);
           КонецЦикла;
       КонецЕсли;
   КонецЦикла;

В итоге, если, например, за 05.01.13г. есть платежи по разным подразделениям, то группировка по периоду идет 2раза... т.е.:

05.01.13
  Основное подразделение   100руб.
05.01.13
  Обособленное подразделение  200руб.

как привести к след.виду:
05.01.13
  Основное подразделение   100руб.
  Обособленное подразделение  200руб.
4 Defender aka LINN
 
25.01.13
09:44
(3) Ты разницы в упор не видишь, да?
5 Ar-Bus
 
25.01.13
09:48
(4) в упор не вижу
6 Ar-Bus
 
25.01.13
09:48
(4) что-то в тексте запроса с группировками нужно менять... запутался, однако
7 Ar-Bus
 
25.01.13
09:54
ну что, кто-нибудь подскажет? Уверен, где-то поблизости решение...
8 Defender aka LINN
 
25.01.13
10:00
(7) Открой глаза до характерного щелчка.
9 Ar-Bus
 
25.01.13
10:00
(4) что-то с итогами в тексте запроса не так?
10 Domanoff26
 
25.01.13
10:02
(9) период  с часами?
11 Ar-Bus
 
25.01.13
10:05
(10) Спасибо, все получилось! Забыл про часы в периоде!!!