Подсистема состоит из четырёх общих форм (любители минимизации изменений могут сократить это число до двух), один общий макет и один модуль (опять-таки, можно интегрировать в формы и не переносить модуль). В системе создан один отчёт для примера.
Суть разработки состоит в довольно простом вопросе, часто задаваемом от пользователей: "у меня есть список объектов, хочу посмотреть отчёт только по ним, а в списке сотни строк". Для автоматизации такого рода задач и создана эта подсистема.
Вкратце о её работе:
В форме, содержащей таблицу отбора СКД, в процедуру "При открытии" добавляется пять строчек:
Для каждого КолонкаОтбора из ЭлементыФормы.БыстрыйОтбор.Колонки Циклгде "БыстрыйОтбор" - имя элемента формы, связанного с отбором СКД,
Если Найти(КолонкаОтбора.Имя,"Значение")<>0 и Найти(КолонкаОтбора.Имя,"Дата")=0 Тогда
КолонкаОтбора.ЭлементУправления.УстановитьДействие("НачалоВыбора",Новый Действие("БыстрыйОтборЗначениеНачалоВыбора"));
КонецЕсли;
КонецЦикла;
и процедура
Процедура БыстрыйОтборЗначениеНачалоВыбора(Элемент, СтандартнаяОбработка)В конфигурацию минимально вставляются две общие формы - ФормаСпискаОтбора и ФормаВводаТаблицы.
ДополнительныйРАТ.ОбработатьУстановкуОтбора(ЭтаФорма,Элемент,СтандартнаяОбработка);
КонецПроцедуры
Дальнейшее см. образец - Отчет1.
Обновлено (добавлена работа с многотипными списками).
Обновлено 10.08.09 - удалён макет таблицы для загрузки, добавлена процедура в дополнительном модуле, что позволяет сократить добавления в отчёте до минимума строк.
Планируется: установку обработчика для колонки табполя отбора также вынести в дополнительный модуль (пока не проверяла, возможно ли это).
P.S. Конечно, это можно оптимизировать! Но именно сейчас времени на это у меня нет.
P.P.S. Будет время - отшлифую, а пока НИЧЕГО дорабатываться мной не будет.
P.P.P.S. Но за конструктивные замечания - спасибо.