Фунция ВЫРАЗИТЬ() для округления числа в запросе
В запросах 1С стандартная функция Окр() недоступна, поэтому для округления чисел используют:
ВЫРАЗИТЬ(<ОкругляемоеЧисло> КАК ЧИСЛО(<ЦелаяЧасть>, <ДробнаяЧасть>))- <ОкругляемоеЧисло> — число или реквизит числового типа
- <ЦелаяЧасть> — целое положительное число, общая «длина» числа вместе с дробной частью
- <ДробнаяЧасть> — целое положительное число, количество знаков после запятой
Это позволяет точно форматировать результаты в отчетах и обработках без дополнительной логики на встроенном языке.
Функция ВЫРАЗИТЬ() приводит число к указанному формату с математическим округлением.
- До целого:
ВЫРАЗИТЬ(ОкругляемоеЧисло КАК ЧИСЛО(15, 0))— 123.4 → 123, 123.5 → 124. - До двух знаков:
ВЫРАЗИТЬ(— 123.456 → 123.46.ОкругляемоеЧислоКАК ЧИСЛО(15, 2)) - До сотен:
ВЫРАЗИТЬ(— 1234.56 → 1200/ 100 КАК ЧИСЛО(15, 0)) * 100ОкругляемоеЧисло
Работа функции ВЫРАЗИТЬ() со значением NULL
! Важно знать, что ВЫРАЗИТЬ(NULL КАК ЧИСЛО(15, 2)) возвратит результат NULL. Поэтому если реквизит может иметь значение NULL, то лучше использовать конструкцию проверки на NULL:
ЕСТЬNULL(ВЫРАЗИТЬ(<ОкругляемоеЧисло> КАК ЧИСЛО(<ЦелаяЧасть>, <ДробнаяЧасть>)), 0)В этом случае ЕСТЬNULL(ВЫРАЗИТЬ(NULL КАК ЧИСЛО(15, 2)), 0) вернет значение 0
Пример запроса
Предположим, что в базе есть справочник Номенклатура. Также есть справочник Драгметаллы с таблицей ПараметрыДрагметаллов, в котором указывается в таблице вес, ценность и прочее. У драгметалла необязетально может быть указан параметр.
ВЫБРАТЬ
Номенклатура.Ссылка КАК НоменклатураСсылка,
Номенклатура.Драгметалл КАК Драгметалл,
ЕСТЬNULL(ВЫРАЗИТЬ(ПДМ.Вес КАК ЧИСЛО(15, 2)), 0) КАК ВесДоСотых,
ЕСТЬNULL(ВЫРАЗИТЬ(ПДМ.Вес КАК ЧИСЛО(15, 0)), 0) КАК ВесДоЦелых,
ВЫРАЗИТЬ(ЕСТЬNULL(ПДМ.Вес, 0) / 100 КАК ЧИСЛО(15, 0)) * 100 КАК ПримерныйВес
ИЗ
Справочник.Номенклатура КАК Номенклатура
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Драгметаллы.ПараметрыДрагметаллов КАК ПДМ
ПО Номенклатура.Драгметалл = ПДМ.Ссылка
Подробнее о функции ВЫРАЗИТЬ(), а также о других сценариях ее использования можно узнать из нашей статьи.