Рассмотрим задачу, когда необходимо в запросе разделить число на целую и дробную часть.
Пример запроса:
Запрос = Новый Запрос;
| КОГДА (ВЫРАЗИТЬ(&ДробноеЧисло КАК ЧИСЛО(4, 0))) > &ДробноеЧисло
| ТОГДА (ВЫРАЗИТЬ(&ДробноеЧисло КАК ЧИСЛО(4, 0))) — 1
| ИНАЧЕ ВЫРАЗИТЬ(&ДробноеЧисло КАК ЧИСЛО(4, 0))
| КОНЕЦ КАК ЦелаяЧасть,
| КОГДА (ВЫРАЗИТЬ(&ДробноеЧисло КАК ЧИСЛО(4, 0))) = &ДробноеЧисло
| КОГДА (ВЫРАЗИТЬ(&ДробноеЧисло КАК ЧИСЛО(4, 0))) > &ДробноеЧисло
| ТОГДА 1 — ((ВЫРАЗИТЬ(&ДробноеЧисло КАК ЧИСЛО(4, 0))) — &ДробноеЧисло)
| ИНАЧЕ &ДробноеЧисло — (ВЫРАЗИТЬ(&ДробноеЧисло КАК ЧИСЛО(4, 0)))
Собственные наработки и набитые шишки в моей практике по программированию в 1С.
Страницы
среда, 28 октября 2015 г.
Как найти целое число от числа в запросе
Иногда необходимо получить целое число в запросе. Аналог Цел() языка. Необходимо прибегнуть к мелким хитростям, поскольку такого метода в запросе не существет. Но не стоит огорчаться.
Вот собственно необходимо задействовать конструкцию ВЫРАЗИТЬ(). Для положительных чисел необходимо вычесть 0.5, а для отрицательных чисел прибавить 0.5. Вот пример:
ВЫБОР КОГДА ВашеЧисло > 0 ТОГДА
ВЫРАЗИТЬ(ВашеЧисло — 0.5 КАК Число(15, 0))
ИНАЧЕ
ВЫРАЗИТЬ(ВашеЧисло + 0.5 КАК Число(15, 0))
Проконсультироваться
со специалистом 1С
Код 1C v 8.х
Код 1C v 8.х
Получение целой части числа в запросе?
Код 1C v 8.х
Код 1C v 8.х
Как округлить в запросе в меньшую сторону?
Код 1C v 8.х
или
Код 1C v 8.х