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

Формы задач (MTF/NTF) — Справочник блоков

Справочник описывает типы блоков формы задачи (МТФ/NTF): блоки ДП, группы блоков, БИ-блоки, системные и информационные блоки. Для каждого типа перечислены ключевые поля БД и правила отображения. В конце — правила порядка блоков на форме и ссылки на связанные документы.

1–3. Типы элементов, блок ДП и группа блоков

Форма задачи (МТФ) собирается из элементов нескольких типов:

Тип Enum Где хранится Поле порядка
Блок ДП EpBlock ExtParamBlocks [Order]
Группа блоков ДП EpBlockGroup ExtParamBlocksGroups OrderInMtf
БИ-блок BlockUsed CustomTaskUsedAsEpBlocks [Order]
Системный блок MtfSystemBlock SubcatMtfSystemBlocksOrders OrderInMtf

Блок ДП (ExtParamBlocks) — ключевые поля:

Поле Назначение
Id, SubcatId, Name Идентификация блока в категории
[Order] Позиция в общем списке МТФ
CanFold, DefaultMinimized Сворачивание блока
Color Цветовое выделение блока
DefaultBlock Признак «блок ДП по умолчанию» категории
HiddenSmartFilterId Условие скрытия блока
MinimizedSmartFilterId Условие сворачивания блока
ExtParamBlocksGroupId Принадлежность к группе блоков

Блок ДП с таблицей БИ. В блок ДП можно привязать не только обычные ДП, но и таблицу «Используется» (БИ) — тогда у блока заполнено поле модели blockUsedTable, а список обычных ДП (extParamIds) может быть пустым. Блок показывается на МТФ, если есть хотя бы один видимый привязанный ДП или заполнен blockUsedTable. Заголовок берётся из block.title (то есть Name блока), позиция — из группировки блоков. Таблица БИ внутри блока рисуется тем же компонентом, что и БИ-таблицы вне блоков (см. ниже «БИ-блок»); отличие — здесь она наследует заголовок и позицию своего блока ДП, а не имеет собственный [Order].

Группа блоков ДП (ExtParamBlocksGroups) — ключевые поля:

Поле Назначение
Id, SubcatId, Name Идентификация группы в категории
OrderInMtf Позиция группы в МТФ
CanFold, IsDefaultMinimized Сворачивание группы
IsHidden Принудительное скрытие группы
HiddenSmartFilterId Условие скрытия группы
MinimizedSmartFilterId Условие сворачивания группы

4. БИ-блок (CustomTaskUsedAsEpBlocks)

Ключевые поля:

Поле Назначение
Id, SubcatId, Name Идентификация БИ-блока
[Order] Позиция в МТФ
NotShowCreateButton Скрыть кнопку создания из блока
VisibilityMode Режим видимости блока «Используется»
IsCollapsable, IsCollapsedByDefault Сворачивание блока
SmartId Смарт-условие доступа/видимости блока

Редактирование ячеек

При включённом режиме редактирования таблицы БИ-блок поддерживает мультиредактирование ячеек — аналогично ДП «Таблица» (см. ext-params/business.md § Редактирование ячеек):

  • Выделение непрерывного диапазона ячеек мышью.
  • Копирование и вставка через Ctrl+C / Ctrl+V (Cmd+C / Cmd+V на macOS).
  • Автозаполнение «протягиванием»: значение из одной ячейки распространяется на выделенные ниже строки.

Поддерживаются типы ДП со встроенным редактированием в ячейке: текст, число, деньги, лукап, мультилукап и другие. Нередактируемые ячейки (заблокированные правами на статусе или смарт-условиями) остаются недоступными для изменения. При попытке изменить более 100 задач операция отклоняется с предложением использовать пакетную обработку задач — это защита от случайных массовых правок.

5. Системные блоки (MtfSystemBlockTypes)

Системные блоки добавляются автоматически в зависимости от настроек категории:

Тип Назначение
SurveyResultsTable Системный блок результатов опросов
ProjectInformation Блок проектной информации (процент выполнения, плановые/фактические даты, длительности). Отображается, если категория проектная (IsForProjects или IsForProjectTasks). На МТФ видимость дополнительно управляется категорийной настройкой Subcategories.IsProjectInfoBlockVisible (по умолчанию 1) — при 0 блок не передаётся в мобильный API
Signatures Блок подписей
Attachments Блок вложений
Recurrence Блок повторений
Resources Блок ресурсов
Parameters Блок параметров

6. Информационные блоки («Подзадачи» и «Связи»)

Блоки «Подзадачи» и «Связи» — особый тип элементов МТФ, не входящий в MtfSystemBlockTypes. Они располагаются в фиксированной позиции: после блока файлов (Attachments) и перед разделом ресурсов (Resources).

Общие свойства обоих блоков:

  • отображаются только при наличии данных (скрываются автоматически, если данных нет);
  • каждая строка содержит: цветной аватар с иконкой категории, заголовок, приоритет, счётчик вложенных подзадач, список исполнителей (до трёх человек), срок с цветовой индикацией (оранжевый — завтра, красный — просрочено);
  • клик по строке открывает задачу в модальном окне;
  • доступна кнопка «Развернуть» — переход к расширенному просмотру подзадач и связей;
  • управление через меню «⋯».

Поведение блоков настраивается на уровне категории отдельно для «Связей» и «Подзадач» (Настройки категории → Основные настройки → Связи и подзадачи): блок можно скрыть, сделать сворачиваемым, задать состояние «свёрнут по умолчанию», включить или отключить показ завершённых задач, а также управлять скрытием и сворачиванием через смарт-выражения. Значения по умолчанию: блок не скрыт, не сворачиваемый, не свёрнут, завершённые задачи не показываются. Если для новой задачи заданы смарт-настройки этих блоков, они не применяются на этапе постановки — пока у задачи ещё нет данных о связях и подзадачах.

Сортировка строк и меню действий

Строки блоков «Подзадачи» и «Связанные» на МТФ сортируются компонентом TaskCardRelationshipsSortingComponent. Доступные варианты заданы enum'ом TaskCardRelationshipsSorting: Created (по дате создания), Priority (по приоритету), Status (по статусу), Performers (по исполнителям), Order (по порядку). Выбор пользователя сохраняется в localStorage под ключом task-card-subtasks-sorting и применяется единообразно к обоим блокам при следующем открытии карточки.

В меню «⋯» блока доступны действия:

  • «Изменить родительскую» / «Как подзадачу» — открывают SelectTaskDialogComponent (подгружается lazy) для выбора родительской задачи или переноса текущей задачи в подзадачи выбранной.
  • «Раскрыть в табличном виде» — открывает SubtasksComponent (подгружается lazy) с полным списком подзадач и связей в табличном представлении с расширенным набором колонок.

Блок «Подзадачи»:

  • Всегда показывает родительскую задачу (на один уровень выше текущей), если она есть.
  • Для каждой задачи-родителя рассчитывается процент выполнения — доля закрытых подзадач среди всех подзадач любого уровня вложенности (округляется до целого числа).
  • Кнопка «+» — быстрое создание новой подзадачи.

Блок «Связи»:

  • Связанные задачи сгруппированы по типам проектных связей.
  • По умолчанию показывает первые восемь задач; кнопка «Показать все» раскрывает полный список.
  • Завершённые задачи выделяются серым цветом.

7. Правила порядка и связанные документы

Итоговый порядок блоков на форме формируется платформой по следующим правилам:

  1. Порядок формируется платформой единообразно для всех типов блоков.
  2. Системные блоки, у которых нет записи в SubcatMtfSystemBlocksOrders, добавляются в список с Order = null.
  3. После перестановки значения порядков перезаписываются последовательно (0..N) по всем типам.
  4. Блоки «Подзадачи» и «Связи» учитываются в общем порядке наравне с системными блоками: их позиция хранится в SubcatMtfSystemBlocksOrders (тип MtfSystemBlock из §1) и пересчитывается той же логикой платформы — несмотря на то, что они не входят в MtfSystemBlockTypes.

См. также: