Вывод и перенумерация отчета с заранее неизвестным количеством группировок.


1C v.7.7 Пример вывода отчета с заранее неизвестным количеством группировок, с возможностью изменять уровень вложенности группировок из списка значений на форме, с нумерацией конечного отчета, с выводом структуры вложенности группировок (с помощью внешней компоненты Йоксель - http://yoksel.net.ru/Hotfixes). В приложенном файле показан пример вывода отчета из сформированной таблицы значений. Код я старался закомментировать как можно подробней. Хоть семерка и вымирающая платформа, думаю еще есть люди, которые только начинают ей заниматься, и им это может пригодиться.

Написание отчета происходит в два этапа. Сбор данных, и вывод их на экран. И реализация именно вывода группировок отчета из таблицы значений на экран в платформе 7.7 оставляет желать лучшего. Когда я только начинал заниматься программированием в среде 1С 7.7, такая задача чуть ли не ставила в тупик. Потому что своей головы у меня хватало на вывод трех группировок (со вспомогательнгыми ТЗ), и очередность вывода была жестко привязана к коду. Потом однажды я нашел обработку [NotaBene] Универсальный отчет по таблице значений.  Она здорово выручала иногда, но отсутствие нумерации строк отчета, которую очень часто просили, и привязка к оформлению (которое по ряду причин мне на душу не легло) привело к идее написать что-то свое. Кроме всего прочего сама идея использовать внешнюю обработку для таких целей мне тоже не нравилась.

Таким образом, я поставил перед собой задачу придумать алгоритм для вывода отчета, который сможет реализовать следующий функционал:

  • - Возможность пользователя управлять вложенностями и видимостью группировок отчета из формы.
  • - Перенумерация строк конечного отчета
  • - Возможность легко в обработке изменить оформление отчета

Буду рад, если кому пригодиться :)

Файлы обработки:

-