1С СКД Как вывести положительные значения разности в шапке группировки
Есть отчет, в нём поля "Долг", "Продажи", "Просрочка". В ресурсах СКД заданы так:
Долг = Сумма(СуммаОстаток),
Продажи = Сумма(ПродажиПриход)
В просрочку вывожу только положительные значения:
Просрочка = ВЫБОР КОГДА Сумма(СуммаОстаток) - Сумма(ПродажиПриход) > 0 ТОГДА Сумма(СуммаОстаток) - Сумма(ПродажиПриход) ИНАЧЕ 0 КОНЕЦ.
В колонке выводятся разности без минусов, так и надо.
Задача: в шапке группировки вывести сумму полученных результатов, то есть исключительно положительных разностей.
Важно: в формуле нужны именно Сумма(Значения)
, а не просто Значения
.
Если бы речь шла про одно Сумма(Значение)
, то решилось бы так:
Сумма(ВЫБОР КОГДА СуммаОстаток > 0 ТОГДА СуммаОстаток ИНАЧЕ 0 КОНЕЦ)
или с двумя значениями без агрегатов:
Сумма(ВЫБОР КОГДА СуммаОстаток - ПродажиПриход > 0 ТОГДА СуммаОстаток - ПродажиПриход ИНАЧЕ 0 КОНЕЦ)
Но нужно примерно так: НЕПРАВИЛЬНЫЙ ПРИМЕР:
Сумма(ВЫБОР КОГДА Сумма(СуммаОстаток) - Сумма(ПродажиПриход) > 0 ТОГДА Сумма(СуммаОстаток) - Сумма(ПродажиПриход) ИНАЧЕ 0 КОНЕЦ).
Конечно же, ошибка про недопустимость вложенных агрегатов.
Будьте любезны, подскажите, пожалуйста, как выйти из положения.
Ответы (1 шт):
Для корректного подсчета в хитровывернутых формулах не хватало правильного упоминания группировок.
Вот так это делается:
Сумма(ВычислитьВыражениеСГруппировкойМассив("ВЫБОР
КОГДА
Сумма(ЕСТЬNULL(СуммаОстаток, 0)) - Сумма(ЕСТЬNULL(ПродажиПриход, 0)) > 0
ТОГДА
Сумма(ЕСТЬNULL(СуммаОстаток, 0)) - Сумма(ЕСТЬNULL(ПродажиПриход, 0))
ИНАЧЕ 0
КОНЕЦ" "Группировка1, Группировка2, Группировка3"))