Имя: Пароль:
1C
1С v8
Обход всей выборки
,
0 Быдло замкадное
 
25.05.16
11:10
Особо стараюсь не работать с выборкой, тут надо и не могу разобраться с банальным вопросом, прошу помощи

Есть выборка (вывел ее в ТЗ что бы вам показать):

http://storage5.static.itmages.ru/i/16/0525/h_1464163415_1463625_d5f0e9f747.jpg

Хочу обойти все детальные записи, написал код:

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

В итоге в сообщениях выводит только 7755 и 1.
А 3900 и 5850 не выводит.
Как обходить выборку что бы все детальные записи обойти? Туплю чет...
1 AllJoke
 
25.05.16
11:11
7755 и 1 - это детальные
3900 и 5850 - групповые.
2 AllJoke
 
25.05.16
11:11
либо отладчик.
3 Lexey_
 
25.05.16
11:13
(0) ВыборкаНалогиНачисленные переменная переопределяется
4 Быдло замкадное
 
25.05.16
11:14
да нет они все детальные.
Строки с суммами 7755 1 3900 и 5850 ничем друг от друга не отличаются.
Но выборка залазиет только в первую "группировку". Что поменять надо непойму
5 Fragster
 
гуру
25.05.16
11:14
а нафиг объод по группировкам? Выборка.ТипЗаписи() и .Группировка() в случае (0) идеально подходят и код менять не надо при изменении количества итоговых полей, а и в принципе он "чище"
6 Nuobu
 
25.05.16
11:15
(4) Называй каждую выборку по разному.
7 Nuobu
 
25.05.16
11:16
(4) После первой группировки оно попадает в конец и вообще выпадает из цыкла, т.к. твоя самая внешняя выборка называется так же, как и самая последняя, то бишь внутренняя.
8 Быдло замкадное
 
25.05.16
11:19
(6) Точно!

Сработало:

Пока ВыборкаНалогиНачисленные.Следующий() Цикл
        
        ВыборкаНалогиНачисленные2 = ВыборкаНалогиНачисленные.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);        
        Пока ВыборкаНалогиНачисленные2.Следующий() Цикл
            
            ВыборкаНалогиНачисленные3 = ВыборкаНалогиНачисленные2.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);        
                Пока ВыборкаНалогиНачисленные3.Следующий() Цикл
                    
                    ВыборкаНалогиНачисленные4 = ВыборкаНалогиНачисленные3.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);        
                    Пока ВыборкаНалогиНачисленные4.Следующий() Цикл
                        
                        ВыборкаНалогиНачисленные5 = ВыборкаНалогиНачисленные4.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);        
                        Пока ВыборкаНалогиНачисленные5.Следующий() Цикл
                            Сообщить(ВыборкаНалогиНачисленные5.НалогНачислено);    
                        КонецЦикла;
                        
                    КонецЦикла;
                                
                КонецЦикла;
            
        КонецЦикла;
        
    КонецЦикла;
9 Fragster
 
гуру
25.05.16
11:20
(8) выкинь этот код, юзай (5)
10 Быдло замкадное
 
25.05.16
11:40
(9) как именно мне получить детальную запись?
11 Fragster
 
гуру
25.05.16
11:42
(10) волшебный "Если" спасет отца русской демократии
12 Fragster
 
гуру
25.05.16
11:42
ну и нафига в запросе итоги, если они тебе не нужны? или это упрощенный код?
13 Быдло замкадное
 
25.05.16
12:02
(11) ну что бы добраться до нужного если мне все равно выборку 5 раз делать)

(12) Выборка с готового запроса на 5 миллионов строк, запрос переделывать не вариант)

Вобщем мне нужна некая функция ПолучитьДетальнуюЗапись, но как ее выполнить не знаю. Возможно нет такого
14 Fragster
 
гуру
25.05.16
12:05
(13) в (5) и (11) все написано же. убрать "по группировкам" и использовать "если" и .ТипЗаписи(). ну и СП можно еще посмотреть.
15 Timon1405
 
25.05.16
12:08
(0) Если использовать конструктор запроса с обработкой результата, таких проблем не возникнет. берете ваш запрос, вставляете в конструктор, он сам нарисует правильный обход выборки