Заказчик попросил переделать старый отчет на СКД. Не стал сильно мучиться и оставил программное формирование фильтров и таблицы данных, только слегка оптимизировал по быстродействию. Полностью удалил все формирование отчета, доверив эту процедуру СКД.
Чтоб работали расшифровки и работали быстро, сформированная таблица данных хранится в хранилище значений и передается в компоновщик в процедуре модуля “При компоновке результата”.
Некоторые ресурсы считается на разных уровнях по разным формулам с помощью функции СКД ВычислитьВыражениеСГруппировкойМассив(). То есть на уровне договора берется максимум, на всех остальных сумма значений.
Примеры вычисления ресурсов:
Сумма(ВычислитьВыражениеСГруппировкойМассив("Максимум(ПланСуммаРуб)","Договор"));
ВЫБОР КОГДА Сумма(ПланСуммаДолл)<>0 Тогда Окр((Сумма(ФактСуммаДоллДо)+Сумма(ФактСуммаДоллЗа))/Сумма(ВычислитьВыражениеСГруппировкойМассив("Максимум(ПланСуммаДолл)","Договор"))*100,2)
Иначе 0
КОНЕЦ
Заказчику отчет понравился, надеюсь, пригодится и Вам.
Акция! Вы можете скачать эту разработку в составе архива всех моих разработок, которые я предлагаю за StartMone, по Специальной цене: //infostart.ru/public/960899/#archive