Капитально об программе 1С 8.0-8.3-8.4, 7.7

ВЫРАЗИТЬ КАК ЧИСЛО в запросе

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

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

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

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

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

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

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

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

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

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

 

Демонстрация использования ВЫРАЗИТЬ в запросе для округления

ВЫБРАТЬ
    1.56 КАК ЧислоПример,
    ВЫРАЗИТЬ(1.56 КАК ЧИСЛО(15, 0)) КАК ДоЦелого,
    ВЫРАЗИТЬ(1.56 0.5 КАК ЧИСЛО(15, 0)) КАК ДоЦелогоВниз,
    ВЫРАЗИТЬ(1.56 КАК ЧИСЛО(15, 1)) КАК ДоДесятых,
    ВЫРАЗИТЬ(1.56 0.05 КАК ЧИСЛО(15, 1)) КАК ДоДесятыхВниз,
    ВЫРАЗИТЬ(1.56 КАК ЧИСЛО(15, 2)) КАК ДоСотых