|

Условные операторы в 1С, основы и примеры


Содержание:

1. Условные операторы в 1С

2. Условные операторы, примеры реализации в программе 1С

Условные операторы в 1С

Условные операторы в 1С представлены двумя конструкциями. Наиболее распространённая состоит из нескольких ключевых слов и имеет классический Basic-подобный синтаксис:

Если <ЛогическоеУсловие> Тогда

                        //Операторы

            [Иначе]

                        //Операторы

[ИначеЕсли <ЛогическоеУсловие> Тогда]

                        //Операторы

            КонецЕсли;

         В самом простом варианте ветвления отсутствуют ключевые слова Иначе и ИначеЕсли. В таком варианте при истинности условия, управление перейдёт сначала к операторам в теле условия, затем к операторам после ключевого слова КонецЕсли. В противном случае –  сразу к операторам, расположенным после КонецЕсли. Синтаксис такого варианта выглядит следующим образом:

 Если <ЛогическоеУсловие> Тогда

                        //Операторы

            КонецЕсли;

         Необязательное ключевое слово Иначе используется для передачи управления определённым в них операторах в случае, если условие не истинно. ИначеЕсли используется для задания дополнительного условия, которое проверяется в случае неистинности условия, заданного после ключевого слова Если.

         При любом синтаксисе условного оператора, в любом случае управление дойдёт до операторов, расположенных после КонецЕсли.

Условные операторы, примеры реализации в программе 1С

Для примера создадим форму, на которой расположим два реквизита с типом булево, значения которых будем проверять условным оператором и выводить соответствующее значению сообщение:

Использовать условный оператор

При нажатии на кнопку будет исполняться следующий код:

Процедура ПроверитьУсловие()

            Сообщение = “Ни одно условие не истинно!”;

            Если Условие Тогда

                        Сообщение = “Основное условие истинно”;

            Иначе

                        Сообщение = “Основное условие не истинно”;

            КонецЕсли;

            Сообщить(Сообщение);

КонецПроцедуры

         Для переменных типа булева необязательно прописывать сравнение с Истина или Ложь, они по умолчанию сравниваются с Истина.

         Исполним данный код:

Основное условие истинно

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

Основное условие не истинно

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

Процедура ПроверитьУсловие()

            Сообщение = “”;

            Если Условие Тогда

                        Если ДополнительоеУсловие Тогда

                                    Сообщение = “Оба условия истинны!”;

                        Иначе

                                    Сообщение = “Истинно только основное условие!”;

                        КонецЕсли;

            Иначе

                        Если ДополнительоеУсловие Тогда

                                    Сообщение = “Истинно только дополнительное условие!”;

                        Иначе

                                    Сообщение = “Ни одно условие не истинно!”;

                        КонецЕсли;

            КонецЕсли;

            Сообщить(Сообщение);

КонецПроцедуры

         Проверим исполнение данного кода:

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

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

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

Ни одно условие не истинно

Также существует оператор условного вычисления, он имеет следующий синтаксис:

         ?(<Логическое выражение>, <Выражение 1>, <Выражение 2>)

         С его помощью можно переписать код процедуры следующим образом:

Процедура ПроверитьУсловие()

            Сообщение = ?(Условие,?(ДополнительоеУсловие,”Оба условия истинны!”,”Истинно только основное условие!”),?(ДополнительоеУсловие,”Истинно только дополнительное условие!”,”Ни одно условие не истинно!”));

            Сообщить(Сообщение);

КонецПроцедуры

         Такое выражение отработает точно так же, как и полноразмерная конструкция Если Тогда. На данном примере выражение получилось слишком громоздким и трудночитаемым, однако, если условие не требует внутреннего ветвления, то условное присвоение занимает меньше места и читается не сложнее Если Тогда:

Сообщение = ?(Условие, “Условие истинно!”, “Условие не истинно!”);

            Сообщить(Сообщение);

Специалист компании ООО “Кодерлайн”,

Астанов Артём


Помогла ли вам статья? Оставьте свой комментарий:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Блог про 1С:Предприятие

Copyright © 2024 TopKoder

Мы занимаемся внедрением и обслуживанием программных продуктов 1С.