Условия в 1С (11 из 100 дней)

Условия в 1С (11 из 100 дней)

Условия

- Условия - одна из важнейших частей программирования

Условия позволяют машине реагировать на внешние факторы и принимать решения.

Условия в 1С (11 из 100 дней)

Без условий весь код был бы линейным - то есть всегда выполнялась одна и та же последовательность команд. Условия нужны для того, чтобы выполнять некоторый код только в некоторых ситуациях, а не всегда.

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

Оператор условного выполнения сообщает платформе, что часть кода нужно выполнять лишь при некотором условии.

Синтаксис

Условия в 1С (11 из 100 дней)

Для читаемости следует:

1. Сдвигать содержимое блоков с помощью табуляции

2. Размещать каждое ключевое слово на отдельной строке

Неправильно делать так:

Условия в 1С (11 из 100 дней)

Посмотрим на практике:

1. Создадим в справочнике новую переменную "ДатаРождения"

Условия в 1С (11 из 100 дней)

2. Создадим новый параметр сеанса с типом данных "СправочникСсылка.Сотрудники" и в модуле сеанса пропишем следующий код:

Условия в 1С (11 из 100 дней)

3. В модуле "СеансВызовСервера" пропишем код:

Условия в 1С (11 из 100 дней)

4. В модуле приложения пропишем следующий код с условием (Не забудьте заполнить справочник с наименованием "Администратор" и указать дату рождения):

Условия в 1С (11 из 100 дней)

5. Запустим платформу и увидим

Условия в 1С (11 из 100 дней)

Логические выражения

Условия бывают сложными и соединенными логическими операторами:

Условия в 1С (11 из 100 дней)

- Операция "И" - требует выполнения обоих вариантов

- Операция "Или" - требует выполнения хотя бы одного варианта

- Операция "Не" - выполняет отрицание варианта

Примеры работы логических операторов:

Условия в 1С (11 из 100 дней)

Сокращенные вычисления

Платформа проверяет лишь минимально необходимую часть условия

- Ложь И <Уже неважно>

- Истина Или <Уже неважно>

Это можно использовать и ставить на второе место:

- Вычислительно тяжелые условия

- Условия, проверка которых может завершиться ошибкой

Например:

Условия в 1С (11 из 100 дней)

Самодокументируемый код

Поскольку в качестве выражения может быть любое значение типа "булево", часто применяют пример улучшения читабельности кода.

Например, называют переменную так, чтобы читалась со словом ЕСЛИ:

Условия в 1С (11 из 100 дней)

Получается, что:

- Самодокументируемый код - это приемы присвоения имен и структурирования кода для улучшения его читабельности и общего дизайна программы.

Было - длинное выражение в коде:

Условия в 1С (11 из 100 дней)

Стало - замена выражения на понятную переменную:

Условия в 1С (11 из 100 дней)

Альтернативные ветки выполнения

Блоки условий могут иметь дополнительные альтернативные блоки логики:

- Блок "Иначе" предназначен для выбора действий из двух вариантов: когда условие истинно или когда ложно:

Условия в 1С (11 из 100 дней)

- Может быть только один и располагается в конце

- Блок "ИначеЕсли" предназначен для выбора из нескольких вариантов

Условия в 1С (11 из 100 дней)

Он позволяет объединить альтернативных условий в одно:

- Может быть много

- Проверяться блоки будут последовательно сверху вниз

- Будет выполнен один из вариантов уведомления, в зависимости от значения в блоке "Если".

Вложенность условий

Допускается вложенность условий. Внутри блока условий можно написать абсолютно любой код, в том числе и другие условия:

Условия в 1С (11 из 100 дней)

Посмотрим все на практике:

1. Создадим новый справочник "Контрагенты", зададим ему реквизиты: ДеньРождения, ТипКонтрагенты, КПП (укажем для каждого соответствующий тип данных)

2. Сделаем так, что при определении типа контрагенты появлялся: КПП или ДеньРождения. Пропишем следующий код:

Условия в 1С (11 из 100 дней)

- Мы создаем две обработки, которые от выборного типа контрагенты выводит нам на форму элемент, а также одновременно с этим очищает не нужный.

3. Посмотрим, что получилось

Условия в 1С (11 из 100 дней)

Отдельные случаи записи условий

Тернарный оператор

Для условий, которые подразумевают присваивание какого-либо одного значения, предусмотрен специальный оператор "?()" (Тернарный оператор).

Например, код можно переписать с помощью оператора "?()"

Условия в 1С (11 из 100 дней)

Тернарный оператор - это оператор над тремя операндами

В результат устанавливается второй операнд, если первый - условие - истинно

В противном случае в результат устанавливается третий операнд.

Условия в 1С (11 из 100 дней)

- Часто тернарный оператор упрощает код

- Но тернарные операторы со сложными условиями и выражениями плохо читаются

- Заменяйте их на операторы условного выполнения или упрощайте выражения, ввода временные переменные

Разберем на практике:

1. Создадим обработку, создадим новый реквизит "ЧислоПример" и команду "ПроверитьЧисло"

2. В модуле формы пропишем следующий код

Условия в 1С (11 из 100 дней)

3. Запустим программу и убедимся, что условие прописанное в две строки отрабатывает и выдает корректный ответ

Условия в 1С (11 из 100 дней)

Присваивание типа "Булево"

Если условие устанавливается значение в переменную с типом "булево", имеет смысл отказаться от условия совсем.

Например, вместо условия написать одну строку:

Условия в 1С (11 из 100 дней)

Проверка заполненности

Можно сравнивать значение с пустым значением:

Условия в 1С (11 из 100 дней)

Можно также воспользоваться специальными функциями:

Условия в 1С (11 из 100 дней)

Но проще воспользоваться универсальной функцией:

Условия в 1С (11 из 100 дней)

Точка останова с условием

Иногда ошибка находится в коде, выполняемом многократно, и воспроизводится только при определенном сочетании значений переменных

- В таких случаях ставят Точку останова с условием: Откладка - Точка останова с условием

- Выполнение остановится, когда условие станет истинным

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

1. Для этого надо нажать специальную кнопу в панели конфигуратора

Условия в 1С (11 из 100 дней)

2. Затем в открывшемся поле ввода прописать условие, при котором выполнение должно прерваться

Условия в 1С (11 из 100 дней)

3. Такая точка будет отображаться - синим кружком

Условия в 1С (11 из 100 дней)

Встретимся с вами уже завтра с ЦикламиЦикламиЦИКЛАМИ.

11
11