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

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

0
47895
28.11.2022 Юлия Романяк

Содержание:

1.     Использование в 1С ОКР функции
2.     Синтаксис описание функции ВЫРАЗИТЬ
3.     Округление в запросе 1С при помощи функции ВЫРАЗИТЬ
4.     Исключение для значений типа NULL
5.     Как округлить в запросе 1С число до целых сотен  

 

1.     Использование в 1С ОКР функции

 

Для округления чисел встроенный язык 1С предусматривает использование функции ОКР в 1С. Ее можно использовать при обработке результата запроса в процедурах модулей объектов конфигурации. Однако, в языке запросов 1С Предприятие также есть возможность округлить результат вычисления непосредственно при помощи формулы в произвольном выражении. Для этого предусмотрена функция ВЫРАЗИТЬ(<Выражение> КАК <Тип>).

 

2.     Синтаксис описание функции ВЫРАЗИТЬ


Параметры:

Выражение – описание преобразуемого объекта.

Тип – можно указывать строковое описание типа, либо значения ЧИСЛО или СТРОКА.

Для типа ЧИСЛО в 1С необходимо указывать формат, к которому нужно привести выражение:

 

ЧИСЛО( <Количество знаков целой части>, <Количество знаков дробной части>)

 

Для типа СТРОКА в 1С нужно указать длину строки:

СТРОКА(<Длина строки>)

 

В нашем случае параметр <Выражение> должен обязательно иметь числовой тип. Параметр <Тип> задается как ЧИСЛО.   

 

3.     Округление в запросе 1С при помощи функции ВЫРАЗИТЬ

 

Для округления числа до целого указываем в произвольном выражении:


ВЫРАЗИТЬ(&ОкругляемоеЧисло КАК ЧИСЛО(15.0)), где

15 – длина целой части,

0 – количество знаков дробной части

Результат вычисления в запросе будет следующий:

При &ОкругляемоеЧисло = 123.456      результат = 123     

При &ОкругляемоеЧисло = 123.5      результат = 124


Таким образом, результат выражения будет представлять собой округление числа до целого по правилам округления в запросе 1С.

Если нужно округлить до определенного количества знаков после запятой в 1С, задаем после точки количество знаков:

 

ВЫРАЗИТЬ(123.456 КАК ЧИСЛО(15.1)) = 123.5

 

4.     Исключение для значений типа NULL

 

Если в функцию для округления в запросе 1С передается какой-либо реквизит объекта и в таблице значений для данного объекта этот реквизит не заполнен (т.е. в таблице БД имеет значение NULL), то в результате вычисления по формуле, приведенной выше мы получим нечисловое значение типа NULL:

 

ВЫРАЗИТЬ(NULL КАК ЧИСЛО(15.1)) = NULL

 

Для того, чтобы избежать в таблицах результата запроса строк с таким значением, нужно использовать функцию обхода пустых значений в 1С 8.3, принудительно приравнивая пустые значения нулю:

 

ЕСТЬNULL(ВЫРАЗИТЬ(NULL КАК ЧИСЛО(15.1)), 0) = 0   

 

5.     Как округлить в запросе 1С число до целых сотен

 

Выше мы рассмотрели возможность округления в запросе 1С числа до целых значений.

Но как быть если нужно округлить до целых сотен, десятков или, например, тысяч? Напрямую функция ВЫРАЗИТЬ в 1С 8.3 такой возможности не предоставляет. В этом случае нужно при помощи функции ВЫРАЗИТЬ в 1С 8.3 округлить до целого результат от деления округляемого числа на нужную кратность (100, 10, 1000 и т.д.) и затем умножить полученное число на ту же кратность.


Например – нужно округлить до целых сотен число 1525634.123456789.

100 * (ВЫРАЗИТЬ(1525634.123456789 / 100 КАК ЧИСЛО(15, 0))) = 1525600


    Специалист компании "Кодерлайн"

Юлия Романяк

Задать вопрос автору статьи
Тема вопроса*
Ваше имя*
E-mail или телефон*
Ваш вопрос*
 

Добавить комментарий
Текст сообщения*
Защита от автоматических сообщений
 
Услуги программиста 1С
Получите специалиста
для решения всех задач
в области 1С
Программы 1С
Цены и подробное описание программ 1С:Предприятие 8.