Разница в математике СКД и кода

1. FesenkoA 58 14.11.23 14:19 Сейчас в теме
Добрый день. Есть отчет на СКД написанный очень давно, он расчитывает значение цены в рассчитываемых полях по несложной формуле

 Пар1/ ВЫРАЗИТЬ(ВЫЧИСЛИТЬВЫРАЖЕНИЕ("Сумма(Пар2)",,"Группировка","Первая","Последняя") / (ВЫРАЗИТЬ(ВЫБОР КОГДА Пар3= 0 ТОГДА 0 ИНАЧЕ (Пар4) / (Пар3) КОНЕЦ, "ЧИСЛО(15,2)")), "ЧИСЛО(15,2)") 


Появилась задача записывать эти значения в регистр для других задач. Данные, представленные выше я вывел
Пар1= 177
ВЫЧИСЛИТЬВЫРАЖЕНИЕ(Пар2)= 40,61278658
Пар3= 829
Пар4= 61 977,775

...но дальше начинается магия! По адаптивной формуле
Пар1 / ОКР(Пар2 / ОКР( Пар4 / Пар3 ,2 ),2);

сумма выходит 327,77, в то время как в отчете 325,85. Я попробовал убрать ОКР, и суммы почти сошлись, отклонение приблизительно 0.0083%, что на больших суммах накапливается до копек. (пример на фото)

Подскажите, почему математика в отчете работает иначе, и как можно этого избежать?
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. FesenkoA 58 14.11.23 14:56 Сейчас в теме
UPD: аналитически посчитал что СКД считает как

 Пар1/ ВЫРАЗИТЬ(ВЫЧИСЛИТЬВЫРАЖЕНИЕ("Сумма(Пар2)",,"Группировка","Первая","Последняя"), "ЧИСЛО(15,2)") / ((ВЫБОР КОГДА Пар3= 0 ТОГДА 0 ИНАЧЕ (ВЫРАЗИТЬ(Пар4, "ЧИСЛО(15,2)")) / (ВЫРАЗИТЬ(Пар3, "ЧИСЛО(15,2)")) КОНЕЦ)) 


то есть округляя каждое число по отдельности. Все равно не понимаю почему так?
3. VmvLer 14.11.23 15:16 Сейчас в теме
неудобно читать - этажами формулу сделали бы.

лень прокручивать
4. FesenkoA 58 14.11.23 23:14 Сейчас в теме
(3)
Пар1/
ВЫРАЗИТЬ(ВЫЧИСЛИТЬВЫРАЖЕНИЕ("Сумма(Пар2)",,"Группировка","Первая","Последняя") /
(ВЫРАЗИТЬ(ВЫБОР КОГДА Пар3= 0 ТОГДА 0 ИНАЧЕ (Пар4) / (Пар3) КОНЕЦ, "ЧИСЛО(15,2)")), "ЧИСЛО(15,2)")
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот