Перейти к содержанию

Контролы формы: бизнес-логика

Обзор

form-controls описывает поведение контролов дополнительных параметров в форме задачи:

  • как пользователь вводит/редактирует значения;
  • какие настройки типа ДП влияют на UI и валидацию;
  • как отличать проблемы layout формы от проблем конкретного контрола.

Граница:

  • form-controls = контроль и сохранение значения конкретного ДП;
  • task-forms = контейнеры блоков и общий layout формы.

Крупные группы контролов

Группа Бизнес-назначение
File / MultiFile Прикрепление и использование файлов в задаче
Lookup / MultiLookup Выбор связанных задач из другой категории
SelectUsers Выбор пользователей, групп и оргструктуры
Table EP Структурированные табличные данные в карточке

Бизнес-правила по группам

1. File / MultiFile

  1. Тип определяется настройкой IsMultifile (один или несколько файлов).
  2. Ограничения расширений и размера применяются до сохранения.
  3. Один и тот же файл может быть связан с задачей и с ДП через link-таблицы.

2. Lookup / MultiLookup

  1. Lookup хранит одиночный выбор, MultiLookup — множественный.
  2. Источник значений задается категорией/сводным разделом и может фильтроваться smart-условием.
  3. Каскадные связи между ДП влияют на доступный набор значений в runtime.

3. SelectUsers

  1. Поддерживаются три подсистемы выбора: пользователи, группы, оргструктура.
  2. В SingleUserMode сохраняется не более одного выбранного элемента.
  3. Фильтрация может идти по группе, подразделению или смарт-фильтру.

4. Table EP

  1. Таблица — это отдельный под-домен внутри ДП со схемой колонок и строк.
  2. Колонки имеют типы, права, валидацию и настройку отображения.
  3. Изменения строк проходят через отдельный pipeline сохранения и валидации.

Сквозные пользовательские сценарии

  1. Пользователь открывает MTF/NTF и видит контролы по настройкам категории.
  2. Пользователь меняет значение и сохраняет форму.
  3. Backend валидирует значение по типу ДП и записывает в таблицы значений.
  4. UI получает новое состояние (pull/hybrid) и синхронизирует отображение.

Типовые инциденты

Симптом Наиболее вероятная причина
Поле видно, но не сохраняется формат значения не соответствует backend-ожиданию
Lookup пустой фильтрация/каскад исключили данные источника
SelectUsers показывает «не тех» неверные allow/filtration настройки
Файл загрузился, но не отображается link к ДП не создан или удален
Таблица отображает старые строки не сработал refresh после update

Связанные документы

  • docs/domains/form-controls/backend.md
  • docs/domains/form-controls/frontend.md
  • docs/domains/form-controls/data-flow.md
  • docs/domains/form-controls/controls-reference.md
  • docs/domains/form-controls/compatibility-matrix.md
  • docs/domains/task-forms/README.md