Добавление полей формы
========================

На этом шаге мы наполняем форму полями ввода.
Поля добавляются в соответствии со структурой данных ордера.

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

.. note::

 Важно отметить, что при создании формы обязательным является присвоение компонентам интуитивно понятного кода.
 Для того, чтобы сменить автоматически сгенерированный системой код компонента, необходимо выделить нужный компонент и поменять его код в поле «код компонента» - предпочтительно в виде «тип_название»


Общий принцип добавления полей
------------------------------

Добавление любого поля на форму выполняется по одному и тому же принципу:

1. Выделяется нужная ячейка таблицы.
2. В панели **«Компоненты»** кликом выбирается необходимый компонент.
3. Компонент добавляется в выбранную ячейку.
4. В свойствах компонента выполняется его настройка.

**Здесь мы рассмотрим создание полей на нескольких примерах прямо из ордера.**

Шаги добавления полей на форму
------------------------------
**Шаг 1.** В левую колонку таблицы добавляем компонент **«Неизменяемый текст»**. Для ускорения процесса можно добавить сначала сразу все наименования полей, затем перейти к компонентам. 

**Шаг 2.** В правую колонку добавляем компонент в зависимости от типа данных, указанного в ордере:

* Номер заявки — компонент **«Номер»**.
* Справочные значения — **«Выпадающий список»**.
* Выбор одного варианта — **«Переключатель вариантов»**.
* Текстовые данные — **«Однострочное поле»**.
* Комментарии — **«Многострочный текст»**.
* Файлы - компонент **«Файл»**

**Шаг 3.** Для каждого поля во вкладке **«Свойства»**:

* Задаем код поля (читаемый и содержащий смысловую нагрузку предназначения поля)
* При необходимости отмечаем обязательность 

Поле 1. Порядковый номер заявки
-------------------------------

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

В поле **«Надпись»** указывается название 
**«Порядковый номер заявки»**. При необходимости добавляем перевод.

.. figure:: ../resources/img/field_label_static_text.png

   Название поля с использованием компонента «Неизменяемый текст»

**Шаг 2.** В правой ячейке добавляется компонент **«Номер»** из раздела
**«Специальные»**.

Данный компонент будет использовать шаблон номера,
к созданию которого мы перейдем позже.

.. figure:: ../resources/img/field_counter.png

   Компонент «Номер» для порядкового номера заявки

Не забываем поменять код поля на читаемый и содержащий смысл.


Добавление строк в таблицу
--------------------------

Для добавления следующего поля необходимо добавить новую строку в таблицу.

Добавление строки выполняется с помощью стрелки **«вниз»**,
расположенной внизу таблицы.

.. figure:: ../resources/img/add_table_row.png

   Добавление новой строки в таблицу


Поле 2. Статус заказа
--------------------

Поле «Статус заявки» имеет тип данных **«Справочник»**.

**Шаг 1.** В левую ячейку добавляем компонент **"Неизменяемый текст"** и указываем название поле "Статус заявки"

**Шаг 2.** В правую ячейку из раздела "Элементы выбора" добавляем компонент **"Выпадающий список"**


.. figure:: ../resources/img/field_dropdown.png

   Компонент «Выпадающий список»

Настройка возможных значений выполняется во вкладке **«Элементы»**.

Список значений может быть:

* создан вручную с помощью кнопки «Добавить ряд данных»;
* выбран из уже существующих справочников системы.

В режиме заполнения пользователю отображаются значения из столбца
«Наименование», а системным значением является значение из столбца
«Значение».


.. note::
    Компонент «Выпадающий список» имеет следующие настройки:
    
    * «Обязательное поле» - пока не работает
    * «Заблокировать от изменений пользователем» - блокирует выбор значения из справочника пользователем во время редактирования заявки.
    * «Шифровать данные» используется для защиты конфиденциальной информации. Если опция включена, значения поля сохраняются в системе в зашифрованном виде и недоступны для чтения вне платформы. Шифрование включается галочкой в настройках компонента формы. Для пользователей работа с полем не меняется - данные автоматически шифруются при сохранении и расшифровываются при просмотре. Примечание: Для работы функционала необходимо попросить администратора платформы включить использование шифрования.
    * «Позволять поиск» позволяет найти нужное значение в справочнике
    * «Связь с компонентом» позволяет связывать справочники между собой, для фильтрации определенных значений в зависимости от другого справочника.
    
Поле 3. Тип заявителя
--------------------
Для поля «Тип заявителя» мы используем компонент **«Переключатель вариантов»**. Т.к в данном случае предполагается использование компонента, позволяющее выбрать только один возможный вариант.

Переключатель вариантов по своим настройкам похож на компонент «Выпадающий список», внутри него так же используется вложенный справочник, либо возможные значения заполняются вручную по нажатию на вкладку **«Элементы»**

**Шаги:**

**Шаг 1.** На форме в нужной строке добавляем компонент **«Переключатель вариантов»**.

**Шаг 2.** Кликаем по компоненту и переходим в его настройки.

**Шаг 3.** Открываем вкладку **«Элементы»**.

**Шаг 4.** В таблице ниже добавляем возможные варианты:

* указываем наименование значения («ЮЛ», «ИП»);

* задаём соответствующее значение (код, может быть как числовым так и буквенным).

**Шаг 5.** После указания всех необходимых значений нажимаем «ОК».

Поля 4,5,6,7,8,9: «БИН организации», «ИИН индивидуального предпринимателя», «Наименование организации или индивидуального предпринимателя», «ФИО Руководителя организации», «Номер телефона», «Адрес электронной почты»
--------------------

Поля 4–9 предназначены для ввода идентификационных и контактных данных заявителя.
Все эти значения представляют собой короткий текст, вводимый в одну строку, поэтому для них используется компонент **«Однострочное поле**.

Компонент **«Однострочное поле»** позволяет вводить и отображать произвольное текстовое значение в одну строку (без абзацев) и подходит для таких данных, как:

* идентификаторы (БИН, ИИН);

* наименования и ФИО;

* номер телефона;

* адрес электронной почты.

.. figure:: ../resources/img/field_text_input.png

   Компонент «Однострочное поле»

.. note::

 Для компонента «Однострочное поле» доступны следующие настройки:

 * **Обязательное поле** — делает поле обязательным для заполнения;
 * **Заблокировать от изменений** — запрещает пользователю изменять значение;
 * **Шифровать данные** — шифрует введенные значения;
 * **Маска ввода** — ограничивает формат вводимых данных;
 * **Плейсхолдер** — отображает подсказку внутри пустого поля.

**Шаги:**

**Шаг 1.** Для каждого из полей 4-9 добавляем в правую ячейку компонент **"Однострочное поле"**

**Шаг 2.** В настройках каждого компонента присваем читаемый и логичный код поля.

**Шаг 3.** Отмечаем галочку «Обязательное поле» — согласно звёздочке в ордере рядом с названием поля.

**Шаг 4.** Отмечаем галочку "Заблокировать от изменений" тем полям, у которых в примечании ордера указано что поля заполняются автоматически.

Настройки формата (маска ввода и регулярные выражения)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

⚠️ Маска ввода настраивается отдельно для каждого компонента.

1. Формат полей **"ИИН индивидуального предпринимателя" и "БИН организации"**

**Шаги:**

**Шаг 1.** В настройках компонента включаем галочку **«Маска ввода»**

**Шаг 2.** В октрывшемся поле открываем настройки маски ввода

**Шаг 3.** В таблице с настройками для задания формата 12-значного числового значения используем маску ############. 

Маску можно:

 * Ввести вручную
 * Кликом по строке в предложенной таблице


2. Формат поля **"Номер телефона"**

**Шаг 1.** Для поля «Номер телефона» также включаем настройку «Маска ввода».

**Шаг 2.** В маске указываем формат с фиксированными символами, например: +7 (###) ###-##-##

Фиксированные символы (например, +7) будут:

* автоматически подставляться;

* недоступны для удаления или изменения пользователем.

Это позволяет обеспечить корректный формат ввода номера телефона.

3. Настройки формата поля **"Электронная почта"**

Для поля «Адрес электронной почты» требуется строгая проверка формата.

**Шаг 1.** Включаем настройку «Маска ввода».

**Шаг 2.** После этого становится доступна дополнительная галочка **Регулярное выражение* - отмечаем её

**Шаг 3.** Нажимаем на иконку настроек уже в октрывшемся поле **Регулярное выражения**

**Шаг 4.** В открывшемся окне выбираем готовый шаблон формата e-mail из списка доступных регулярных выражений.

**Шаг 5.** Нажимаем "Ок"

.. note::

 При ручном редактировании регулярного выражения для применения изменений необходимо нажать Enter.


.. seealso::

   Дополнительную информацию касательно всех полей и их особенностей можно найти в официальной документации:
   http://rtd.lan.arta.kz/docs/docs-po-platforme-arta-synergy/ru/latest/form/components.html


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

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

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


