Однажды появилась необходимость посчитать в отчете не стандартные итоги. Долго искал информацию в интернете, но ничего подобного не нашел. Путем экспериментов нашел возможность, описания которой ранее нигде не видел. Думаю, кому-то может быть полезно.
Задача: необходимо в отчете получить итоги, которые рассчитываются следующим образом
Для расчета вертикальных и горизонтальных итогов все стандартно:
- Итог по горизонтали рассчитывается формулой
Среднее(ВычислитьВыражениеСГруппировкойМассив("Максимум(Значение)","Лево, Верх"))
- Итого по вертикали рассчитывается формулой
Сумма(ВычислитьВыражениеСГруппировкойМассив("Максимум(Значение)","Лево, Верх"))
С итогом на пересечении общих итогов по горизонтали и по вертикали (ячейка в правом нижнем углу) сложнее.
Эксперимент показал, что можно делать вложенные вычисляемые выражения, т.е. формула для общего итога будет
Сумма(ВычислитьВыражениеСГруппировкойМассив("Среднее(ВычислитьВыражениеСГруппировкойМассив(""Максимум(Значение)"",""Лево,Верх""))","Лево"))
Вложенные кавычки, как в стандартных текстовых константах выделяются двойными кавычками.
В результате получаются такие формулы расчета итогов.
В файлах отчет с примером.
Тестировалось на платформе 8.3.10.2667.
А есть ли возможность подсчитать произвольный итог для полей группировок, не ресурсов? Например, у меня есть группировка со списком регистраторов и нужно над ними, в верхнем поле группировки, вывести количество документов. В запросе я могу сгруппировать, и задать Количество(РАЗЛИЧНЫЕ Регистратор), а в СКД как быть?
(1) Если не ошибаюсь, это возможно реализовать через пользовательские поля с типом «Выражение».
У меня была задача посчитать количество дней, в которые были поступления (Количество(РАЗЛИЧНЫЕ Период)).
Так вот через пользовательские поля это удалось посчитать.
(2) Получается, что добавляем доп. поле, так, в итоге, и сделал, Но хочется балалайку, как с ресурсами.
(1) Можно так попробовать
Можно добавить вычисляемое поле:
ВычислитьВыражениеСГруппировкойМассив(«Максимум(Значение)»,»Лево, Верх»)
И в итогах сделать проще:
Среднне(ВычисляемоеПоле)
Сумма(ВычисляемоеПоле)
Сумма(ВычислитьВыражениеСГруппировкойМассив(«Среднне(ВычисляемоеПоле)»,»Лево»))
То же самое, но красивее получается.
Долго искал операторы Лево и ВВерх. Думал, как сильно улучшить жизнь с ними в сложных случаях.
А оказалось это имена колонок.
Жизнь не справедлива.
Это все конечно красиво кроме одного. Когда отчет перестроят и изменят группировки вот тогда значения будут весьма интересны. Для простенького примерчика покатит. А вот реально для сложного отчета предусмотреть вариации крайне тяжело.
О божешки ты мои!!!! 2 дня 2 человека страдали (1 точно страдал) до прочтения этой статьи.
Кто ж знал, что можно выделять двумя кавычками вложенные выражения.
Я в шоке.
Спасибо