|   |   | 
| 
 | Округление до десятков в большую сторону в запросе. Как ? | ☑ | ||
|---|---|---|---|---|
| 0
    
        Румата 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. Без округления в большую сторону все прекрасно работает.     | |||
| 3
    
        pechkin 24.10.21✎ 09:18 | 
        (0) тебе шашечки или ехать?     | |||
| 4
    
        hhhh 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 Конец Может так ? | |||
| 7
    
        pechkin 24.10.21✎ 09:55 | 
        (6) чем это лучше (0) ?     | |||
| 8
    
        Конструктор1С 24.10.21✎ 10:44 | 
        (0) вычисления в запросе - зло!     | |||
| 9
    
        ДенисЧ 24.10.21✎ 10:47 | 
        (8) Скажи это селезнёвцам, которые тангенсы в запросы принесли ))     | |||
| 10
    
        Конструктор1С 24.10.21✎ 10:48 | 
        (9) у них там своя наркомания     | |||
| 11
    
        pechkin 24.10.21✎ 10:54 | 
        (9) ну так в скл же есть. Добавление таких функций - полдня работы стажера     | |||
| 12
    
        ДенисЧ 24.10.21✎ 11:49 | 
        (11) В скл есть и всякие оконные функции, и cast() и convert()
 Но что-то не добавляют. | |||
| 13
    
        aka MIK 24.10.21✎ 12:34 | 
        (0) +0.5 а потом выразить     | |||
| 14
    
        hhhh 24.10.21✎ 12:45 | 
        (13) +0.4999     | |||
| 15
    
        pechkin 24.10.21✎ 12:54 | 
        9 нужно больше чем точность исходного значения. Для суммы достаточно 0.499 | |||
| 16
    
        pechkin 24.10.21✎ 12:54 | 
        (12) во всех скл?     | |||
| 17
    
        Гость из Мариуполя гуру 24.10.21✎ 14:53 | 
        хм.. а что,  РежимОкругления.Окр15как10 не работает ?     | |||
| 18
    
        Гость из Мариуполя гуру 24.10.21✎ 14:59 | 
        а черт, не посмотрел, что в запросе
 тогда извиняюсь | |||
| 19
    
        lodger 25.10.21✎ 09:00 | 
        (5) в типовых это место давно переписано на компоновщик данных. то есть округляет сервер1с, а не sql.     | |||
| 20
    
        Ненавижу 1С гуру 25.10.21✎ 09:23 | 
        так уже предлагали?
 (ВЫРАЗИТЬ(ТЗ.Аргумент - 0.5 КАК ЧИСЛО(15, 0))) + ВЫБОР КОГДА ТЗ.Аргумент = (ВЫРАЗИТЬ(ТЗ.Аргумент КАК ЧИСЛО(15, 0))) ТОГДА 0 ИНАЧЕ 1 КОНЕЦ КАК Результат | |||
| 21
    
        Ненавижу 1С гуру 25.10.21✎ 09:31 | 
        или даже так:
 (ВЫРАЗИТЬ(ТЗ.Аргумент - 0.5 КАК ЧИСЛО(15, 0))) - (ВЫРАЗИТЬ((ВЫРАЗИТЬ(ТЗ.Аргумент - 0.5 КАК ЧИСЛО(15, 0))) - ТЗ.Аргумент + 0.5 КАК ЧИСЛО(15, 0))) + 1 | |||
| 22
    
        Конструктор1С 27.10.21✎ 09:12 | 
        (18) не "нужно в запросе", а "приспичило в запросе"     | |||
| 23
    
        DimG 27.10.21✎ 09:27 | 
        в 20 платформе добавили ОКР     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |