Как в вычисляемом поле скд округлить число?

1. Shecurok 16.04.21 10:58 Сейчас в теме
Добрый день. Вопрос собственно в шапке.

Формат не предлагать, он влияет только на отображение, но не округление.

Просто число у меня получается
12,7320513433843053416917466128131335
, которое необходимо сократить до 12,75.

Сама формула для этого поля следующая:

ВЫБОР КОГДА Net_Sales_YTD <> 0 ТОГДА ((Net_Sales_YTD - COGS) / Вычислить("Сумма(Net_Sales_YTD)") * 100)
Иначе 0
Конец


Пытался сделать так:
ВЫБОР КОГДА Net_Sales_YTD <> 0 ТОГДА ВЫРАЗИТЬ(((Net_Sales_YTD - COGS) / Вычислить("Сумма(Net_Sales_YTD)") * 100) КАК ЧИСЛО (15,2))


Ругается на неопознаный оператор ВЫБОР <<?>> КОГДА...

Написал как то не так?
Вознаграждение за ответ
Показать полностью
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
8. SlavaKron 16.04.21 11:10 Сейчас в теме
(1)
12,7320513433843053416917466128131335
, которое необходимо сократить до 12,75.
По какому принципу 12.732 может быть округлено до 12.75?
Nubsdale; +1 Ответить
12. Shecurok 16.04.21 11:15 Сейчас в теме
(8) я так понимаю она с последнего начнетт округлять, нет? не с 12.732, а с 12.<>335
18. Nubsdale 16.04.21 11:16 Сейчас в теме
(12) 12.732 округлить можно до 13, или до 12.7 или 12.73 или 12.74, но никак не в 12.75 :-) попробуйте просто ОКР()
19. Shecurok 16.04.21 11:17 Сейчас в теме
(18) ну 74 еще подойдет. сейчас гляну
20. Nubsdale 16.04.21 11:17 Сейчас в теме
(19) вам выше писали именно про арифметические правила округления
9. Nubsdale 16.04.21 11:10 Сейчас в теме
(1)
которое необходимо сократить до 12,75.

ВЫРАЗИТЬ(Net_Sales_YTD КАК (Число(10,2)) КАК Net_Sales_YTD
29. starik-2005 3031 16.04.21 15:01 Сейчас в теме
(1)
Написал как то не так?
"КОНЕЦ" во втором примере где?
2. Shecurok 16.04.21 11:01 Сейчас в теме
А, ошибка из модуля, забыл оттуда формулу убрать, смотрел там скобки как открываются\закрываются
3. Shecurok 16.04.21 11:01 Сейчас в теме
Но формула в любом случае не работает, "синтаксическая ошибка"
4. Shecurok 16.04.21 11:05 Сейчас в теме
Добавлено вознаграждение
26. ishelper 16.04.21 14:10 Сейчас в теме
(4)
Добавлено вознаграждение
А толку? По прошлым веткам автора можно заранее угадать - кто его получит:
https://forum.infostart.ru/forum9/topic259946/
https://forum.infostart.ru/forum9/topic260059/
27. Sashares 34 16.04.21 14:31 Сейчас в теме
(26) Ну так там ТС решил проблему, ТС молодец =)
А то что там в комментах кто-то что-то подсказал, это мелочи)))
28. starik-2005 3031 16.04.21 15:00 Сейчас в теме
(26) хочешь стартманю - напиши статью. Но это слишком дешевый труд, поэтому лучше закрой пару часов за это время у заказчика )))
30. ishelper 16.04.21 17:35 Сейчас в теме
(28) Я просил у вас совета? Что-то не припоминаю...

Как раз на такой случай Жванецкий сказал: "Не говорите, что мне нужно делать, и я не буду говорить, куда вам нужно идти"

Поскольку вы пренебрегли первой частью этого афоризма, то считайте, что я отказался от второй. Счастливого пути! :-P
5. SGordon1 16.04.21 11:05 Сейчас в теме
Вызов функции общего модуля Вам не подойдет случайно?
6. Shecurok 16.04.21 11:07 Сейчас в теме
(5) в вычисляемом поле СКД?
7. SGordon1 16.04.21 11:08 Сейчас в теме
Ну или такого типа "ВЫРАЗИТЬ(ЧислоВыбр/10 КАК ЧИСЛО(10, 0)) * 10 КАК ОкругленноеДоДесятиЧисло"
10. BomjBandit 16.04.21 11:13 Сейчас в теме
Попробуйте
ВЫБОР
КОГДА Net_Sales_YTD <> 0 ТОГДА (Net_Sales_YTD - COGS) / Выразить(Вычислить("Сумма(Net_Sales_YTD)") * 100 КАК Число(15,2))
Иначе 0
Конец                  					   

Проверьте не сидит ли NULL в Net_Sales_YTD
15. Shecurok 16.04.21 11:16 Сейчас в теме +1 $m
(10) синт ошибка (когда пытаюсь выйти с ред формулы)
17. JohnGalt 57 16.04.21 11:16 Сейчас в теме
(15) Можно также на вкладке Ресурсы
31. mpudy 16.04.21 17:36 Сейчас в теме
(15)
Если на вкладке ресурсы - нужно тип брать в кавычки и через запятую ВЫРАЗИТЬ(ВыражениеВозвращабщееЧисло, "ЧИСЛО(15, 2)")
11. JohnGalt 57 16.04.21 11:14 Сейчас в теме
Используйте метод ОКР()
13. Shecurok 16.04.21 11:15 Сейчас в теме
(11) в вычисляемых полях он вроде как неприменим
14. JohnGalt 57 16.04.21 11:16 Сейчас в теме
16. Shecurok 16.04.21 11:16 Сейчас в теме
(14) нуу сейчас проверю тогда
21. user1278383 3 16.04.21 11:19 Сейчас в теме
22. Shecurok 16.04.21 11:22 Сейчас в теме
(21) формат влияет на отображение, а не округление. в теме писал же
23. user1278383 3 16.04.21 11:27 Сейчас в теме
(22) не вижу проблем в таком случае использовать окр()
24. SlavaKron 16.04.21 11:39 Сейчас в теме
(22) А какая разница в рамках отчета СКД?
25. starik-2005 3031 16.04.21 13:28 Сейчас в теме
ВЫРАЗИТЬ(Какоеточисло, КАК ЧИСЛО(10,3))
32. 1395969 62 19.04.21 02:03 Сейчас в теме
Решение очень простое
Никаких "Выбор .. Когда .. Тогда" не нужно

В вопросе не уточнен принцип округления
Поэтому привожу универсальное решение для разных вариантов

Вот универсальное решение:
(ВЫРАЗИТЬ([ВашеЧисло] * 2 + [ДопЧисло] КАК ЧИСЛО(12, 1))) / 2

Где
[ВашеЧисло] = 12,7320513433843053416917466128131335 (или любое другое)

А [ДопЧисло] зависит от способа округления

1) Если
12.70 => 12.70
12.71 => 12.75
12.72 => 12.75
12.73 => 12.75
12.74 => 12.75
12.75 => 12.75
12.76 => 12.80
12.77 => 12.80
12.78 => 12.80, и т.д.
то
[ДопЧисло] = 0.0499999

2) Если
12.70 => 12.70
12.71 => 12.70
12.72 => 12.70
12.73 => 12.75
12.74 => 12.75
12.75 => 12.75
12.76 => 12.75
12.77 => 12.75
12.78 => 12.80, и т.д.
то
[ДопЧисло] = 0

P.S. В решении учитывается то, что оператор "Выразить" производит округление по математическим правилам
33. Grivba 14 19.04.21 09:53 Сейчас в теме
Кстати, ругается на оператор, т.к. есть выбор когда, а вот иначе нет перед концом.
И я надеюсь вы не пытаетесь посчитать изначально строковые данные?

И т.к. у вас нет условия Иначе. То тогда нет смысла в условии вообще.

Обязательно установите проверку на 0.

И еще. У вас стоит сумма().
Оставьте свое сообщение
Вакансии
Программист 1С
Казань
зарплата от 150 000 руб.
Полный день

Программист 1С:ERP
Москва
зарплата от 100 000 руб.
Полный день

Разработчик 1С
Москва
зарплата от 200 000 руб. до 300 000 руб.
Полный день

Программист 1С (удаленно)
Самара
зарплата от 230 000 руб. до 230 000 руб.
Полный день

Руководитель группы разработки 1С
Москва
зарплата от 250 000 руб. до 250 000 руб.
Полный день