Условные действия
=================

После сохранения формы и приведения кодов компонентов в порядок
можно переходить к настройке условных действий.

Условные действия используются для управления отображением и поведением
элементов формы в зависимости от значений, которые вводит пользователь.

.. note::
    Условные действия не являются отдельной сущностью приложения и привязаны к конкретной форме.



Переход к разделу «Условные действия»
-------------------------------------

1. Откройте ранее созданную форму.
2. На левой панели выберите вкладку **«Условные действия»**.

.. figure:: ../resources/img/conditional_actions_tab.png

   Раздел «Условные действия» формы

Создание нового условного действия
----------------------------------

Для добавления условного действия выполните следующие шаги:

**Шаг 1.** Нажмите правой кнопкой мыши по папке **«Условные действия»** 

**Шаг 2.** Выберите **«Добавить группу действий»**.

**Шаг 3.** В открывшемся окне латинскими буквами укажите наименование условных действий.

.. figure:: ../resources/img/conditional_action_create.png

   Создание нового условного действия


**Шаг 4.** В открывшейся странице нажимаем кнопку «+» для добавления условных действий

Каждое условное действие состоит из двух логических частей:

* условия (когда выполняется);
* действий (что происходит при выполнении условия).


Логика условия
-----------------

В первую очередь необходимо указать условие,
при котором будет срабатывать правило.

**Шаг 1.** В поле выбора компонента укажите компонент формы, значение которого будет проверяться.

**Шаг 2.** Выберите тип условия (равно, не равно и т.д.).

**Шаг 3.** Укажите значение, при котором будет соблюдаться условие.

В рамках текущего процесса в качестве условия используется
поле **«Тип заявителя»**.

Пример логики условия:

Что требуется по ордеру:

* поле **«БИН организации»** должно отображаться только при выборе типа заявителя **«ЮЛ»**
* поле **«ИИН индивидуального предпринимателя»** должно отображаться только при выборе типа заявителя **«ИП»**

Как это работает через условные действия:

Если Тип заявителя = **«ЮЛ»**

То показать поле **«БИН организации»** и скрыть поле **"ИИН индивидуального предпринимателя"**

Если Тип заявителя = **"ИП"**

То показать поле **"ИИН индивидуального предпринимателя"** и скрыть поле **"БИН организации"**

Настройка условия
---------------------------

После нажатия на кнопку **«+»** на странице нам открывается возможность настроить нужные нам условные действия

**Шаг 1.** В строке **«Если»** выбираем поле, которое будет являться условием для срабатывания действия. В нашем случае это **«Тип заявителя»**, выбираем из списка код этого поля.

.. figure:: ../resources/img/conditional_actions_setting.png

   Настройка условия


**Шаг 2.** Теперь нам необходимо указать при выборе какого значения мы будем производить действие с полем. 
В нашем случае пользователь должен отметить тип заявителя **«ЮЛ»**, значит обращаемся к справочнику поля **«Тип заявителя»**

.. figure:: ../resources/img/type_of_applicant_example.jpeg

В нашем случае, вариант **«ЮЛ»** = значению **«1»**

Значит в условных действиях выбираем операнд **«=»**, а в следующем поле тип компонента выбираем **«Текстовое значение»**

И в открывшемся правом поле указываем нужное нам значение справочника.

.. figure:: ../resources/img/conditional_if.png

   Настройка условия


Настройка действия
--------------------
В строке **«То»** указываем с каким полем и что именно должно произойти

В нашем случае, нужно отобразить поле **«БИН организации»** и при этом скрыть поле **«ИИН индивидуального предпринимателя»**.

Значит в строке **«То»** выбираем из списка код поля **«БИН организации»** - в нашем случае это **«textbox_bin»** и выбираем из списка действие, которое должно произойти с полем. В нашем случае **«Отобразить»**

.. figure:: ../resources/img/conditional_action1.png

   Настройка действия


Для того чтобы добавить еще одно действие к тому же условию, под строкой **«То»** нажимаем на кнопку добавить **«+»**

И аналогичным образом указываем, что уже поле **«ИИН индивидуального предпринимателя»** должно быть скрыто.

.. figure:: ../resources/img/conditional_action2.png

   Первое условное действие

Первое условное действие готово, теперь нам необходимо настроить зеркальное действия для второго варианта справочника, когда выбран Тип заявителя **«ИП»**.

Шаги создания второго условного действия аналогичны созданию первого варианта, но с другими условиями.

.. figure:: ../resources/img/conditional_action_final.jpeg

Аналогично необходимо настроить **Названия полей** (надписи)

**Шаг 1.** В первый блок условий в раздел "То" 

* добавить код поля в котором находится надпись "БИН организации" и выбрать действие "Отобразить"

* добавить код поля в котором находится надпись "ИИН индивидуального предпринимателя" и выбрать действие "Скрыть"

**Шаг 2.** Аналогично, во втором блоке условий настроить зеркально

* добавить код поля в котором находится надпись "БИН организации" и выбрать действие "Скрыть"

* добавить код поля в котором находится надпись "ИИН индивидуального предпринимателя" и выбрать действие "Отобразить"

.. figure:: ../resources/img/conditional_actions_both_final.jpeg

**Ожидаемый результат:**

При выборе Типа заявителя "ЮЛ":

* скрывается строка "ИИН индивидуального предпринимателя" и поле для ввода ИИН
* отображается строка "БИН Организации" и поле для ввода БИН

При выборе Типа заявителя "ИП":

* скрывается строка "БИН Организации" и поле для ввода БИН
* отображается строка "ИИН индивидуального предпринимателя" и поле для ввода ИИН

Проверка работы условных действий
---------------------------------

После настройки условных действий необходимо проверить их работу.

Для этого:

1. Перейдите в режим редактирования формы нажав на значок редактирования в панеле редактора 

.. image:: ../resources/img/edit.jpeg

2. Измените значение поля, участвующего в условии.
3. Убедитесь, что соответствующие поля
   отображаются или скрываются корректно.

Если логика работает ожидаемым образом,
условные действия настроены корректно.


Результат этапа
---------------

По завершении данного этапа:

* форма адаптируется под разные сценарии заполнения;
* пользователь видит только релевантные поля;
* логика заполнения заявки соответствует требованиям ордера.

После настройки условных действий можно переходить
к следующему этапу - созданию реестра для хранения заявок.
