Имя: Пароль:
1C
1С v8
Округление в 1С
0 Phace
 
26.10.15
18:07
Что-то не могу сообразить как средствами 1С округлить число 0,5048 до 0,51.

Вариант: Окр(Окр(0.5048, 3, 1), 2, 1) плох, так как знаков после запятой может быть неограниченное количество. Писать цикл исходя из количества знаков как то не очень айс. Может есть у кого иное решение?
1 Fragster
 
гуру
26.10.15
18:08
Окр(Число+0.5)?
2 mikecool
 
26.10.15
18:08
(1) +1
3 Fragster
 
гуру
26.10.15
18:08
вернее
Окр(Число+0.5, 2, РежимОкругления.Окр15как10)
4 PR третий
 
26.10.15
18:09
(0) В твоей постановке решение очень простое Окр(0.5048, 3, 1) + 0.01
5 Phace
 
26.10.15
18:09
(1) не, получится больше единицы, а нужно до копеек (2 разряда после запятой).

Запрос, типа "ВЫБРАТЬ ВЫРАЗИТЬ(0.5048 КАК ЧИСЛО(15, 2)) КАК Поле1" тоже возвращает 0,50
6 Fragster
 
гуру
26.10.15
18:09
(5) -> (3)
7 PR третий
 
26.10.15
18:09
(3) Вернее Окр(Число+0.05, 2, РежимОкругления.Окр15как10), да?
8 Fragster
 
гуру
26.10.15
18:10
ну и не 0.5, а 0.005
9 Phace
 
26.10.15
18:10
(4) так нужен универсальный способ для любого количества знаков после запятой
10 Fragster
 
гуру
26.10.15
18:10
(7) ну да. просто в прошлый раз был вопрос  про рубли вверх :)
11 Fragster
 
гуру
26.10.15
18:12
а еще +0.5 можно заменить на
ЧислоЗнаков = 2;
Дополнение = Pow(0.1, ЧислоЗнаков) * 0.5;
Окр(Число + Дополнение, ЧислоЗнаков , РежимОкругления.Окр15как10)
12 Phace
 
26.10.15
18:13
Смысл такой, не округлять так, как это делает 1С, т.е. отрезает до двух знаков число, и анализирует его, а начиная с последнего знака округлять последовательно поразрядно, так например можно посчитать на обычном калькуляторе, если поставить на нем режим округления до двух знаков после запятой и режим "UP", но как смоделировать в 1С не пойму пока.
13 PR третий
 
26.10.15
18:13
(9) Тебе решение под ключ?
14 Fragster
 
гуру
26.10.15
18:13
(13) так оно уже было
15 Локи-13
 
26.10.15
18:16
(12) погрешность может быть колоссальной, особенно если много знаков
16 orefkov
 
26.10.15
18:16
(12)
Употеешь 1/3 с конца анализировать.
17 Phace
 
26.10.15
18:18
(16) В том то и причина, почему цикл делать не хочется, но калькулятор то считает как надо!
18 bolobol
 
26.10.15
18:23
(16) Да почему же? Размерность ограничена - достаточно дойти до упора.
19 Phace
 
26.10.15
18:24
(11) дает неверный результат, например 0,434 округляется до 0,44, а должно быть 0,43. А вот 0,435 действительно должно превратиться в 0,44.
20 Phace
 
26.10.15
18:30
(18) Проблема следующая: есть заказчик услуги, есть мы исполнители услуги, мы выполняем услугу на сумму 45608.36 руб., высылаем ему счет на сумму услуги и НДС = 45608.36 * 0,18 = 8209,5048 руб, округляем НДС до копеек, получается 8209,50 руб, а заказчик говорит должно быть 8209,51, иначе не оплатим. А он просто считает сумму НДС на калькуляторе с включенной функцией UP.
21 Phace
 
26.10.15
18:31
(20)+ проблема в том, что нам нужно знать сколько знаков после запятой поддерживает калькулятор заказчика :)
22 PR третий
 
26.10.15
18:32
(19) Ты издеваешься что ли?!
Напиши для начала по-человечески, что ты хочешь.
А то в (0) ты заказал борщ, а (19) требуешь макароны.
23 bolobol
 
26.10.15
18:32
(21) ВЕРНО !
24 PR третий
 
26.10.15
18:33
(21) Ну так спроси это у него. Или ты решил спросить это у МиСты, потому что МИСта знает все?
25 bolobol
 
26.10.15
18:35
(20) Проще (и надёжнее) - получать НДС до копеек _без_ округления, маневрируя ценой. Ни у одного кривого заказчика и органов - претензий не будет)
26 Phace
 
26.10.15
18:39
(22) Должно быть так (точнее так требует заказчик, потому что он считает на калькуляторе с функцией UP):

0,5044 -> 0.50
0,5048 -> 0.51
27 Phace
 
26.10.15
18:41
(25) Согласен, и я бы с радостью, но... заказчик требует свои печатные формы, в которых цифры с таким вот округлением. Не предоставим данные, не будет оплаты.
28 orefkov
 
26.10.15
18:43
(20)
И что только заказчики не выдумывают, лишь бы подольше не платить.
Методологически правильнее один раз доказать заказчику, что он не прав, чем каждый раз под его глюки подстраивается.

Он вам в следующий раз скажет, что счёт-фактура должна быть на синей бумаге и пахнуть цветами - ты будешь уточнять - "гвоздикой или розой"?
29 Phace
 
26.10.15
18:45
(28) К сожалению да, такая специфика работы фирмы, в определенный момент времени есть три-четыре заказчика, которые диктуют условия, каждому свой пакет документов и таки да! даже свою форму счет-фактуру в соответствии с их требованиями!
30 Phace
 
26.10.15
18:48
(30) Ладно, закончим, махану циклом, возьму разрядов 15, думаю хватит. Всем спасибо за участие!
31 PR третий
 
26.10.15
18:48
(26) Ну так и делай так и не трахай нам мозг.
ОКР(ОКР(Значение, 3), 2)
32 orefkov
 
26.10.15
18:52
(29)
Так если это заточка под конкретного заказчика - зачем забивать голову поиском универсального решения?
Костыль - и должен выглядеть, как костыль, дабы его сразу было видно. Не надо заворачивать его в подарочную упаковку.
Что-то решать с костылем можно начинать тогда, когда он больше трёх раз начинает попадаться.
33 PR третий
 
26.10.15
18:54
(30) Версия для извращенцев
ОКР(ОКР(ОКР(ОКР(ОКР(ОКР(ОКР(ОКР(ОКР(ОКР(ОКР(ОКР(ОКР(ОКР(ОКР(ОКР(ОКР(ОКР(ОКР(ОКР(ОКР(ОКР(ОКР(ОКР(ОКР(ОКР(ОКР(ОКР(ОКР(ОКР(ОКР(ОКР(ОКР(ОКР(ОКР(ОКР(ОКР(ОКР(ОКР(ОКР(ОКР(ОКР(ОКР(ОКР(ОКР(ОКР(ОКР(ОКР(ОКР(ОКР(Значение, 51), 50), 49), 48), 47), 46), 45), 44), 43), 42), 41), 40), 39), 38), 37), 36), 35), 34), 33), 32), 31), 30), 29), 28), 27), 26), 25), 24), 23), 22), 21), 20), 19), 18), 17), 16), 15), 14), 13), 12), 11), 10), 9), 8), 7), 6), 5), 4), 3), 2)
34 bolobol
 
26.10.15
19:21
(33) Респект!! ))