|
Не выводит детальные записи при обходе с иерархией
| ☑ |
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)
В рекурсию я могу зайти в любом случае. Если условие Следующий() не выполниться, то из рекурсии сразу же возвращает. Результат тот же, а обрабатывать проще. Или я ошибаюсь?
|
|