28.11.2022 Юлия Романяк 42305
Округление в запросе

Содержание:

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


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

Юлия Романяк

Наши проекты

ООО «Фипар»
ООО «Фипар»

Отрасль:

Внедренное типовое решение:
1С:Предприятие 8. ERP Управление предприятием 2

Специалисты «Кодерлайн» внедрили «1С:ERP. Управление предприятием 2» и автома...

Группа компаний ТМ «Дружба народов»
Группа компаний ТМ «Дружба народов»

Отрасль:
Пищевая промышленность

Внедренное типовое решение:
1С:ERP Управление предприятием 2.1

- Переход на новый релиз 2.1 программы «1С:ERP Управление предприятием»
- Разра...

ПЭК
ПЭК

Отрасль:
Грузоперевозки

Внедренное типовое решение:
1С:Зарплата и управление персоналом

- Перевод зарплатных баз с версии ЗУП 2.5 на версию ЗУП 3.1.
- Сопровождение в п...

Внедрение ПП "1С:Управление небольшой фирмой 8 ПРОФ" в ООО «Шокостайл»
ООО «Шокостайл»

Отрасль:
Производство

Внедренное типовое решение:
1С:Управление небольшой фирмой 8 ПРОФ

Управление продажами, логистикой и транспортом (SFM, WMS, TMS):
- Планирование п...

АО «Аэроклуб»
АО «Аэроклуб»

Отрасль:
Услуги в области делового туризма

Внедренное типовое решение:
1С:Бухгалтерия 8 КОРП

Проведение серии интервью с руководством и ключевыми специалистами Разраб...

Внедрение ПП "1С:Управление небольшой фирмой 8 ПРОФ" в
ИП Любо Виктория Александровна (ООО «Рекреация»)

Отрасль:
Производство

Внедренное типовое решение:
1С:Управление небольшой фирмой 8 ПРОФ

Осуществлены разработки:
– отчета по спецификации Заказа;
– загрузки сп...

АО "Нижегородский водоканал"
АО "Нижегородский водоканал"

Отрасль:
Профессиональные услуги

Внедренное типовое решение:
1С:Зарплата и управление персоналом 8. КОРП

-Кадровый учет
-Расчет зарплаты
-Регламентированная отчетность
-Подбор ...

Автоматизация контроля исполнительской дисциплины на базе ПП «1С:Документооборот 8 ПРОФ»
ООО «ФСК Лидер»

Отрасль:
Строительство и девелопмент

Внедренное типовое решение:
1С:Документооборот 8 ПРОФ

- Делопроизводство;
- Учет и хранение документов;
- Учет и контроль исполне...

ОАО «Интер РАО – Электрогенерация»
ОАО «Интер РАО – Электрогенерация»

Отрасль:
Электрогенерация

Внедренное типовое решение:
1С:Управление производственным предприятием

Для работы 2500 пользователей в 9 часовых поясах организована территориально-...

ООО «ТейблТок»
ООО «ТейблТок»

Отрасль:
Общественное питание и рестораны

Внедренное типовое решение:
1С:Управление торговлей

Оформление заказов поставщикам Оформление заказов покупателей Управление ...

ООО «Мир Аксиомы»
ООО «Мир Аксиомы»

Отрасль:
Аудиторские и консалтинговые услуги

Внедренное типовое решение:
1С:Бухгалтерия КОРП

- Бухгалтерский учет:
Банк и касса
Завершение периода
Нематериальные ...

 ЗАО "Инвестгеосервис" -ДО
ЗАО «Инвестгеосервис»

Отрасль:
Нефтесервис

Внедренное типовое решение:
1С:Документооборот КОРП

- Работа с файлами;
- Делопроизводство;
- Процессы движения документов; ...

Наши соц. сети

Telegram-канал «Koderline 1С» Группа в Вконтакте «Кодерлайн КОРП» Rutube

Остались вопросы - обратитесь к нам!

Впишите свои Имя и Телефон, чтобы мы ответили на все интересующие Вас вопросы.
ФИО*
E-mail*
Телефон*
Сообщение