Как в СКД округлить число до большего значения?
Например, 1.1 -должно округлиться до 2
Выразить (Число как число(10,0) не подходит, потому что дробную часть до 0.5 будет округлять до 1, а не нужно,чтобы округлялась в большую сторону
---
Выразить, это уже по самой сути округление.
В вычисляемых выражениях можно использовать операцию Цел.

```1c
    Цел(Количество/КоличествоВМестах+0.99999)
```
---
ВЫРАЗИТЬ(Число + 0.5) как ЧИСЛО(10,0))
---
В вычисляемых написал: выразить(Количество/КоличествоВМестах+0.5 "число(10,0)" . И СКД считает почему-то неправильно. Например, 1523/112 + 0.5=14,09. Если округлить получается 14, а СКД выдает почему-то 13.
В вычисляемом поле сделал так: Количество/КоличествоВМестах+0.5 и поставил формат 10,0 на поле. И все равно выдает значение 13. Хотя правильное значение это 14. Из-за чего может быть такое?
---
Выразить, это уже по самой сути округление.
В вычисляемых выражениях можно использовать операцию Цел.

```1c
    Цел(Количество/КоличествоВМестах+0.99999)
```
---
Если только вычислять, сравнивать, и ставить костыли дополнительно(прибавлять 1-цу), это как крайний вариант))
---
Цел просто убирает дробную часть, а мне в большую сторону округлить
---
проверьте это:
Цел(Количество/КоличествоВМестах+0.99999)
---
так тоже не то,что нужно выводит
---
подробности будут?
---
2922/72+0.99999=41.58. Если округлить получается 42. Но результат должен быть 41, потому что 2922/72=40.58. Если округлить 40.58 до большего числа, то получится 41
---
что-то не то делаете.
У меня 41 получается
---
В запросе все норм считается,но почему-то СКД не считает корректно
---
Есть подозрение, что СКД применяет округление не к конечному результату вычислений, а ко всем числам, включая входящие и промежуточные вычисления. И это косяк.
А в самом запросе считает СУБД.
---
делаю также, как вы показали
---
есть предположение, что Отчет не пересохранился или отлаживаете другую копию.
Измените текст запроса в СКД. А лучше Синоним отчета. Просто добавить пробел у удалить и после сохранить.
Ну и в предприятии отчет закрыть.
---
пересохраняется. Добавляю другие поля и эти поля появляются. Уже перезапустил конфигу и предприятие. Отчет тоже много раз переоткрывал
---
скиньте схему скд. Как дальше это поле используете?
---
во 2 наборе данных для Количества поставьте Длина 10, Точность 3. Там стоит 0 и 0. Что-то поменяется?
---
нет,ничего не поменялось
---
если считать так, как вы написали,то СКД считает правильно. Но это не то,что нужно

```1c
    Цел(Количество/КоличествоМест+0.99999)
```

Нужно чтобы было как на (16). А выходит,что на одно место больше, чем по факту есть
---
СКД считает правильно но нужно не так... это вообще жесть.
---
а как нужно?
---
а нет. В 31 вру. У нас же целую просто берет без дробной части, а не округляет. Тогда значит СКД почему-то некорректно считает
---
может смотрите на Сумму? Тогда там тупо сумма.
Попробуйте на закладе Ресурсы для Поле1 заменить на это:

```1c
    Цел(Сумма(Количество/КоличествоВМестах) + 0.9999)
```
---
выводит ошибку:
Ошибка в выражении
по причине:
Неверные параметры "+"
---
внимательнее проверьте. Ошибки не должно быть.
---
проверил. Все сделал также, как вы написали
---
И? Ошибка все равно?
пробелы вокруг плюса добавить.
---
Да,ошибка все равно. С плюсами и без них выводит ошибку
---
если цифры проставить, то не выводит ошибок

```1c
    Цел(Сумма(2922/72) + 0.9999)
```
---
ошибка в момент ввода этого текста или при формировании отчета?
Можно так попробовать:

```1c
    Выбор когда КоличествоМест = 0 Тогда 0 Иначе Цел(Сумма(Количество/КоличествоМест) + 0.99999) Конец
```
---
ошибка при формировании отчета
---
тогда еще можно Количество обернуть в ЕстьNull. Там же связь наборов. Может и null получиться.
---
все равно выводит ошибку. Количество и КоличествоМест обернул в ЕстьNull, но все равно выдает ту же ошибку
Не могу понять,что происходит
---
все равно выводит ошибку:
Ошибка вывода результата
по причине:
Ошибка при выводе результата
по причине:
Ошибка получения данных
по причине:
Ошибка в выражении
по причине:
Неверные параметры "+"
---
вот так

```1c
    Сумма(Цел(Количество/КоличествоМест+0.9999))
```

и так

```1c
    Цел(Количество/КоличествоМест+0.9999)
```

не выводит ошибок. Но считает неправильно
---
Ишь ты хитрый какой!!! Подробности ему подавай... А мозги тебе для чего дадены??? Сам догадайся!
---
Остатки на складе считаются в местах. Например, в одном месте 20 штук. У нас на складе 45 штук. У на получается 2 места и 5 штук. Так как эти 5 штук тоже занимают место , одного места, то эти 5 штук тоже считаем как место. И получается у нас 3 места
---
0.99999 можно заменить на 1/3*3
---
Спасибо.Тема закрыта
---
В СКД есть функция ОКР http://prntscr.com/vh5sk4

выразить имеет смысл использовать в запросе
---
почему-то все равно не корректно считает. Например 2922/72+0,5=41,08. Если округлить получатся 41, а СКД почему-то выводит 42. Из-за чего такое может быть?
---
Есть подозрение, что СКД применяет округление не к конечному результату вычислений, а ко всем числам, включая входящие и промежуточные вычисления. И это косяк.
---
(15)
"Количество" берется из внешнего набора данных
---
И что?
---
если это вдруг может быть причиной,почему так ведет себя СКД)
---
как это можно исправить?
---
Не знаю, что у вас не работает, должно всё работать, проверьте

```1c
    ВЫБРАТЬ Количество,
    Количество2,
    ВЫРАЗИТЬ((Количество/Количество2)+0.5 КАК Число(10)) КАК Результат,
    ВЫРАЗИТЬ((ВЫРАЗИТЬ(Количество КАК Число(15,4))/Количество2)+0.5 КАК Число(10)) КАК Результат2
    ИЗ (
    ВЫБРАТЬ 1001 Количество, 1000 Количество2 ОБЪЕДИНИТЬ ВСЕ
    ВЫБРАТЬ 1500 Количество, 1000 Количество2 ОБЪЕДИНИТЬ ВСЕ
    ВЫБРАТЬ 1999 Количество, 1000 Количество2
    ) КАК Данные
```
---
+0.5
Если результат деления – целое число, вы получите неверный результат. К тому же для ТС, видимо, принципиально сделать это через вычисляемое поле.
---
Да, действительно, вы правы, спасибо за замечание.

Через вычисляемое поле наоборот проще, там есть Окр(). А вот задача получить округление в запросе - уже есть над чем подумать.

Тогда правильный ответ

```1c
    ВЫБРАТЬ Количество,
    Количество2,
    ВЫРАЗИТЬ((Количество/Количество2)+0.499999999999 КАК Число(18)) КАК Результат
    ИЗ (
    ВЫБРАТЬ ВЫРАЗИТЬ(1001 КАК Число(18)) Количество, 1000 Количество2 ОБЪЕДИНИТЬ ВСЕ
    ВЫБРАТЬ ВЫРАЗИТЬ(400000000000000000 КАК Число(18)) Количество, 2 Количество2 ОБЪЕДИНИТЬ ВСЕ
    ВЫБРАТЬ ВЫРАЗИТЬ(150000000000000000 КАК Число(18)) Количество, 100000000000000000 Количество2 ОБЪЕДИНИТЬ ВСЕ
    ВЫБРАТЬ ВЫРАЗИТЬ(199900000000000000 КАК Число(18)) Количество, 100000000000000000 Количество2
    ) КАК Данные
```