Универсальный шаблон на тонких формах с использованием СКД имеет богатый механизм, который можно использовать при создании практически любого отчета. Шаблон был перенесен из старого моего шаблона на обычных формах с максимальным переносом функциональности. Шаблон еще не полностью отлажен, отражено пока не все что хотелось. Поэтому данная статья будет развиваться. Постараюсь позже тут же выложить шаблон на обычных формах (его надо просто будет привести к более шаблонному виду).
Основной вид отчета:
Все кнопки в принципе стандартны. Единственное, это вынесла кнопку скрытия/открытия уровней в панель:
Настройки отчета имеют два вида редактирования: Простой и Расширенный.
Теперь как с ним работать:
1) Шаблон может работать с несколькими схемами СКД и использовать несколько вариантов в схеме. На основе структуры метаданных отчета строится меню выбора отчетов. Если используется всего одна схема с одним вариантом, то меню скрыто.
Если какую то схему не следует отображать в меню, например, при использовании схемы для нестандартной расшифровки отчета, то в свойстве Комментарий схемы компоновки записываем слово "НеПоказывать".
2) С помощью свойства Синоним схемы компоновки открывается тот или иной слой выбора периода. Пока возможны варианты:
Остатки: используется стандартный параметр Период, который будет подставляться в схему при ее выполнении.
Оборот: выбор периода встроен в отчет и не зависит от конфигурации. Используются стандартные параметры НачалоПериода и КонецПериода, которые будут подставляться при выполнении схемы автоматически.
БезВыбора: в данном случае панель выбора периода скрыта.
Как понятно, возможно добавлять свои панели подобно введенным.
3) Основной механизм работы со схемой компоновки данных описан в модуле отчета, он достаточно универсален и гибок (область РаботаСоСхемойКомпановкиДанных). Использовать можно при нестандартных отчетах со сложной структурой. Замечу только, что если в отчете определены параметры помимо стандартных дат, то необходимо в процедуре ПримененияПараметровСКД описать их заполнение, например:
// нестандартные параметры
ПолеПараметра = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("ВидПодразделения");
Если ПолеПараметра <> Неопределено Тогда
КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ВидПодразделения"), ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Вид подразделения"));
КонецЕсли;
Пока вкратце все.