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

ДП «Ссылка» (Lookup) и «Множественная ссылка» (MultiLookup) — справочник настроек

Оба типа выбирают значение из задач категории-источника и различаются количеством выбираемых задач: Lookup — одна задача, MultiLookup — несколько. Большинство настроек (источник данных, фильтры, иерархия, сортировка, подсказки) у них общие и хранятся в таблице LookupParamSettings — они собраны в разделе «Общие настройки (для обоих типов)» ниже. В разделах по типам описано только то, что специфично для каждого. Документ также описывает каскадные связи параметров и глобальные ключи CustomSettings.

ДП «Ссылка» (Lookup)

Выбор одной задачи из категории или сводного раздела. Значение — ID выбранной задачи; на карточке отображается ссылкой (или текстом). Применяется, когда задаче нужна ссылка на одну связанную задачу: контрагент, договор, ответственный объект и т. п.

Базовые настройки (источник данных, иерархия, сортировка, подсказки, «Отображать в задаче») описаны в разделе «Общие настройки» ниже. Специфична для Lookup одна опция:

Настройка Поле БД Описание
Отображать как радиокнопки ShowAsRadioButtons (bit) Значения выводятся блоком радиокнопок (до 10 пунктов). Повторный клик по выбранной радиокнопке снимает выбор; если ДП обязателен — снять выделение нельзя, только переключить. В режиме «только чтение» — обычный формат. Недоступно для MultiLookup

«Основные настройки» ДП «Ссылка» (Lookup): «Отображать в задаче», «Отображать как радио кнопки», «Быстрые подсказки»

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

ДП «Ссылка» в виде радиокнопок: выбор одного значения

Хранение. Значение: ExtParamValues.SelectedTaskID (int) — ID выбранной задачи. В денормализации: TasksInSubcatXXXDenormalized.ExtParamYYYNativeValue = SelectedTaskID, ExtParamYYYValue = текст задачи.

ДП «Множественная ссылка» (MultiLookup)

Выбор нескольких задач из категории или сводного раздела. Применяется для списков связанных задач, табличных подборок и чек-листов. Базовые настройки — в разделе «Общие настройки» ниже; здесь — специфичное для MultiLookup.

Схема оформления

Способ отображения выбранных задач на карточке:

Схема Описание
По умолчанию (таблица) Табличное представление выбранных задач
Облако тегов Компактное отображение тегами
LookUp В новом интерфейсе = Облако тегов; в старом = По умолчанию. Будет удалено
Список задач (To-do) Чек-лист — см. раздел «Чек-лист» ниже
Чекбоксы До 10 значений; автосохранение; в режиме чтения → облако тегов. В разработке

Параметры в гриде

Добавление колонок из категории-источника в табличное представление выбранных задач: системные параметры (Дата начала, Срок, Статус) и ДП категории. Колонка «Значение» (текст задачи) отображается всегда, удалить её нельзя. Кнопка «Добавить» (ранее «Создать») открывает выбор доступных параметров (с поиском по названию); удаление колонки — через контекстное меню строки. Настройка участвует в экспорте/импорте конфигурации: при переносе MultiLookup «Параметры в табличном представлении» включаются в пакет и восстанавливаются на целевой площадке автоматически.

Вкладка «Параметры в гриде» MultiLookup: список добавленных в табличное представление параметров (ID, имя), кнопка «Создать»

Настройка Описание
Количество строк на странице 0 = без постраничного вывода; >0 = постраничный вывод. Только для схемы «По умолчанию». Тестовый режим

Чек-лист (схема оформления «Список задач», To-do)

При схеме оформления «Список задач (To-do)» MultiLookup отображается как чек-лист: выбранные задачи показываются пунктами с прогрессом, сроками и исполнителями. Чек-лист выводится в верхней части формы задачи, независимо от порядка ДП. ⚠️ MultiLookup со схемой «To-do» нельзя добавить в блоки ДП.

Настройка чек-листа в категории.

  1. Создать категорию-справочник для задач чек-листа (из неё берутся пункты).
  2. Выдать группам пользователей права в этой категории: «Создавать задачи», «Исполнять», «Пакетная обработка», «Просмотр всех задач». ⚠️ В чек-листах пользователь по умолчанию работает только с задачами, на которые у него есть права, — независимо от настройки MultiLookup «Отображать только доступные».
  3. Включить в основных настройках категории опцию «Разрешено устанавливать срок при постановке». ⚠️ Обязательность срока и исполнителя в пункте чек-листа наследуется из настроек категории-источника: если там они обязательны, кнопка «Добавить» неактивна до их заполнения.
  4. Настроить маршрут переходами: «Новая → Отклонена» (кнопка «Отклонить»), «Отклонена → Новая» («Обжаловать»), «Новая → Завершена» («Завершить»), «Завершена → Новая» («Обжаловать»). ⚠️ При отсутствии любого из этих переходов изменение прогресса чек-листа в интерфейсе вызовет ошибку.
  5. Добавить в справочник ДП «Комментарий к задаче» (в системной категории «Задачи шаблонов ToDo list» оно уже создано — заново создавать не нужно).
  6. В целевой категории создать ДП типа MultiLookup; на вкладке «Источник данных» указать категорию-справочник и отметить нужные статусы; на вкладке «Вид отображения» выбрать схему оформления «ToDo list».

Чек-лист по шаблону. Чтобы добавлять пункты пачкой по шаблону, настраиваются системные категории «Шаблоны ToDo list» и «Задачи шаблонов ToDo list» (права групп: «Создавать», «Исполнять», «Пакетная обработка», «Просмотр всех задач»; опция категории «Разрешено устанавливать срок при постановке»). Их идентификаторы и связанные ДП хранятся в пользовательском ключе ToDoListSettings. ⚠️ Если в нём не задан TemplatesSubcatId, кнопка «Добавить по шаблону» в ДП не отображается (в самой системной категории она недоступна по умолчанию). Эти системные категории используются только для создания задач по шаблону — для конкретного процесса создаются свои категории.

Чек-лист по шаблону: системная категория «Шаблоны ToDo list» и кнопка «Добавить по шаблону» со списком шаблонов в задаче

Хранение

Значения — в отдельной таблице MultiLookupValues:

  • TaskID — задача-владелец
  • ExtParamID — ID ДП
  • SelectedTaskID — выбранная задача
  • Comment — комментарий к выбранному значению

В ExtParamValues.SelectedTaskID хранится одно из значений (для обратной совместимости).

Общие настройки (для обоих типов)

Хранятся в таблице LookupParamSettings, применяются и к Lookup, и к MultiLookup (если в строке не указано иное).

Вкладка «Основные настройки»

Настройка Поле БД Тип Описание
Отображать в задаче DisplayInTask int 0=Текст, 1=Текст+цвет, 2=Иконка+цвет, 3=Только иконка
Быстрые подсказки QuickHints bit 3 последних выбранных значения для быстрого выбора. Не учитывают настройки доступа и фильтрации значений параметра. Не работают при наличии активной связи параметров

«Основные настройки» ДП MultiLookup: «Отображать в задаче» и «Быстрые подсказки»

Для 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 Значение отображается текстом, не ссылкой. Если в списке задач включена группировка по этому ДП — группирующая задача тоже отображается не ссылкой

Иерархический режим + фильтр по статусам: если одновременно включены «Иерархический» и «Включая статусы», дерево отображает только задачи в разрешённых статусах. Папка (узел-родитель) в запрещённом статусе скрывается вместе со всей подветкой. При текстовом поиске в иерархическом лукапе фильтр по статусам не применяется.

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

Поведение иерархического выбора. Голубым выделяется элемент, который будет сохранён в ДП (тот, на который кликнули); галочка/минус/пустой квадрат отражают подчинённость в иерархии и служат для выбора, но не показывают, что именно сохранится. При клике на родителя он выделяется голубым и галочкой, потомки помечаются галочками каскадно, но голубым не выделяются — по «Ок» сохранится только сам родитель. Если у выбранного родителя снять галочку с одного потомка — голубое выделение с родителя снимается, галочка меняется на «минус», остальные потомки выделяются голубым, и в ДП попадают все элементы, кроме снятого.

Настройка окна выбора значений в виде таблицы (вкладка «Табличный вид»):

Настройка Описание
Табличный вид Настройка таблицы для окна выбора значений (как табличный вид категории); показываются только колонки с включённой «Видимость по умолчанию». Персональные настройки сохраняются локально
Сворачивать группы Группы свёрнуты по умолчанию (только для стандартного представления категории)

Вкладка «Табличный вид» MultiLookup: ссылка «Настройки» табличного представления, «Сворачивать группы», «Кол-во выводимых записей»

Связи параметров (каскадные зависимости)

Настраиваются через отдельный интерфейс «Связи между параметрами» (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