Очень часто в программе необходимо реализовать ситуацию, когда нужный код должен срабатывать тогда, когда выполняется определенное логическое условие. Или по другому: когда выполняется какое –то логическое условие, отрабатывает один код, а когда выполняется другое условие, то отрабатывает другой код.
В этой статье мы рассмотрим, каким образом осуществляется отработка логических условий в 1С 8.3.
Оператор Если
Основным оператором условий в языке программирования в 1С, по средством которого осуществляется отработка условий, является оператор Если.
В самом просто случае этот оператор имеет следующий синтаксис:
Если <ЛогическоеУсловие> Тогда [Операторы] КонецЕсли
В том случае, если логическое условие принимает значение Истина, то выполняются операторы после ключевого слова Тогда. Если же это условие не выполняется, то следуют операторы после ключевого слова КонецЕсли.
Логическое условие — это или какое-то выражение, которое должно вернуть Истину или Ложь, или переменная типа булева.
То есть, может быть, такой вариант.
Если X >= 5 Тогда //операторы КонецЕсли
Или, такой вариант.
Условие = Х > 5 и Х < 10; Если Условие Тогда //операторы КонецЕсли
Заметьте, что операторы после ключевого с лова КонецЕсли выполняются в любом случае. Выполняется условие или нет. Если же нам нужно, чтобы когда условие выполняется, работали одни операторы, а когда нет – другие, то синтаксис операторе Если усложнится.
Если <ЛогическоеУсловие> Тогда [Операторы1] иначе [Операторы2] КонецЕсли
В этом случае операторы 1 выполняться тогда, когда логическое условие будет Истина, а операторы 2 выполняться, когда логическое условие будет Ложь.
Если мы возьмем предыдущий пример, то с ключевым словом Иначе он будет выглядеть следующим образом.
Если Х > 5 и Х < 10 Тогда //Операторы1 иначе //Операторы2 КонецЕсли
Но, очень часто возникают случаи, когда нужно отработать несколько условий. Например, может возникнуть ситуация, когда нужно отработать три условия: число больше нуля, число меньше нуля и число равно нулю. Тогда синтаксис еще усложниться.
Если <ЛогическоеУсловие1> Тогда [Операторы1] ИначеЕсли <ЛогическоеУсловие2> Тогда [Операторы2] ... ИначеЕсли <ЛогическоеУсловиеN> Тогда [ОператорыN] иначе [ОператорыИначе] КонецЕсли
В этом случае введено новое ключевое слово ИначеЕсли. Условие, которое установлено после ключевого слова ИначеЕсли будет проверяться тогда, когда условия после ключевого слова Если и после предыдущих ключевых слов ИначеЕсли (при их наличие) не выполняются (возвращается Ложь).
Причем, в этой конструкции ключевое условие Иначе не обязательно к использованию.
В этом случае решение предыдущего примера (с числом) будет выглядеть так:
Если N > 0 Тогда //операторы 1 ИначеЕсли N = 0 Тогда //операторы 2 Иначе //операторы 3 КонецЕсли
Или мы можем отработать такое условие.
Если N >= 1 Тогда //операторы 1 ИначеЕсли N > 0 и N < 1 Тогда //операторы 2 ИначеЕсли N = 0 Тогда //операторы 3 Иначе //операторы 4 КонецЕсли
Обращаю внимание, что проверка условий идет с верху в низ, т.е. сначала проверяется выполнение условий после ключевого слова Если, и если условие выполняются , то отрабатываются операторы, которые идут после этого ключевого слова, потом проверяется выполнении условий после первого условия ИначеЕсли, и выполняются его операторы и т.д. И если ни одно условие не отработалось, то выполняются операторы после ключевого слова Иначе (при его наличии).
Вычислить выражение по условию
В 1С 8.3. в качестве оператора условия можно использовать ни только оператор Если, но также оператор ?(вычислить выражение по условию). Этот оператор имеет следующий синтаксис.
?(<Условие>,<Выражение1>,<Выражение2>)
Если логическое выражение Условие принимает значение Истина, то выполняется выражение 1, а иначе выполняется выражение 2.
Например, этот оператор мы можем использовать, если нужно вычислить квадратный корень какого-то числа. Если число под корнем будет меньше нуля, то мы его умножим на -1, а иначе возьмем это же число.
ЧислоДляКорня = ?(Число1 < 0, Число1*(-1),Число1); Корень = Окр(Sqrt(ЧислоДляКорня),5);
Как вы видите, при помощи этого оператора можно упрощать написание кода, по сути можно писать условие одной строкой.
Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить в
Книга «Программировать в 1С за 11 шагов»
Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»
- Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника;
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Промо-код на скидку в 15% — 48PVXHeYu
Вступайте в мои группы:
Вконтакте: https://vk.com/1c_prosto
Фейсбуке: https://www.facebook.com/groups/922972144448119/
ОК: http://ok.ru/group/52970839015518
Твиттер: https://twitter.com/signum2009