Возможности подсистемы:
- Стандартная форма настройки отчета, которую программист может легко изменить, добавив нужную функциональность
- Регистр сведений, где хранятся настройки отчетов пользователей
- Универсальная форма вывода отчета, которая хранит историю вызовов, обладает расширенными возможностями расшифровки, показывает отборы и параметры
- Подсистема содержит минимум кода, и сделана для быстрого встраивания в существующие конфигурации
- Один отчет может работать с несколькими схемами компоновки данных, при изменении активной схему установленные настройки и отборы сохраняются (можно сделать одну схему для остатков, другую для оборотов)
- Есть возможность настроить список доступных полей отчета, в т.ч. список доступных реквизитов полей отчета
Архитектура:
- В подсистеме два общих модуля, один содержит логику работы с механизмами СКД, второй сделан с целью вывести больше кода из формы настройки отчета.
- Отчет «Эталонный отчет» является шаблоном, на основании которого программист будет делать свои отчеты.
- Отчет «Универсальный отчет» служит для вывода результата отчета, все созданные отчеты вызывают этот отчет для вывода.
- Регистр сведений «Настройки отчетов» хранит настройки пользователей для отчетов, кроме компоновщика настроек можно хранить дополнительные сведений, передав структуру в процедуре сохранения и восстановления настроек.
Алгоритм создания нового отчета:
- Копируем «Эталонный отчет», меняем имя отчета.
- Настраиваем схему компоновки данных. если не планируем использовать несколько схем компоновки в отчете – удаляем лишние схемы компоновки и табличный макет «Схемы».
- Если собираемся использовать несколько схем, то в табличном макете «Схемы» указываем список используемых схем компоновки в первой колонке, и если нужно во второй указываем псевдонимы.
- Если в отчете нужно установить какие –либо параметры, кроме периода, в процедуру УстановитьПредопределенныеПараметрыОтчета() модуля создаваемого отчета написать алгоритмы установки значений, используя свойство отчета КомпоновщикНастроек
- Если в отчете используются внешние наборы данных определяем функцию отчета «ЗаполнитьВнешниеНаборыДанных», возвращающую структуру.
- Если хотим ограничить доступные поля – настраиваем это в табличном макете «Поля» (также как это сделано в нем), если ограничения не нужны – удаляем макет.
UPD: Собрал всю подсистему в один внешний отчет.
(Заранее извиняюсь, мало тестировал, могут быть ошибки)