Имя: Пароль:
1C
1С v8
Неправильный расчет общих итогов в СКД
0 daim-1
 
18.05.12
16:02
В СКД есть выражение для расчета ресурса, назовем его "Сумма3". Выглядит так:

ВЫБОР КОГДА Сумма(Сумма1)-Сумма(Сумма2) > 0 ТОГДА Сумма(Сумма1)-Сумма(Сумма2) ИНАЧЕ 0 КОНЕЦ

Рассчитывается по всему, чему только можно, то есть галочек в "Рассчитывать по" никаких нет. По группировкам результаты корректны, но в общих итогах результат равен нулю, потому что общий итог по полю "Сумма1" меньше общего итога по полю "Сумма2", хотя, разумеется, в группировках "Сумма3" больше нуля встречается множество раз. То есть СКД сразу применяет эту формулу и для общих итогов, а не рассчитывает их по группировкам.

Спрашивается, как сделать так, чтобы получить корректный результат по ресурсу "Сумма3" в общих итогах.
1 Bober
 
18.05.12
16:03
(0) всего не видно, но сходу можно предложить воткнуть другой алгоритм расчета общего итога по этому ресурсу (Рассчитывать по общие итоги)
2 daim-1
 
18.05.12
16:06
Да нет же!
3 Fragster
 
гуру
18.05.12
16:07
(2) да да же. формула на уровне итогов срабатывает
4 daim-1
 
18.05.12
16:11
(3) А конкретнее?
5 Fragster
 
гуру
18.05.12
16:17
для сумма3 функция срабатывает по результатам общих итогов для сумма1 и сумма2, а не по суммам результатов нижележащих группировок
6 daim-1
 
18.05.12
16:21
"То есть СКД сразу применяет эту формулу и для общих итогов, а не рассчитывает их по группировкам." - я это же и писал вообще-то. А вопрос именно в том как рассчитать по группировкам, а потом просуммировать.
7 Fragster
 
гуру
18.05.12
16:26
(6)->(1)
8 daim-1
 
18.05.12
16:27
(7)>(2)

:)
9 Bober
 
18.05.12
16:28
Прервать;
10 daim-1
 
18.05.12
16:31
Вот данные какие: итог по "Сумма1" = 236000, итог по "Сумма2" = 370000, итог по "Сумма3" = 0, а должно быть 150000. Формулу сугубо для итогов придумать не могу пока. Надеюсь на помощь, но пока безрезультатно.
11 Bober
 
18.05.12
16:48
"а должно быть" - да?
Сумма(Сумма1)-Сумма(Сумма2) > 0 ... иначе 0
236000 - 370000
12 daim-1
 
18.05.12
16:53
Представь себе, да.

Поскольку в группировках "Сумма3" не равна нулю и набирается на пресловутых 150000. Я вот и спрашиваю, как сделать так, чтобы СКД не применяла формулу для итогов, а суммировала результаты по группировкам.
13 daim-1
 
18.05.12
16:56
Логика, кстати, подсказывает, что "Сумма3", рассчитываемая по такой формуле, может быть произвольной от нуля до "Сумма1".
14 Hmster
 
18.05.12
17:04
ВЫБОР КОГДА Сумма(Сумма1 - Сумма2) > 0 ТОГДА Сумма(Сумма1 - Сумма2) ИНАЧЕ 0 КОНЕЦ
ВЫБОР КОГДА Сумма(Сумма1 - Сумма2) > 0 ТОГДА Сумма(Сумма1) - Сумма(Сумма2) ИНАЧЕ 0 КОНЕЦ
15 Hmster
 
18.05.12
17:04
можно еще много вариантов придумать
16 Fragster
 
гуру
18.05.12
17:08
(12) да это всё фигня. если уровней группировок больше 1, то получается бардак.
17 Fragster
 
гуру
18.05.12
17:08
(16)+ на разных уровнях будет разная сумма
18 Bober
 
18.05.12
17:11
(12) добавь в ресурсы еще раз поле Сумма3 поставь галку Рассчитывать только по общие итоги, в  выражении напиши СУММА(Сумма3)
19 daim-1
 
18.05.12
17:37
(18) это ведь непроверенный вариант, правда? Попробовал - ничего не изменилось.
20 Bober
 
18.05.12
18:46
нет, в сложных отчетах используется
21 echo77
 
18.05.12
19:39
Платформа какая? В 8.2.13 некоторых плюшек СКД нет, в 8.2.14 уже есть... называется ВычислитьВыражениеСГруппировкойМассив.
- Очень удобно, пользовался, реально помогла.

В вашем случае советую, как уже было предложено, еще один ресурс для вашего поля завести с расчетом итогов по общие итоги и функцию Сумма(ВычислитьВыражениеСГруппировкойМассив("ВЫБОР КОГДА Сумма(Сумма1)-Сумма(Сумма2) > 0 ТОГДА Сумма(Сумма1)-Сумма(Сумма2) ИНАЧЕ 0 КОНЕЦ "))

почитать можно в справке и здесь: http://infostart.ru/public/86764/
22 daim-1
 
21.05.12
10:46
(21) Вот! Оно самое - "ВычислитьВыражениеСГруппировкойМассив". Идеально подошло, большое спасибо, echo77!
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший