У штатного запроса, можно было написать:
Пока Запрос.Группировка(1)=1 Цикл
// Выводим Филиал и Итог по всем товарам
Пока Запрос.Группировка(2)=1 Цикл
// Выводим Товар и Итог по товару
Группировать() лучше использовать, если нужны итоги по группировкам. А если просто перебор - быстрее отсортировать прямо в запросе по нужным полям, да простым перебором таблицы...
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший