Содержание:
1. Условные операторы в 1С
2. Условные операторы, примеры реализации в программе 1С
Условные операторы в 1С
Условные операторы в 1С представлены двумя конструкциями. Наиболее распространённая состоит из нескольких ключевых слов и имеет классический Basic-подобный синтаксис:
Если <ЛогическоеУсловие> Тогда
//Операторы
[Иначе]
//Операторы
[ИначеЕсли <ЛогическоеУсловие> Тогда]
//Операторы
КонецЕсли;
В самом простом варианте ветвления отсутствуют ключевые слова Иначе и ИначеЕсли. В таком варианте при истинности условия, управление перейдёт сначала к операторам в теле условия, затем к операторам после ключевого слова КонецЕсли. В противном случае – сразу к операторам, расположенным после КонецЕсли. Синтаксис такого варианта выглядит следующим образом:
Если <ЛогическоеУсловие> Тогда
//Операторы
КонецЕсли;
Необязательное ключевое слово Иначе используется для передачи управления определённым в них операторах в случае, если условие не истинно. ИначеЕсли используется для задания дополнительного условия, которое проверяется в случае неистинности условия, заданного после ключевого слова Если.
При любом синтаксисе условного оператора, в любом случае управление дойдёт до операторов, расположенных после КонецЕсли.
Условные операторы, примеры реализации в программе 1С
Для примера создадим форму, на которой расположим два реквизита с типом булево, значения которых будем проверять условным оператором и выводить соответствующее значению сообщение:

Использовать условный оператор
При нажатии на кнопку будет исполняться следующий код:
Процедура ПроверитьУсловие()
Сообщение = “Ни одно условие не истинно!”;
Если Условие Тогда
Сообщение = “Основное условие истинно”;
Иначе
Сообщение = “Основное условие не истинно”;
КонецЕсли;
Сообщить(Сообщение);
КонецПроцедуры
Для переменных типа булева необязательно прописывать сравнение с Истина или Ложь, они по умолчанию сравниваются с Истина.
Исполним данный код:

Основное условие истинно
Код отрабатывает верно, однако, если Условие будет ложно, то программа не выведет «Ни одно условие не истинно!», а выведет следующее:

Основное условие не истинно
Для корректной отработки необходимо добавить вложенный условный оператор на каждое значение основного условия:
Процедура ПроверитьУсловие()
Сообщение = “”;
Если Условие Тогда
Если ДополнительоеУсловие Тогда
Сообщение = “Оба условия истинны!”;
Иначе
Сообщение = “Истинно только основное условие!”;
КонецЕсли;
Иначе
Если ДополнительоеУсловие Тогда
Сообщение = “Истинно только дополнительное условие!”;
Иначе
Сообщение = “Ни одно условие не истинно!”;
КонецЕсли;
КонецЕсли;
Сообщить(Сообщение);
КонецПроцедуры
Проверим исполнение данного кода:

Истинно только основное условие

Оба условия истинны

Истинно только дополнительное условие

Ни одно условие не истинно
Также существует оператор условного вычисления, он имеет следующий синтаксис:
?(<Логическое выражение>, <Выражение 1>, <Выражение 2>)
С его помощью можно переписать код процедуры следующим образом:
Процедура ПроверитьУсловие()
Сообщение = ?(Условие,?(ДополнительоеУсловие,”Оба условия истинны!”,”Истинно только основное условие!”),?(ДополнительоеУсловие,”Истинно только дополнительное условие!”,”Ни одно условие не истинно!”));
Сообщить(Сообщение);
КонецПроцедуры
Такое выражение отработает точно так же, как и полноразмерная конструкция Если Тогда. На данном примере выражение получилось слишком громоздким и трудночитаемым, однако, если условие не требует внутреннего ветвления, то условное присвоение занимает меньше места и читается не сложнее Если Тогда:
Сообщение = ?(Условие, “Условие истинно!”, “Условие не истинно!”);
Сообщить(Сообщение);
Специалист компании ООО “Кодерлайн”,
Астанов Артём
Добавить комментарий