Имя: Пароль:
1C
1С v8
Обход итогов в запросе
0 wraithik
 
29.02.12
13:46
Есть запрос, в нем итоги по ОКСО, ИсточникФинансирования, ФормаОбучения и Предмет.

Обход результата:

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


В цикл ВыборкаОКСО заходит, и бежит по указанным трем греппировкам, а вот в ВыборкаПредмет не заходит.

Где туплю?
1 wraithik
 
29.02.12
13:51
|ИТОГИ
   |    СУММА(Поле1),
   |    СУММА(Поле2),
   |    СУММА(Поле3),
   |    СУММА(Поле4),
   |    СУММА(Поле5),
   |    СУММА(Поле6),
   |    СУММА(Поле7),
   |    СУММА(Поле8),
   |    СУММА(Поле9),
   |    СУММА(Поле10),
   |    СУММА(Поле11),
   |    СУММА(Поле12),
   |    СУММА(Поле13),
   |    СУММА(Поле14),
   |    СУММА(Поле15),
   |    СУММА(Поле16),
   |    СУММА(Поле17),
   |    СУММА(Поле18),
   |    СУММА(Поле19),
   |    СУММА(Поле20)
   |ПО
   |    ОКСО,
   |    ФормаОбучения,
   |    ИсточникФинанси
2 wraithik
 
29.02.12
13:51
|ИТОГИ
   |    СУММА(Поле1),
   |    СУММА(Поле2),
   |    СУММА(Поле3),
   |    СУММА(Поле4),
   |    СУММА(Поле5),
   |    СУММА(Поле6),
   |    СУММА(Поле7),
   |    СУММА(Поле8),
   |    СУММА(Поле9),
   |    СУММА(Поле10),
   |    СУММА(Поле11),
   |    СУММА(Поле12),
   |    СУММА(Поле13),
   |    СУММА(Поле14),
   |    СУММА(Поле15),
   |    СУММА(Поле16),
   |    СУММА(Поле17),
   |    СУММА(Поле18),
   |    СУММА(Поле19),
   |    СУММА(Поле20)
   |ПО
   |    ОКСО,
   |    ФормаОбучения,
   |    ИсточникФинансирования,
   |    Предмет"
3 hhhh
 
29.02.12
13:55
(2) ну как бы

ВыборкаПредмет = ВыборкаОКСО.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Предмет");
4 wraithik
 
29.02.12
13:55
(3)
так было, тоже не але :(
5 Naumov
 
29.02.12
13:56
"Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"ОКСО,ФормаОбучения,ИсточникФинансирования");"
Где Предмет?
6 Naumov
 
29.02.12
13:56
и нафига детализировать перечень группировок, если все задействуешь?
7 hhhh
 
29.02.12
13:58
(6) да он не все задействует. Только три.
8 wraithik
 
29.02.12
14:00
мне надо первый уровень это когда изменяется хоть одно поле из ОКСО,ФормаОбучения,ИсточникФинансирования
а потом это все расшифровать по Предмет
9 wraithik
 
29.02.12
14:01
Не хочу писать 4 цикла, хочу 2.
10 Naumov
 
29.02.12
14:01
(7) Так он выборку инициализирует, неуказывая нужной группировки.
11 wraithik
 
29.02.12
14:03
(10)


ВыборкаОКСО = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"ОКСО,ФормаОбучения,ИсточникФинансирования");
   //ВыборкаОКСО = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.Прямой);

   
   Пока ВыборкаОКСО.Следующий() Цикл
       
       //НомерСтроки = ТабДок.ВысотаТаблицы;

       //

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

Так тоже не работает.
12 wraithik
 
29.02.12
14:04
Так работает:


ВыборкаОКСО = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
   Пока ВыборкаОКСО.Следующий() Цикл
       ВыборкаФормаОбучения = ВыборкаОКСО.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
       Пока ВыборкаФормаОбучения.Следующий() Цикл
           ВыборкаИсточникФинансирования = ВыборкаФормаОбучения.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
           Пока ВыборкаИсточникФинансирования.Следующий() Цикл
               
               НомерСтроки = ТабДок.ВысотаТаблицы;
               ВыборкаПредмет = ВыборкаИсточникФинансирования.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
               Пока ВыборкаПредмет.Следующий() Цикл
                   Сообщить("Предмет");
                   ОбластьСтрока.Параметры.Заполнить(ВыборкаПредмет);
                   ТабДок.Вывести(ОбластьСтрока);
               КонецЦикла;
               
               ТабДок.Область(НомерСтроки+1,1,ТабДок.ВысотаТаблицы,1).Объединить();
               ТабДок.Область(НомерСтроки+1,2,ТабДок.ВысотаТаблицы,2).Объединить();
               ТабДок.Область(НомерСтроки+1,3,ТабДок.ВысотаТаблицы,3).Объединить();
               
           КонецЦикла;
       КонецЦикла;
       
   КонецЦикла;