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

Инструменты сайта


1c:база:условные_операторы

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
1c:база:условные_операторы [2014/06/14 10:12]
127.0.0.1 внешнее изменение
1c:база:условные_операторы [2016/10/18 03:06] (текущий)
admin Поправил ссылку на булево
Строка 1: Строка 1:
 +====== Условные операторы ======
 +===== Описание. =====
  
 +Условные операторы используются для реализации ветления веток алгоритмов. Обычно конструкция с условными оператором выглядит следующим образом:
 +<code 1c>
 +Если а = 1 Тогда
 + //Операции которые будут выполнены если условие истинно
 +ИначеЕсли а = 2 Тогда//этой ветки может и не быть, если она нам не нужна
 + //Операции которые будут выполнены если второе условие истинно
 +Иначе //этой ветки может и не быть, если она нам не нужна
 + //Операции которые будут выполнены если все условия ложны
 +КонецЕсли;
 +</code>
 +В условных конструкциях между операторами ''Если'',''Иначе'' и ''Тогда'' интерпретатор ожидает увидеть булевскую константу ''Истина'' или ''Ложь''. Это может быть результат сравнения условного выражения или просто переменная с типом [[1c:база:булевскаялогика|булево]]. Если вы уверены что у вас в переменной булево или вы делаете сравнение, не имеет смысла писать условия типа ''Если РеализацияПроведена = Истина Тогда'' интерпретатор выполнит плюс одно ненужное сравнение, гораздо логичнее и проще писать: ''Если РеализацияПроведена Тогда''
 +
 +===== Сокращенная форма записи. =====
 +Условный оператор имеет сокращенную форму, которую логично использовать для коротких условий, которые можно поместить в одну строку. В этом случае сокращенная форма записи делает код более компактным. Вот как это выглядит:
 +<code 1c>А = ?( А = 1, Б, В);</code>
 +Здесь в случае если ''А = 1'' ей будет присвоено значение переменной Б иначе она получит значение переменной В.
 +
 +===== Проверка на выполнение условия только когда это имеет смысл. =====
 +В случаях когда выполнение второго и последующих условных выражений не имеет смысла, оператор его не производит. Например:
 +<code 1c>
 +Если ТипЗнч(А) = "Структура" И А.КакоеТоСвойство = 1 Тогда
 +</code>
 +Здесь проверка свойства 'КакоеТоСвойство' будет выполнена только в том случае если тип переменной А является структурой. Иногда это бывает очень удобным, например в том случае, если бы в переменной А у нас оказалось ''Неопределенно'' попытка найти у нее какой либо свойство, привело бы к ошибке и остановило выполнение программы.