Синтаксис и применение Арифметические операции в платформе 1С:Предприятие. Описание и примеры кода.
Полное описание, параметры и ограничения
Арифметические операции
Арифметические операции
В языке определены следующие виды арифметических операций:
сложение
(Оп1 + Оп2)
вычитание
(Оп1 - Оп2)
умножение
(Оп1 * Оп2)
деление
(Оп1 / Оп2)
остаток от деления
(Оп1 % Оп2)
унарный минус
(-Оп1)
Арифметические операции имеют один или два операнда, в зависимости от типа которых, операция имеет ту или иную семантику. Тот или иной семантический вариант операции определяется по первому операнду. В случае несовпадения типа второго операнда с требуемым, значение преобразуется к требуемому типу в соответствии с правилами преобразования типов. Если тип первого операнда не соответствует ни одному из допустимых типов, то в зависимости от ситуации может производиться преобразование типов или возбуждаться состояние ошибки выполнения.
Сложение определено для следующих типов операндов:
Число+ЧислоДата+Число (к дате прибавляется число секунд)
Вычитание определено для следующих типов операндов:
Число-ЧислоДата-Число (от даты отнимается число секунд)
Дата-Дата (результатом является разница между двумя датами, измеренная в секундах)
Умножение:
Число*Число
Деление:
Число/Число
Остаток от деления:
Число%Число
Методическая информация
Практические примеры
Скобки: отделить стоимость товаров от общей надбавки
Умножение выполняется раньше сложения. Скобки явно меняют порядок вычисления.
Где и как запускать
Полный серверный общий модуль учебной базы. Собственные значения в памяти, без чтения или записи рабочих данных.
Подготовка
Используйте отдельную учебную базу без рабочих данных. Создайте серверный общий модуль УчебныйЯзык с флагом Сервер, без Привилегированный.
Вставьте весь модуль выбранного примера, а не одну процедуру внутрь другой. Из своей серверной команды учебной обработки вызовите УчебныйЯзык.ВыполнитьПример().
Все числа, строки и коллекции созданы в самом примере. Документы, регистры, файловая система и сеть не используются; никаких зависимостей от КА2/УНФ/УТ/БП нет.
Браузер показывает код, но не исполняет BSL. Проверки результата нужно выполнить вручную на платформе 8.5.1.1343 в учебной базе.
Процедура ВыполнитьПример() Экспорт
Цена = 100;
Количество = 3;
ОбщаяНадбавка = 50;
СуммаСОбщейНадбавкой = Цена * Количество + ОбщаяНадбавка;
СуммаСНадбавкойНаКаждуюШтуку = (Цена + ОбщаяНадбавка) * Количество;
Сообщить(СуммаСОбщейНадбавкой = 350);
Сообщить(СуммаСНадбавкойНаКаждуюШтуку = 450);
Сообщить(5 / 2 = 2.5);
КонецПроцедурыРазбор по шагам
В первом выражении сначала получить 100×3, затем прибавить общие 50.
Во втором сначала получить 100+50, затем умножить цену каждой штуки на 3.
Сравнить результаты 350 и 450: это разные правила задачи, не ошибки платформы.
Отдельно показать, что обычное деление 5/2 даёт дробное число.
Как проверить результат
Три сообщения Истина.
Поставьте количество 1: два правила случайно дадут одинаковый результат 150; это не делает их одинаковыми для любого количества.
Ожидаемый результат
Порядок операций объяснён через различие двух прикладных смыслов.
На что обратить внимание
Скобки меняют порядок, но не задают округление денег.
Для рабочих сумм нужны договорённые правила округления.
Не делите на ноль; ошибка деления рассматривается отдельно.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.