Недавно в чужом программном столкнулся с тем, что не все программисты 1С знают, как в 1С 8.2 или 8.3 получить остаток от деления.
Периодически встречаются вот такие конструкции:
ОстатокОтДеления = Делимое — Цел(Делимое / Делитель) * Делитель;
Это конечно забавный и остроумный способ. Но есть более простой метод, встроенный в платформу:
ОстатокОтДеления = Делимое % Делитель;
Вот, собственно, и всё!
P.S. Кстати, результат 1%2 = 1, некоторые почему-то думают, что ноль
Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):
Собственные наработки и набитые шишки в моей практике по программированию в 1С.
Страницы
среда, 28 октября 2015 г.
Как найти целое число от числа в запросе
Иногда необходимо получить целое число в запросе. Аналог Цел() языка. Необходимо прибегнуть к мелким хитростям, поскольку такого метода в запросе не существет. Но не стоит огорчаться.
Вот собственно необходимо задействовать конструкцию ВЫРАЗИТЬ(). Для положительных чисел необходимо вычесть 0.5, а для отрицательных чисел прибавить 0.5. Вот пример:
ВЫБОР КОГДА ВашеЧисло > 0 ТОГДА
ВЫРАЗИТЬ(ВашеЧисло — 0.5 КАК Число(15, 0))
ИНАЧЕ
ВЫРАЗИТЬ(ВашеЧисло + 0.5 КАК Число(15, 0))
Число — это один из примитивных типов данных существующих в 1С. Числа в 1С:Предприятии встречаются абсолютно везде и всюду. Следовательно важность знания функций для работы с числами трудно переоценить. К рассмотрению этих функций и приступим.
В начале скажем, что максимальная разрядность для числа равняется 38-ми знакам, при этом для целой части выделено 32 символа.
При этом в конфигураторе можно указать длину числа в 64 символа (при точности в 32 символа), но это вероятно какая-то ошибка, так как при попытке обновить конфигурацию Вы увидите нечто подобное:
Ошибка конфигуратора
С числами в 1С можно выполнять все стандартные арифметические операции:
Функции для работы с числами в 1С 8.2 и 8.3
Функция Окр(x, y, z) позволяет округлить число “x” в зависимости от заданной разрядности “y” и режима округления “z”.