Округление в запросе

Функция 1С Окр(Число) производит округление чисел 1С нужным способом. По-умолчанию – до целого.

Например:

  • Для округления числе 1С выполняем функцию 1С Окр(22.55)
  • 1С возвращает 22

И наконец, третье. Как известно если остаток меньше 5 – то округляется до 0, а если больше 5, то округляется до 1.

Например:

  • 15.33 округляем как 15.3
  • 15.35 округляем как 15.4
  • 15.37 округляем как 15.4.

С помощью 1С ОКР можно изменить этот порядок:

  • 15.33 округляем как 15.3
  • 15.35 округляем как 15.3
  • 15.37 округляем как 15.4.

Только зарегистрированные пользователи VIP группы могут видеть этот контент.

Добавим в наш калькулятор новые кнопки «Окр».

Для операции нужен только один параметр, поэтому результат будет выводить сразу же по нажатию кнопки операции.

Чтобы узнать какую часть округлять и на сколько разрадов – запросим у пользователя число с помощью ВвестиЗначение().

В обработчик кнопки добавим новую ветку (как добавить новую ветку смотрите Сложение, вычитание, деление и умножение в 1С).

Пример программного кода:

Только зарегистрированные пользователи VIP группы могут видеть этот контент.

Встроенная функция запроса ВЫРАЗИТЬ() используется не только для приведения, но и для округления чисел.

Для этого используется такой синтаксис:

ВЫРАЗИТЬ(<ОбрабатываемоеЧисло> КАК ЧИСЛО (<ДлинаЦелойЧасти>.<ДлинаДробнойЧасти>))

Общие особенности использования в запросе

Если в качестве параметра передано не числовое значение, это может не вызывать ошибки выполнения запроса, но значение корректно не обработается:

Например, если передан NULL или он сформировался при соединениях таблиц, значение на выходе останется NULL:

Передача же «Неопределено» вызывает ошибку «Несовместимые типы ВЫРАЗИТЬ»:

  • Ссылочные типы или значения БУЛЕВО вызывают такую же ошибку (ИСТИНА не приводится к 1, а ЛОЖЬ к 0).
  • ВЫРАЗИТЬ строку как число также нельзя, используя эту функцию.

Поэтому следует обрабатывать/проверять значение до его передачи в качестве параметра функции.

Обработка значения производится по методам округления (0.5 округляется до 1.0), поэтому, если требуется получить целое значение, то следует перед округлением вычесть 0.5 (половину цены шага)

Для округления до десятых в меньшую сторону вычесть 0.5, до сотых 0.05.