Группировки при выводе на печать ТЗ (может кому пригодится) #104199


#0 by Diter
Тем, кто сталкивался с выводом на печать таблицы значений, знает как нудно организовываются группировки по столбцам (по типу запросов). Если ещё количество группировок 1 или 2 - можно извернуться. А если больше? А если количество не известно? Короче. Столкнулся и я с таким. Вот что у меня получилось. Дано ТЗ - количество колонок любое Список группировок - список значений, содержащий названия колонок, по которым нужно группировать. Ограничения : 1. колонки для группировки должны распологаться начиная с первой в том порядке, как они указаны в списке группировок. 2. ТЗ сортируется по этим колонкам-группировкам 3. в печатной форме горизонтальные секции называются по принципу "Группировка_"+НомерГруппировки (Группировка_1, Группировка_2 и т.д.) Теперь сам код //************************************* Код рабочий и используется в универсальной печати справочников по любым группировкам по любым реквизитам (в т.ч. и по значениям реквизитов подчинённых справочников). Единственное ограничение - количество группировок зависит от того, сколько секций вида "Группировка_..." вы создадите. Итогов по группировкам мне не надо было, но их можно легко получить...
#1 by Diter
Маленькая поправка (удалял коментарии и удалил строку лишнюю) В процедуре "ВывестиГруппировки" нужно в конце так
#2 by GrayT
Думаешь кому нить интересно будет все это в кучу собирать? Оформи как пологается в виде обработки и выложи :) Кстати делал нечто подобное, только список колонок можно было задавать в произвольном порядке в виде номеров или идентификаторв колонки. + специальная функция обхода сгруппированной ТЗ по группам. Типа номера группировки при обходе запроса
#3 by Diter
Я вообще то про идею говорил. Мне не жалко отчёта, просто ничего нового в печати справочников нет. Выкладывать на проклуб смысла нет. или есть? А идея в том, что формируется список значений, состоящий из ТЗ, свёрнутых последовательно по колонкам группировкам. Потом начинается обход этих ТЗ начиная с самой "маленькой" (самая старшая группировка). С помощью рекурсии последовательно обходятся все строки всех свёрнутых ТЗ. При этом формируется список значений предыдущих группировок, чтобы обеспечить точную принадлежность строки следующей ТЗ к группировке из предыдущей ТЗ.
#4 by GrayT
Я видел таких обработок несколько. Всегда было интересно сравнить их по производительности. На проклабе есть набор для работы с ТЗ. В нем есть и произвольная группировка и обход ТЗ
#5 by Diter
Ну значит я изобрёл велосипед..... Ну и ладно...
#6 by GrayT
Я этого не говорил - возможно это самый быстрый велосипед ;-)
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С