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