Условия в 1С 8.3

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

В этой статье мы рассмотрим, каким образом осуществляется отработка логических условий в 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 шагов»

  1. Книга написана понятным и простым языком — для новичка.
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Научитесь понимать архитектуру 1С;
  4. Станете писать код на языке 1С;
  5. Освоите основные приемы программирования;
  6. Закрепите полученные знания при помощи задачника;

О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»

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

  1. Очень доступный и понятный язык изложения
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Поймете идеологию управляемого приложения 1С
  4. Узнаете, как разрабатывать управляемое приложение;
  5. Научитесь разрабатывать управляемые формы 1С;
  6. Сможете работать с основными и нужными элементами управляемых форм
  7. Программирование под управляемым приложением станет понятным

Промо-код на скидку в 15% — 48PVXHeYu

Вступайте в мои группы:

Вконтакте: https://vk.com/1c_prosto
Фейсбуке: https://www.facebook.com/groups/922972144448119/
ОК: http://ok.ru/group/52970839015518
Твиттер: https://twitter.com/signum2009

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

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