Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Округление до десятков в большую сторону в запросе. Как ?

Округление до десятков в большую сторону в запросе. Как ?
Я
   Румата
 
24.10.21 - 09:08
Сейчас написал так : ВЫРАЗИТЬ ((НашеЧисло+5)/ 10 КАК ЧИСЛО(15, 0)) * 10
Но при случаях, когда НашеЧисло равно 10 или 20 или 30 округление происходит не правильно. Задавать НашеЧисло+4.99999999 не вижу смысла, т.к. это ошибочно. Как сделать правильное округление в большую сторону до десятков в запросе, подскажите ?
   ДенисЧ
 
1 - 24.10.21 - 09:11
ВЫРАЗИТЬ() - это не округление. Это циркумци́зия.
Надо именно добавлять, а потом резать. Не дожидясь.
   Румата
 
2 - 24.10.21 - 09:16
(1) Ну а как решить такую задачу, понятно что не округление, деля на 10 и обрезая дробную часть мы получаем целое число, потом мы все умножаем на 10. Без округления в большую сторону все прекрасно работает.
   pechkin
 
3 - 24.10.21 - 09:18
(0) тебе шашечки или ехать?
   hhhh
 
4 - 24.10.21 - 09:18
(2) ну так  НашеЧисло+4.99999999.  Смысл в этом есть всё-таки.
   Румата
 
5 - 24.10.21 - 09:23
В типовой УТ 10.3 в справочнике типы цен можно выбрать округление либо по арифметическим правилам, либо в большую сторону. Интересно как это реализовано ? Наверняка в запросах тоже идет округление.
   Румата
 
6 - 24.10.21 - 09:29
Выбор когда Выразить(НашеЧисло,КАК ЧИСЛО(15, 0)) = НашеЧисло Тогда
 +0
Иначе
+5
Конец

Может так ?
   pechkin
 
7 - 24.10.21 - 09:55
(6) чем это лучше (0) ?
   Конструктор1С
 
8 - 24.10.21 - 10:44
(0) вычисления в запросе - зло!
   ДенисЧ
 
9 - 24.10.21 - 10:47
(8) Скажи это селезнёвцам, которые тангенсы в запросы принесли ))
   Конструктор1С
 
10 - 24.10.21 - 10:48
(9) у них там своя наркомания
   pechkin
 
11 - 24.10.21 - 10:54
(9) ну так в скл же есть. Добавление таких функций - полдня работы стажера
   ДенисЧ
 
12 - 24.10.21 - 11:49
(11) В скл есть и всякие оконные функции, и cast() и convert()
Но что-то не добавляют.
   aka MIK
 
13 - 24.10.21 - 12:34
(0) +0.5 а потом выразить
   hhhh
 
14 - 24.10.21 - 12:45
(13) +0.4999
   pechkin
 
15 - 24.10.21 - 12:54
9 нужно больше чем точность исходного значения.
Для суммы достаточно 0.499
   pechkin
 
16 - 24.10.21 - 12:54
(12) во всех скл?
   Гость из Мариуполя
 
17 - 24.10.21 - 14:53
хм.. а что,  РежимОкругления.Окр15как10 не работает ?
   Гость из Мариуполя
 
18 - 24.10.21 - 14:59
а черт, не посмотрел, что в запросе
тогда извиняюсь
   lodger
 
19 - 25.10.21 - 09:00
(5) в типовых это место давно переписано на компоновщик данных. то есть округляет сервер1с, а не sql.
   Ненавижу 1С
 
20 - 25.10.21 - 09:23
так уже предлагали?

    (ВЫРАЗИТЬ(ТЗ.Аргумент - 0.5 КАК ЧИСЛО(15, 0))) + ВЫБОР
        КОГДА ТЗ.Аргумент = (ВЫРАЗИТЬ(ТЗ.Аргумент КАК ЧИСЛО(15, 0)))
            ТОГДА 0
        ИНАЧЕ 1
    КОНЕЦ КАК Результат
   Ненавижу 1С
 
21 - 25.10.21 - 09:31
или даже так:

(ВЫРАЗИТЬ(ТЗ.Аргумент - 0.5 КАК ЧИСЛО(15, 0))) - (ВЫРАЗИТЬ((ВЫРАЗИТЬ(ТЗ.Аргумент - 0.5 КАК ЧИСЛО(15, 0))) - ТЗ.Аргумент + 0.5 КАК ЧИСЛО(15, 0))) + 1
   Конструктор1С
 
22 - 27.10.21 - 09:12
(18) не "нужно в запросе", а "приспичило в запросе"
   DimG
 
23 - 27.10.21 - 09:27
в 20 платформе добавили ОКР


Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.