Low-code дизайнер > Создание форм > Шаблон формы / Динамические формы

Динамические формы

Внешний вид формы задачи или элемента приложения может меняться в зависимости от данных, которые пользователь вносит в систему в процессе работы. Это позволяет не перегружать формы полями и кнопками. Они показываются только тогда, когда необходимы. Формы, которые подстраиваются подобным образом под пользователя, называются динамическими.

Как это работает

Предположим, компания занимается продажей офисной мебели. Учет заказов, принятых от клиентов, ведется в отдельном приложении. На каждый заказ оформляется своя карточка с такими полями, как Товар, Количество, Сумма заказа и Итоговая сумма.

динамические формы

При заказе от 100 000 рублей компания дарит клиентам скидку. Как только менеджер по продажам укажет сумму заказа свыше 100 000, на карточке автоматически появится дополнительное поле Скидка. Менеджер выпишет размер скидки, а ELMA365 рассчитает итоговую стоимость с ее учетом.

динамические формы 2

Как настроить динамическую форму

В системе для настройки динамических форм используется виджет Код. Его можно разместить как на форме процессной задачи, так и на форме элемента приложения.

На форму задачи виджет добавляется в редакторе форм. Подробнее об этом вы можете прочитать в статьях «Шаблоны форм» и «Дизайнер интерфейсов». Из них вы также узнаете, как настроить свою собственную карточку задачи, как добавить на нее виджеты и настроить их.

На форму элемента приложения виджет добавляется в расширенном режиме настройки форм. В этом режиме вы можете настроить внешний вид карточки и создать пользовательский шаблон с виджетами. Обратите внимание, динамически изменяться будут только формы создания и редактирования, так как именно на них пользователи вносят в систему новые данные.

Добавив виджет Код на форму, вы можете прописать в нём необходимую логику, используя сценарии. Для этого рекомендуем изучить следующие статьи:

  • «Виджет „Код“» — API для работы с формами элементов приложения и формами в бизнес-процессах;
  • Сценарии на Typescript — здесь собрана информация о сценариях для работы с объектами системы и внешними страницами.

начало внимание

Использование констант Global или Namespace в сценариях ограничивает экспорт компонентов системы. Подробнее об этом читайте в статье «Глобальные константы в сценариях».

конец внимание

Фильтрация на динамической форме

Фильтрация связанных полей приложения позволяет облегчить пользователю работу с формой при ее заполнении. Допустим, сотрудник заполняет форму договора, где указывает представителя заказчика из приложения Контакты. Для того, чтобы сотрудник не искал нужного представителя в длинном списке контактов, можно в настройках формы установить фильтр. Например, показывать только те контакты, у которых стоит флажок Активен или только тех, кого изначально добавил в систему сам текущий пользователь.

Таким образом вы сократите список элементов приложения, доступных для выбора.

Фильтрация настраивается следующим образом:

  1. На форму договора добавьте новое свойство типа Приложение и выберите приложение Контакты.
  2. В его настройках отметьте флажком опцию Ограничить выбор, а затем нажмите на Настроить условия.
    dynamic_filter1
  3. В открывшемся окне нажмите на кнопку + Фильтр. Затем нажмите на ссылку Не определен и выберите из списка полей то, по которому и будут фильтроваться Контакты. Так, выберем поле Автор, а затем рядом с ним включим опцию Текущий пользователь. Таким образом, в списке доступных к выбору контактов пользователь увидит только те, автором которых он сам является.
  4. При необходимости добавьте дополнительные фильтры, например, фильтрацию по адресу.
    dynamic_filter3

Нажмите Сохранить. Теперь, заполняя карточку нового договора, в поле Контакт пользователь сможет указать контактное лицо, которое он добавил в систему сам и у которого в адресе указан город Москва.