Неправильный расчет общих итогов в СКД #611440


#0 by daim-1
В СКД есть выражение для расчета ресурса, назовем его "Сумма3". Выглядит так: ВЫБОР КОГДА Сумма(Сумма1)-Сумма(Сумма2) > 0 ТОГДА Сумма(Сумма1)-Сумма(Сумма2) ИНАЧЕ 0 КОНЕЦ Рассчитывается по всему, чему только можно, то есть галочек в "Рассчитывать по" никаких нет. По группировкам результаты корректны, но в общих итогах результат равен нулю, потому что общий итог по полю "Сумма1" меньше общего итога по полю "Сумма2", хотя, разумеется, в группировках "Сумма3" больше нуля встречается множество раз. То есть СКД сразу применяет эту формулу и для общих итогов, а не рассчитывает их по группировкам. Спрашивается, как сделать так, чтобы получить корректный результат по ресурсу "Сумма3" в общих итогах.
#1 by Bober
всего не видно, но сходу можно предложить воткнуть другой алгоритм расчета общего итога по этому ресурсу (Рассчитывать по общие итоги)
#2 by daim-1
Да нет же!
#3 by Fragster
да да же. формула на уровне итогов срабатывает
#4 by daim-1
А конкретнее?
#5 by Fragster
для сумма3 функция срабатывает по результатам общих итогов для сумма1 и сумма2, а не по суммам результатов нижележащих группировок
#6 by daim-1
"То есть СКД сразу применяет эту формулу и для общих итогов, а не рассчитывает их по группировкам." - я это же и писал вообще-то. А вопрос именно в том как рассчитать по группировкам, а потом просуммировать.
#7 by Fragster
->
#8 by daim-1
> :)
#9 by Bober
Прервать;
#10 by daim-1
Вот данные какие: итог по "Сумма1" = 236000, итог по "Сумма2" = 370000, итог по "Сумма3" = 0, а должно быть 150000. Формулу сугубо для итогов придумать не могу пока. Надеюсь на помощь, но пока безрезультатно.
#11 by Bober
"а должно быть" - да?
#12 by daim-1
Представь себе, да. Поскольку в группировках "Сумма3" не равна нулю и набирается на пресловутых 150000. Я вот и спрашиваю, как сделать так, чтобы СКД не применяла формулу для итогов, а суммировала результаты по группировкам.
#13 by daim-1
Логика, кстати, подсказывает, что "Сумма3", рассчитываемая по такой формуле, может быть произвольной от нуля до "Сумма1".
#14 by Hmster
ВЫБОР КОГДА Сумма(Сумма1 - Сумма2) > 0 ТОГДА Сумма(Сумма1 - Сумма2) ИНАЧЕ 0 КОНЕЦ ВЫБОР КОГДА Сумма(Сумма1 - Сумма2) > 0 ТОГДА Сумма(Сумма1) - Сумма(Сумма2) ИНАЧЕ 0 КОНЕЦ
#15 by Hmster
можно еще много вариантов придумать
#16 by Fragster
да это всё фигня. если уровней группировок больше 1, то получается бардак.
#17 by Fragster
+ на разных уровнях будет разная сумма
#18 by Bober
добавь в ресурсы еще раз поле Сумма3 поставь галку Рассчитывать только по общие итоги, в  выражении напиши СУММА(Сумма3)
#19 by daim-1
это ведь непроверенный вариант, правда? Попробовал - ничего не изменилось.
#20 by Bober
нет, в сложных отчетах используется
#21 by echo77
Платформа какая? В 8.2.13 некоторых плюшек СКД нет, в 8.2.14 уже есть... называется ВычислитьВыражениеСГруппировкойМассив. - Очень удобно, пользовался, реально помогла. В вашем случае советую, как уже было предложено, еще один ресурс для вашего поля завести с расчетом итогов по общие итоги и функцию Сумма(ВычислитьВыражениеСГруппировкойМассив("ВЫБОР КОГДА Сумма(Сумма1)-Сумма(Сумма2) > 0 ТОГДА Сумма(Сумма1)-Сумма(Сумма2) ИНАЧЕ 0 КОНЕЦ ")) почитать можно в справке и здесь:
#22 by daim-1
Вот! Оно самое - "ВычислитьВыражениеСГруппировкойМассив". Идеально подошло, большое спасибо, echo77!
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям