Добавить в корзинуПозвонить
Найти в Дзене

1с как проверить кратность числа

В 1С существует несколько способов проверить кратность одного числа другому. Выбор конкретного способа зависит от того, где вы хотите выполнить эту проверку (например, в запросе, в коде модуля объекта или формы) и какие требования к производительности предъявляются. Операция MOD возвращает остаток от деления одного числа на другое. Если остаток равен нулю, значит, первое число кратно второму. Функция ЧислоКратно(ПроверяемоеЧисло, Делитель) Экспорт // Возвращает Истина, если ПроверяемоеЧисло кратно Делителю, иначе Ложь. Результат = (ПроверяемоеЧисло MOD Делитель) = 0; Возврат Результат; КонецФункции Пример использования: ПроверяемоеЧисло = 15; Делитель = 5; Если ЧислоКратно(ПроверяемоеЧисло, Делитель) Тогда Сообщить("Число " + ПроверяемоеЧисло + " кратно числу " + Делитель); Иначе Сообщить("Число " + ПроверяемоеЧисло + " не кратно числу " + Делитель); КонецЕсли; В языке запросов 1С также есть функция для вычисления остатка от деления. Функция называется ОстатокОтДеления. ВЫБРАТЬ Проверя
Оглавление

В 1С существует несколько способов проверить кратность одного числа другому. Выбор конкретного способа зависит от того, где вы хотите выполнить эту проверку (например, в запросе, в коде модуля объекта или формы) и какие требования к производительности предъявляются.

Способ 1: Использование операции "MOD" (в коде)

Операция MOD возвращает остаток от деления одного числа на другое. Если остаток равен нулю, значит, первое число кратно второму.

Функция ЧислоКратно(ПроверяемоеЧисло, Делитель) Экспорт

// Возвращает Истина, если ПроверяемоеЧисло кратно Делителю, иначе Ложь.

Результат = (ПроверяемоеЧисло MOD Делитель) = 0;

Возврат Результат;

КонецФункции

Пример использования:

ПроверяемоеЧисло = 15;

Делитель = 5;

Если ЧислоКратно(ПроверяемоеЧисло, Делитель) Тогда

Сообщить("Число " + ПроверяемоеЧисло + " кратно числу " + Делитель);

Иначе

Сообщить("Число " + ПроверяемоеЧисло + " не кратно числу " + Делитель);

КонецЕсли;

Способ 2: Использование функции "ОстатокОтДеления" (в запросе)

В языке запросов 1С также есть функция для вычисления остатка от деления. Функция называется ОстатокОтДеления.

ВЫБРАТЬ

ПроверяемоеЧисло,

Делитель,

ОстатокОтДеления(ПроверяемоеЧисло, Делитель) КАК Остаток,

(ОстатокОтДеления(ПроверяемоеЧисло, Делитель) = 0) КАК Кратность

ИЗ

(ВЫБРАТЬ

15 КАК ПроверяемоеЧисло,

5 КАК Делитель) КАК Данные

В этом примере запрос вернет таблицу со следующими колонками:

  • ПроверяемоеЧисло: 15
  • Делитель: 5
  • Остаток: 0
  • Кратность: Истина

Способ 3: Проверка без использования "MOD" или "ОстатокОтДеления" (менее эффективно)

Этот способ можно использовать, если по каким-то причинам нельзя использовать MOD или ОстатокОтДеления. Однако, он менее эффективен, особенно для больших чисел.

Функция ЧислоКратноБезMOD(ПроверяемоеЧисло, Делитель) Экспорт

// Возвращает Истина, если ПроверяемоеЧисло кратно Делителю, иначе Ложь.

// Без использования операции MOD.

Если Делитель = 0 Тогда

Возврат Ложь; // Деление на ноль не определено.

КонецЕсли;

Частное = ПроверяемоеЧисло / Делитель;

ЦелаяЧасть = Цел(Частное);

Результат = (Частное = ЦелаяЧасть);

Возврат Результат;

КонецФункции

Пример использования:

ПроверяемоеЧисло = 15;

Делитель = 5;

Если ЧислоКратноБезMOD(ПроверяемоеЧисло, Делитель) Тогда

Сообщить("Число " + ПроверяемоеЧисло + " кратно числу " + Делитель);

Иначе

Сообщить("Число " + ПроверяемоеЧисло + " не кратно числу " + Делитель);

КонецЕсли;

Предупреждение: Этот способ может давать неточные результаты из-за особенностей работы с числами с плавающей точкой.

Какой способ выбрать?

  • Для кода (модули объектов, форм и т.д.): Используйте способ 1 (операция MOD). Это самый простой и эффективный способ.
  • Для запросов: Используйте способ 2 (функция ОстатокОтДеления).
  • Если необходимо избежать использования MOD или ОстатокОтДеления (очень редкие случаи): Используйте способ 3, но будьте осторожны с возможными неточностями.

При выборе способа учитывайте, что операция MOD и функция ОстатокОтДеления могут быть более производительными, чем вычисление частного и сравнение его с целой частью.