Выражения языка

Встроенный язык

Синтаксис и применение Выражения языка в платформе 1С:Предприятие. Описание и примеры кода.

Полное описание, параметры и ограничения

Выражения языка

Выражения языка

Выражение — это математическая, логическая или строковая формула, состоящая из соответствующих операций, по которой вычисляется значение.

Математическое и логическое выражение может стоять справа от знака равенства в операторах присваивания, быть параметром процедур или функций.

Логическое выражение также может быть условием в управляющих конструкциях Если, Пока, Для.

Выражения состоят из констант, переменных и функций, связанных символами логических и/или арифметических операций.

Методическая информация

Практические примеры

Выражения: получить сумму, условие и строку из одной заявки

Одна собственная заявка даёт три разных результата выражений: число, Булево и текст. Только логическое выражение управляет веткой Если.

Где и как запускать

Полный серверный общий модуль учебной базы. Собственные значения в памяти, без чтения или записи рабочих данных.

Подготовка

  1. Используйте отдельную учебную базу без рабочих данных. Создайте серверный общий модуль УчебныйЯзык с флагом Сервер, без Привилегированный.

  2. Вставьте весь модуль выбранного примера, а не одну процедуру внутрь другой. Из своей серверной команды учебной обработки вызовите УчебныйЯзык.ВыполнитьПример().

  3. Все числа, строки и коллекции созданы в самом примере. Документы, регистры, файловая система и сеть не используются; никаких зависимостей от КА2/УНФ/УТ/БП нет.

  4. Браузер показывает код, но не исполняет BSL. Проверки результата нужно выполнить вручную на платформе 8.5.1.1343 в учебной базе.

Процедура ВыполнитьПример() Экспорт
    Цена = 250;
    Количество = 3;
    Лимит = 1000;
    Сумма = Цена * Количество;
    ПроходитЛимит = Сумма <= Лимит;
    ТекстЗаявки = "Книги: " + Строка(Количество) + " шт.";
    Сообщить(ТипЗнч(Сумма) = Тип("Число"));
    Сообщить(ТипЗнч(ПроходитЛимит) = Тип("Булево"));
    Сообщить(ТипЗнч(ТекстЗаявки) = Тип("Строка"));
    Если ПроходитЛимит Тогда
        Решение = "В пределах собственного лимита";
    Иначе
        Решение = "Превышен собственный лимит";
    КонецЕсли;
    Сообщить(Сумма = 750);
    Сообщить(ТекстЗаявки = "Книги: 3 шт.");
    Сообщить(Решение = "В пределах собственного лимита");
КонецПроцедуры

Разбор по шагам

  1. Справа от присваивания Сумма находится арифметическое выражение. Результат 750 — число, а не текст для интерфейса.

  2. Сравнение Сумма<=Лимит даёт Булево. В отдельной переменной хранится результат проверки, а не формула для повторного вычисления.

  3. Конкатенация с явной Строка(Количество) даёт строковое сообщение. Его тип не становится числовым из-за цифры внутри текста.

  4. Если получает логическую переменную ПроходитЛимит, выбирая одно решение. Число 750 само по себе не используется как условие.

  5. Сопоставить типы и значения. После изменения количества сначала нужно заново вычислить сумму и условие — старые результаты не обновляются автоматически.

Как проверить результат

  1. Шесть сообщений Истина: три типа и три результата. Сумма 750 не превышает лимит 1000.

  2. Измените начальное количество на 5: сумма 1250, сообщение Книги: 5 шт., решение о превышении. Типы останутся прежними, проверки исходных значений станут Ложь.

Ожидаемый результат

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

На что обратить внимание

  1. Имя переменной не определяет её тип: тип задаёт фактически вычисленное значение.

  2. Сравнение в выражении не является записью новой суммы в переменную.

  3. Текстовая сумма для показа не должна использоваться для вычислений. Это собственная учебная заявка, а не расчёт лимита по рабочим документам.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.