ДП «Ссылка» (Lookup) и «Множественная ссылка» (MultiLookup) — справочник настроек¶
Оба типа выбирают значение из задач категории-источника и различаются количеством выбираемых задач: Lookup — одна задача, MultiLookup — несколько. Большинство настроек (источник данных, фильтры, иерархия, сортировка, подсказки) у них общие и хранятся в таблице LookupParamSettings — они собраны в разделе «Общие настройки (для обоих типов)» ниже. В разделах по типам описано только то, что специфично для каждого. Документ также описывает каскадные связи параметров и глобальные ключи CustomSettings.
ДП «Ссылка» (Lookup)¶
Выбор одной задачи из категории или сводного раздела. Значение — ID выбранной задачи; на карточке отображается ссылкой (или текстом). Применяется, когда задаче нужна ссылка на одну связанную задачу: контрагент, договор, ответственный объект и т. п.
Базовые настройки (источник данных, иерархия, сортировка, подсказки, «Отображать в задаче») описаны в разделе «Общие настройки» ниже. Специфична для Lookup одна опция:
| Настройка | Поле БД | Описание |
|---|---|---|
| Отображать как радиокнопки | ShowAsRadioButtons (bit) |
Значения выводятся блоком радиокнопок (до 10 пунктов). Повторный клик по выбранной радиокнопке снимает выбор; если ДП обязателен — снять выделение нельзя, только переключить. В режиме «только чтение» — обычный формат. Недоступно для MultiLookup |

В карточке задачи режим радиокнопок выглядит так:

Хранение. Значение: ExtParamValues.SelectedTaskID (int) — ID выбранной задачи. В денормализации: TasksInSubcatXXXDenormalized.ExtParamYYYNativeValue = SelectedTaskID, ExtParamYYYValue = текст задачи.
ДП «Множественная ссылка» (MultiLookup)¶
Выбор нескольких задач из категории или сводного раздела. Применяется для списков связанных задач, табличных подборок и чек-листов. Базовые настройки — в разделе «Общие настройки» ниже; здесь — специфичное для MultiLookup.
Схема оформления¶
Способ отображения выбранных задач на карточке:
| Схема | Описание |
|---|---|
| По умолчанию (таблица) | Табличное представление выбранных задач |
| Облако тегов | Компактное отображение тегами |
| LookUp | В новом интерфейсе = Облако тегов; в старом = По умолчанию. Будет удалено |
| Список задач (To-do) | Чек-лист — см. раздел «Чек-лист» ниже |
| Чекбоксы | До 10 значений; автосохранение; в режиме чтения → облако тегов. В разработке |
Параметры в гриде¶
Добавление колонок из категории-источника в табличное представление выбранных задач: системные параметры (Дата начала, Срок, Статус) и ДП категории. Колонка «Значение» (текст задачи) отображается всегда, удалить её нельзя. Кнопка «Добавить» (ранее «Создать») открывает выбор доступных параметров (с поиском по названию); удаление колонки — через контекстное меню строки. Настройка участвует в экспорте/импорте конфигурации: при переносе MultiLookup «Параметры в табличном представлении» включаются в пакет и восстанавливаются на целевой площадке автоматически.

| Настройка | Описание |
|---|---|
| Количество строк на странице | 0 = без постраничного вывода; >0 = постраничный вывод. Только для схемы «По умолчанию». Тестовый режим |
Чек-лист (схема оформления «Список задач», To-do)¶
При схеме оформления «Список задач (To-do)» MultiLookup отображается как чек-лист: выбранные задачи показываются пунктами с прогрессом, сроками и исполнителями. Чек-лист выводится в верхней части формы задачи, независимо от порядка ДП. ⚠️ MultiLookup со схемой «To-do» нельзя добавить в блоки ДП.
Настройка чек-листа в категории.
- Создать категорию-справочник для задач чек-листа (из неё берутся пункты).
- Выдать группам пользователей права в этой категории: «Создавать задачи», «Исполнять», «Пакетная обработка», «Просмотр всех задач». ⚠️ В чек-листах пользователь по умолчанию работает только с задачами, на которые у него есть права, — независимо от настройки MultiLookup «Отображать только доступные».
- Включить в основных настройках категории опцию «Разрешено устанавливать срок при постановке». ⚠️ Обязательность срока и исполнителя в пункте чек-листа наследуется из настроек категории-источника: если там они обязательны, кнопка «Добавить» неактивна до их заполнения.
- Настроить маршрут переходами: «Новая → Отклонена» (кнопка «Отклонить»), «Отклонена → Новая» («Обжаловать»), «Новая → Завершена» («Завершить»), «Завершена → Новая» («Обжаловать»). ⚠️ При отсутствии любого из этих переходов изменение прогресса чек-листа в интерфейсе вызовет ошибку.
- Добавить в справочник ДП «Комментарий к задаче» (в системной категории «Задачи шаблонов ToDo list» оно уже создано — заново создавать не нужно).
- В целевой категории создать ДП типа MultiLookup; на вкладке «Источник данных» указать категорию-справочник и отметить нужные статусы; на вкладке «Вид отображения» выбрать схему оформления «ToDo list».
Чек-лист по шаблону. Чтобы добавлять пункты пачкой по шаблону, настраиваются системные категории «Шаблоны ToDo list» и «Задачи шаблонов ToDo list» (права групп: «Создавать», «Исполнять», «Пакетная обработка», «Просмотр всех задач»; опция категории «Разрешено устанавливать срок при постановке»). Их идентификаторы и связанные ДП хранятся в пользовательском ключе ToDoListSettings. ⚠️ Если в нём не задан TemplatesSubcatId, кнопка «Добавить по шаблону» в ДП не отображается (в самой системной категории она недоступна по умолчанию). Эти системные категории используются только для создания задач по шаблону — для конкретного процесса создаются свои категории.

Хранение¶
Значения — в отдельной таблице MultiLookupValues:
TaskID— задача-владелецExtParamID— ID ДПSelectedTaskID— выбранная задачаComment— комментарий к выбранному значению
В ExtParamValues.SelectedTaskID хранится одно из значений (для обратной совместимости).
Общие настройки (для обоих типов)¶
Хранятся в таблице LookupParamSettings, применяются и к Lookup, и к MultiLookup (если в строке не указано иное).
Вкладка «Основные настройки»¶
| Настройка | Поле БД | Тип | Описание |
|---|---|---|---|
| Отображать в задаче | DisplayInTask |
int | 0=Текст, 1=Текст+цвет, 2=Иконка+цвет, 3=Только иконка |
| Быстрые подсказки | QuickHints |
bit | 3 последних выбранных значения для быстрого выбора. Не учитывают настройки доступа и фильтрации значений параметра. Не работают при наличии активной связи параметров |

Для Lookup на этой вкладке есть ещё опция «Отображать как радиокнопки» (см. раздел «ДП «Ссылка» (Lookup)»).
Режимы «Отображать в задаче» (на примере MultiLookup-поля):
Отображать текст (0) — только названия задач, без цвета и иконки.

Отображать текст и цвет (1) — названия с цветом аватара задачи (по умолчанию серый).

Отображать только иконку (3) — иконка аватара задачи (по умолчанию стандартная), без названия и цвета.

Отображать иконку и цвет (2) — иконка с цветом аватара задачи, без названия.

Вкладка «Источник данных»¶
Откуда берутся задачи для выбора и как они фильтруются:

| Настройка | Поле БД | Тип | Описание | Ограничения |
|---|---|---|---|---|
| Категория | SubcatId |
int FK → Subcategories | Категория-источник задач | Для категорий-источников учитывайте настройку категории «Разрешить HTML в тексте задачи» |
| Сводный раздел | UnionId |
int FK → Unions | Сводный раздел вместо категории | Взаимоисключающе с Категорией |
| Включая статусы | StatusFilter / связь через LookupParamAllowedStates |
— | Допустимые статусы задач в списке выбора. В иерархическом режиме: фильтр применяется к узлам дерева — папка в неразрешённом статусе скрывается целиком вместе с вложенными элементами. При текстовом поиске внутри иерархии фильтр по статусам не применяется. | |
| Смарт-фильтр | SmartFilterId |
int FK → SmartFilters | Условия отбора задач | Работает только в карточке существующей задачи. Для НТФ → связи параметров |
| Отображать только доступные | ShowOnlyAccessible |
bit | Только задачи с правами доступа (в ДП и в окне выбора) | Только MultiLookup. Не распространяется на список задач (To-do) |
Контекстные параметры смарт-фильтра:
@eventParam1— ID текущей категории@eventParam2— ID задачи-источника@eventParam3— JSON значений строки таблицы (если Lookup в колонке ДП Таблица)@eventParam4— ID блока используется
Вкладка «Вид отображения»¶
Форма представления списка значений (плоский список, дерево, сортировка):

| Настройка | Поле БД | Тип | Описание |
|---|---|---|---|
| Иерархический | IsHierarchical |
bit | Дерево; настройки в категории → вкладка «Иерархический справочник» |
| Запретить выбирать папки | DenySelectFolders |
bit | Только конечные элементы (при иерархическом) |
| Выпадающий список | — | bit | Значения для выбора отображаются выпадающим списком |
| Колонка сортировки | SortColumnId |
int FK | ДП для сортировки значений. Выбор не зависит от «Параметров в табличном представлении» — один и тот же ДП можно одновременно вывести в табличное представление и использовать для сортировки. Применяется по умолчанию при отображении на карточке задачи. Контрол выбора поддерживает поиск по названию ДП. При сводном разделе: только ДП из всех категорий. В Канбан-представлении категории с фильтрацией по этому ДП колонки канбана упорядочиваются согласно «Колонке сортировки». НЕ допустимы: URL, Адрес, Email, Users, MultiLookup, Чекбокс, Дерево, Сквозной, Таблица, Файл |
| Отображать как текст | DisplayAsText |
bit | Значение отображается текстом, не ссылкой. Если в списке задач включена группировка по этому ДП — группирующая задача тоже отображается не ссылкой |
Иерархический режим + фильтр по статусам: если одновременно включены «Иерархический» и «Включая статусы», дерево отображает только задачи в разрешённых статусах. Папка (узел-родитель) в запрещённом статусе скрывается вместе со всей подветкой. При текстовом поиске в иерархическом лукапе фильтр по статусам не применяется.
Дополнительные настройки иерархического режима. При включённом «Иерархический», помимо «Запретить выбирать папки», доступны: «Отображать отфильтрованные части веток» (устаревшая, больше не используется — скрывала участки ветвей от корня до первого видимого элемента) и «Максимальное количество элементов иерархии» (лимит задач, подгружаемых из дерева, — позволяет видеть полный список даже в больших категориях).
Поведение иерархического выбора. Голубым выделяется элемент, который будет сохранён в ДП (тот, на который кликнули); галочка/минус/пустой квадрат отражают подчинённость в иерархии и служат для выбора, но не показывают, что именно сохранится. При клике на родителя он выделяется голубым и галочкой, потомки помечаются галочками каскадно, но голубым не выделяются — по «Ок» сохранится только сам родитель. Если у выбранного родителя снять галочку с одного потомка — голубое выделение с родителя снимается, галочка меняется на «минус», остальные потомки выделяются голубым, и в ДП попадают все элементы, кроме снятого.
Настройка окна выбора значений в виде таблицы (вкладка «Табличный вид»):
| Настройка | Описание |
|---|---|
| Табличный вид | Настройка таблицы для окна выбора значений (как табличный вид категории); показываются только колонки с включённой «Видимость по умолчанию». Персональные настройки сохраняются локально |
| Сворачивать группы | Группы свёрнуты по умолчанию (только для стандартного представления категории) |

Связи параметров (каскадные зависимости)¶
Настраиваются через отдельный интерфейс «Связи между параметрами» (dp_links).
| Настройка | Описание |
|---|---|
| Родительский параметр | ДП-источник |
| Подчинённый параметр | ДП, значения которого фильтруются |
| Источник данных | Таблица или представление БД для связи (ExtParamValues, TasksInSubcatXXXDenormalized, пользовательское представление) |
| Колонка для отбора | Столбец со значением родительского ДП |
| Значение подчинённого | Столбец со значением подчинённого ДП |
| Текст подчинённого | Столбец с отображаемым текстом |
| Жёсткая связь | Да = дочерний пуст без родителя; Нет = фильтрация по заполненным родителям |
| Активно | Временное отключение связи |
Допустимые комбинации и ограничения связей¶
Какие типы родительского и подчинённого ДП можно связать. В колонке «Типы связей»: Ж — жёсткая связь (подчинённый пуст без родителя), С — связь по заполненным родителям. Двухбуквенные коды (ЖЖ, ЖС, СЖ) описывают сочетание для второго (дополнительного) родителя.
| Родитель | Подчинённый | Типы связей | Доп. родитель |
|---|---|---|---|
| Lookup | Lookup | Ж, С | Выпадающий список (ЖЖ, ЖС, СЖ) |
| Выпадающий список | Lookup | Ж, С | Текст/Число (ЖЖ, ЖС, СЖ) |
| Lookup | Выпадающий список | Ж, С | |
| Выпадающий список | Выпадающий список | Ж | |
| Текст/Число | Lookup | Ж, С | Текст/Число (ЖЖ, ЖС, СЖ) |
| Текст/Число | MultiLookup | Ж, С | Текст/Число (ЖЖ, ЖС, СЖ) |
| MultiLookup | Выпадающий список | Ж, С | |
| MultiLookup | Lookup | Ж, С | |
| Выпадающий список | MultiLookup | Ж, С | |
| Lookup | MultiLookup | Ж, С | Текст/Число (ЖЖ, ЖС, СЖ) |
Правила, которые нужно учитывать при настройке связей:
- Нельзя создать цикл (A→B и B→A)
- Нельзя: подчинённый в таблице, родитель вне таблицы
- При наличии связи подсказки не отображаются для подчинённых
- Связи внутри строки ДП Таблица поддерживаются (колонка → колонка)
Глобальные настройки (CustomSettings)¶
Ключи, влияющие на поведение ДП «Ссылка» во всей системе:
| Ключ | Тип | Описание |
|---|---|---|
AllLocalesSearchEpIds |
int[] |
Список ID Lookup-ДП, в которых текстовый поиск проверяет совпадение по локализованным значениям всех настроенных локалей задачи-источника (а не только по локали пользователя). Применяется к выпадающему списку и к фильтрам lookup-колонок в таблицах. По умолчанию — пустой массив (поиск идёт только в текущей локали). Подробнее: Кастомные настройки → AllLocalesSearchEpIds |