Вариант через ДеревоЗначений
// Результат запроса помещается в дерево значений
ДЗ=Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
// Дерево значений выводится рекурсивно на форму
Таб.НачатьАвтогруппировкуСтрок();
ВывестиДерево(ДЗ.Строки);
Таб.ЗакончитьАвтогруппировкуСтрок();
// Рекурсивная процедура вывода дерева на форму
Процедура ВывестиДерево(Строки)
Для Каждого ТекСтрока ИЗ Строки Цикл
Если ТекСтрока.Уровень()=0 Тогда
ОП = Макет.ПолучитьОбласть("СтрокаИтоги");
ИначеЕсли ТекСтрока.Уровень()=1 Тогда
ОП = Макет.ПолучитьОбласть("СтрокаЖ");
ИначеЕсли ТекСтрока.Уровень()=2 Тогда
ОП = Макет.ПолучитьОбласть("СтрокаЖ1");
Иначе
ОП = Макет.ПолучитьОбласть("Строка");
КонецЕсли;
ОП.Параметры.Заполнить(ТекСтрока);
ВывестиДерево(ТекСтрока.Строки);
КонецЦикла;
КонецПроцедуры;
Вариант через группировку строк:
ВыборкаПериод = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
ТабДок.НачатьГруппуСтрок();
ВыборкаФирма = ВыборкаПериод.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаФирма.Следующий() Цикл
ТекФирма = ВыборкаФирма.Фирма;
ВыборкаНомерСчета = ВыборкаФирма.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
ВыборкаДетали = ВыборкаНомерСчета.Выбрать();
Пока ВыборкаДетали.Следующий() Цикл
...