Синтаксис и применение Выражения языка в платформе 1С:Предприятие. Описание и примеры кода.
Полное описание, параметры и ограничения
Выражения языка
Выражения языка
Выражение — это математическая, логическая или строковая формула, состоящая из соответствующих операций, по которой вычисляется значение.
Математическое и логическое выражение может стоять справа от знака равенства в операторах присваивания, быть параметром процедур или функций.
Логическое выражение также может быть условием в управляющих конструкциях Если, Пока, Для.
Выражения состоят из констант, переменных и функций, связанных символами логических и/или арифметических операций.
Методическая информация
Практические примеры
Выражения: получить сумму, условие и строку из одной заявки
Одна собственная заявка даёт три разных результата выражений: число, Булево и текст. Только логическое выражение управляет веткой Если.
Где и как запускать
Полный серверный общий модуль учебной базы. Собственные значения в памяти, без чтения или записи рабочих данных.
Подготовка
Используйте отдельную учебную базу без рабочих данных. Создайте серверный общий модуль УчебныйЯзык с флагом Сервер, без Привилегированный.
Вставьте весь модуль выбранного примера, а не одну процедуру внутрь другой. Из своей серверной команды учебной обработки вызовите УчебныйЯзык.ВыполнитьПример().
Все числа, строки и коллекции созданы в самом примере. Документы, регистры, файловая система и сеть не используются; никаких зависимостей от КА2/УНФ/УТ/БП нет.
Браузер показывает код, но не исполняет BSL. Проверки результата нужно выполнить вручную на платформе 8.5.1.1343 в учебной базе.
Процедура ВыполнитьПример() Экспорт
Цена = 250;
Количество = 3;
Лимит = 1000;
Сумма = Цена * Количество;
ПроходитЛимит = Сумма <= Лимит;
ТекстЗаявки = "Книги: " + Строка(Количество) + " шт.";
Сообщить(ТипЗнч(Сумма) = Тип("Число"));
Сообщить(ТипЗнч(ПроходитЛимит) = Тип("Булево"));
Сообщить(ТипЗнч(ТекстЗаявки) = Тип("Строка"));
Если ПроходитЛимит Тогда
Решение = "В пределах собственного лимита";
Иначе
Решение = "Превышен собственный лимит";
КонецЕсли;
Сообщить(Сумма = 750);
Сообщить(ТекстЗаявки = "Книги: 3 шт.");
Сообщить(Решение = "В пределах собственного лимита");
КонецПроцедурыРазбор по шагам
Справа от присваивания Сумма находится арифметическое выражение. Результат 750 — число, а не текст для интерфейса.
Сравнение Сумма<=Лимит даёт Булево. В отдельной переменной хранится результат проверки, а не формула для повторного вычисления.
Конкатенация с явной Строка(Количество) даёт строковое сообщение. Его тип не становится числовым из-за цифры внутри текста.
Если получает логическую переменную ПроходитЛимит, выбирая одно решение. Число 750 само по себе не используется как условие.
Сопоставить типы и значения. После изменения количества сначала нужно заново вычислить сумму и условие — старые результаты не обновляются автоматически.
Как проверить результат
Шесть сообщений Истина: три типа и три результата. Сумма 750 не превышает лимит 1000.
Измените начальное количество на 5: сумма 1250, сообщение Книги: 5 шт., решение о превышении. Типы останутся прежними, проверки исходных значений станут Ложь.
Ожидаемый результат
Разобраны разные типы выражений, присваивание их результатов и необходимость повторного вычисления после изменения исходных данных.
На что обратить внимание
Имя переменной не определяет её тип: тип задаёт фактически вычисленное значение.
Сравнение в выражении не является записью новой суммы в переменную.
Текстовая сумма для показа не должна использоваться для вычислений. Это собственная учебная заявка, а не расчёт лимита по рабочим документам.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.