Имя: Пароль:
1C
1С v8
Не выводит детальные записи при обходе с иерархией
0 live in sky dreams
 
21.04.14
18:20
Вот такая процедура вывода группировок.

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


для последнего цикла нужно линейно. Но не могу допетрить как до указания Выбрать() узнать это будет последний цикл или нет?
1 live in sky dreams
 
21.04.14
19:38
апну
2 live in sky dreams
 
21.04.14
20:09
Блин. В построителе отчета как то выводятся детальные записи же (((
3 live in sky dreams
 
21.04.14
21:26
Еще ап...
4 kotletka
 
21.04.14
21:53
так ты  рекурсию загоняй если только выполняется условие Следующий(), а не как у тебя
5 Naumov
 
21.04.14
22:07
после обхода с группировокой совсем неплохо обойти прямым для выборки детальных.
6 live in sky dreams
 
21.04.14
22:40
(4)это переделаю, но сути моего вопроса не меняет

(5)Дважды прогонять одну и ту же выборку? Сперва иерархией, потом линейным, я Вас правильно понял?
7 live in sky dreams
 
21.04.14
22:50
Кстати, +(4)
В рекурсию я могу зайти в любом случае. Если условие Следующий() не выполниться, то из рекурсии сразу же возвращает. Результат тот же, а обрабатывать проще. Или я ошибаюсь?