Данный вопрос стал после того, как я увидел новый авансовый отчет. Вот примерно такой он.
Обратите внимание на ту гадость, что нам в начале нужно получить сводные данные. То есть даже, если все делать руками, то придется два раза проходить по таблице. Но и сам язык 1C совсем не C++ для таких операций. Ведь счетов может быть много и они могут быть совершенно разные. Выход в такой ситуации в использовании запроса к самому себе.
Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Период с (ТекущийДокумент()) по (ТекущийДокумент()); |ОбрабатыватьДокументы все; |КоррСчет = Документ.АвансовыйОтчет.СчетДляАванса.Счет; |НДС = Документ.АвансовыйОтчет.СуммаНДС; |Сумма = Документ.АвансовыйОтчет.СуммаСНДС; |Функция ИтогоПоСчету = Сумма(Сумма); |Функция НДСПоСчету = Сумма(НДС); |Группировка КоррСчет; |"//}}ЗАПРОС
Обратите внимание, что запрос идет к текущему документу. Вот такая хитрость. В нем же и указана группировка, чтобы получать сводные параметры по отчету. Дальше можно перебирать сгруппированные данные.
Пока Запрос.Группировка("КоррСчет") = 1 Цикл Т.ВывестиСекцию("Секция_9"); КонецЦикла;
И выводить. Но при таком подходе документ должен быть записан. Читайте "Шаг 256 - Программно пишем документ".