Есть вот такой код
итТаблицаЗапроса = СоздатьОбъект("ИндексированнаяТаблица");
итТаблицаЗапроса.ЗагрузитьЗапрос(Запрос);
итТаблицаЗапроса.НоваяКолонка("Маршрут");
ЗаполнитьТаблицуМаршрутами(итТаблицаЗапроса);
СтрокаГруппировок = "Маршрут:Маршрут";
тзГруппировки.ВыбратьСтроки();
Пока тзГруппировки.ПолучитьСтроку() = 1 Цикл
Если тзГруппировки.Пометка = 2 Тогда
Если тзГруппировки.Значение = "Документ" Тогда
СтрокаГруппировок = ";Тек" + тзГруппировки.Значение + ":Тек" + тзГруппировки.Значение;
Иначе
СтрокаГруппировок = ";" + тзГруппировки.Значение + ":" + тзГруппировки.Значение;
КонецЕсли;
КонецЕсли;
КонецЦикла;
с",1);
ВывестиРекурсивно(Таблица,итТаблицаЗапроса,сзГруппировки,1);
Строка группировок получается следующего вида:
СтрокаГруппировок = "Маршрут:маршрут;Контрагент:Контрагент;ТекДокумент:ТекДокумент"
Реализация функции такая:
Процедура ВывестиРекурсивно(Таблица,ИТЗапроса,сзГруппировки,Индекс)
Перем пПерваяСтрока,пПоследняяСтрока;
пПерваяСтрока = 0;
пПоследняяСтрока = 0;
ЭлементСписка = ?(сзГруппировки.ПолучитьЗначение(Индекс) = "Документ","ТекДокумент",сзГруппировки.ПолучитьЗначение(Индекс));
ИТЗапроса.ВыбратьСтроки();
Пока ИТЗапроса.ПолучитьСтроку() = 1 Цикл
Группировка = ИТЗапроса.ПолучитьЗначение(,сзГруппировки.ПолучитьЗначение(Индекс));
Таблица.ВывестиСекцию("Группировка" + Индекс +"|Основная");
Сумма = ИТЗапроса.ИтогСумма;
Таблица.ПрисоединитьСекцию("Группировка" + Индекс +"|Сумма");
Если ПустоеЗначение(ИТЗапроса.тзПотомки) = 0 Тогда
Индекс = Индекс + 1;
ВывестиРекурсивно(Таблица,ИТЗапроса.тзПотомки,сзГруппировки,Индекс);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
при реализации рекурсивного вывода пишет ошибку!
Цитата:Если ПустоеЗначение(ИТЗапроса.тзПотомки) = 0 Тогда
{C:\DOCUMENTS AND SETTINGS\АДМИНИСТРАТОР\РАБОЧИЙ СТОЛ\РЕЕСТР НАКЛАДНЫХ ПО МАРШРУТАМ.ERT(681)}: Поле агрегатного объекта не обнаружено (тзПотомки)