Контролы формы: бизнес-логика¶
Обзор¶
form-controls описывает поведение контролов дополнительных параметров в форме задачи:
- как пользователь вводит/редактирует значения;
- какие настройки типа ДП влияют на UI и валидацию;
- как отличать проблемы layout формы от проблем конкретного контрола.
Граница:
form-controls= контроль и сохранение значения конкретного ДП;task-forms= контейнеры блоков и общий layout формы.
Крупные группы контролов¶
| Группа | Бизнес-назначение |
|---|---|
| File / MultiFile | Прикрепление и использование файлов в задаче |
| Lookup / MultiLookup | Выбор связанных задач из другой категории |
| SelectUsers | Выбор пользователей, групп и оргструктуры |
| Table EP | Структурированные табличные данные в карточке |
Бизнес-правила по группам¶
1. File / MultiFile¶
- Тип определяется настройкой
IsMultifile(один или несколько файлов). - Ограничения расширений и размера применяются до сохранения.
- Один и тот же файл может быть связан с задачей и с ДП через link-таблицы.
2. Lookup / MultiLookup¶
- Lookup хранит одиночный выбор, MultiLookup — множественный.
- Источник значений задается категорией/сводным разделом и может фильтроваться smart-условием.
- Каскадные связи между ДП влияют на доступный набор значений в runtime.
3. SelectUsers¶
- Поддерживаются три подсистемы выбора: пользователи, группы, оргструктура.
- В
SingleUserModeсохраняется не более одного выбранного элемента. - Фильтрация может идти по группе, подразделению или смарт-фильтру.
4. Table EP¶
- Таблица — это отдельный под-домен внутри ДП со схемой колонок и строк.
- Колонки имеют типы, права, валидацию и настройку отображения.
- Изменения строк проходят через отдельный pipeline сохранения и валидации.
Сквозные пользовательские сценарии¶
- Пользователь открывает MTF/NTF и видит контролы по настройкам категории.
- Пользователь меняет значение и сохраняет форму.
- Backend валидирует значение по типу ДП и записывает в таблицы значений.
- UI получает новое состояние (pull/hybrid) и синхронизирует отображение.
Типовые инциденты¶
| Симптом | Наиболее вероятная причина |
|---|---|
| Поле видно, но не сохраняется | формат значения не соответствует backend-ожиданию |
| Lookup пустой | фильтрация/каскад исключили данные источника |
| SelectUsers показывает «не тех» | неверные allow/filtration настройки |
| Файл загрузился, но не отображается | link к ДП не создан или удален |
| Таблица отображает старые строки | не сработал refresh после update |
Связанные документы¶
docs/domains/form-controls/backend.mddocs/domains/form-controls/frontend.mddocs/domains/form-controls/data-flow.mddocs/domains/form-controls/controls-reference.mddocs/domains/form-controls/compatibility-matrix.mddocs/domains/task-forms/README.md