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

ДП «Выбор пользователя» — справочник настроек

Полный перечень настроек ДП «Выбор пользователя»: где хранится каждая настройка, что она делает и какие есть ограничения. Для администраторов и разработчиков при настройке фильтрации, денормализации и смарт-событий BeforeSelectUsersOpen.

Основные настройки (ExtParamSelectUserSettings)

Настройки хранятся в таблице ExtParamSelectUserSettings (1:1 с ExtParams через PK = ExtParamID). Большинство задаётся на вкладке «Дополнительные настройки» карточки ДП.

Вкладка «Дополнительные настройки» ДП «Выбор пользователя»: режим выбора, разрешённые подсистемы (пользователи/группы/орг. единицы), фильтры и уровни оргструктуры

Режим выбора и три подсистемы

Одиночный или множественный выбор элементов:

Настройка Поле БД Тип Описание Ограничения
Разрешить сохранять не более одного элемента SingleUserMode bit, по умолчанию 0 Режим одиночного выбора При сохранении удаляются все предыдущие значения, затем добавляется максимум один элемент

ДП «Выбор пользователя» поддерживает три параллельных подсистемы выбора, управляемые независимыми флагами. Все три могут быть включены одновременно.

Настройка Поле БД Тип По умолчанию Описание
Разрешить выбирать пользователей AllowUsers bit 1 Выбор конкретных пользователей
Разрешить выбирать группы AllowGroups bit 1 Выбор групп пользователей
Разрешить выбирать орг. единицы AllowOrgUnits bit 0 Выбор подразделений оргструктуры

Фильтрация групп

При включённой настройке «Разрешить выбирать группы» в списке для выбора отображаются только те группы, тип которых имеет активный флаг «Можно добавлять в адресаты» (GroupTypes.CanBeAddedAsRecipient). Типы групп настраиваются в справочнике «Типы групп».

Синхронизированные с Active Directory группы (Groups.EnableADSync = 1, заполненный ADSID) отображаются по тому же правилу — наравне с обычными, при условии что их тип допускает добавление в адресаты.

Ограничение действует на все режимы фильтрации (TypeFiltration = 0/1/2 — без ограничений, по группе, по смарт-выражению), поскольку все они наследуют общий критерий поиска групп.

См. также: Пользователи и группы → Типы групп.

Фильтрация пользователей

Как ограничить список пользователей, доступных для выбора:

Настройка Поле БД Тип Описание
Ограничить выбор пользователей TypeFiltration tinyint, по умолчанию 0 0=Без ограничений, 1=По группе, 2=Смарт-фильтр
Ограничить список членами группы GroupID int FK → Groups Группа для ограничения (при TypeFiltration=1)
Ограничить смарт-выражением SmartFilterId int FK → SmartExpressions Смарт-фильтр для пользователей (при TypeFiltration=2)

Контекст строки в ДП Таблица. При использовании ДП «Выбор пользователей» как столбца ДП Таблица с TypeFiltration=2 (смарт-фильтр пользователей) или OrgUnitTypeFiltration=2 (смарт-фильтр орг. единиц), в смарт-выражение передаётся JSON текущей строки таблицы (otherValuesTableJson) через переменную @EventParam3. Это позволяет фильтровать список пользователей, групп и орг. единиц на основе значений других столбцов этой же строки. Работает аналогично колонке типа Lookup.

Фильтрация оргструктуры

Как ограничить список подразделений оргструктуры, доступных для выбора:

Настройка Поле БД Тип Описание
Ограничить выбор орг. единиц OrgUnitTypeFiltration tinyint, по умолчанию 0 0=Без ограничений, 1=По подразделению, 2=Смарт-фильтр
Ограничить список из подразделения OrgUnitID int FK → OrgStructureUnit Корневое подразделение (при OrgUnitTypeFiltration=1)
Ограничить смарт-выражением OrgUnitSmartFilterId int FK → SmartExpressions Смарт-фильтр для орг. единиц (при OrgUnitTypeFiltration=2)
Ограничить выбор типами Таблица ExtParamSelectUserSettingsOrgUnitTypes N:1 Разрешённые типы подразделений оргструктуры
Разрешить выбор только листовых узлов AllowOnlyOrgUnitTreeLeafs bit, по умолчанию 0 Только конечные элементы дерева оргструктуры

Контекст строки в ДП Таблица применим и для смарт-фильтра орг. единиц (OrgUnitSmartFilterId) — JSON текущей строки передаётся через @EventParam3. См. полное описание выше (раздел «Фильтрация пользователей»).

Уровень отображения оргструктуры

Сколько уровней иерархии показывать в имени выбранного подразделения:

Настройка Поле БД Тип Описание
Отображать уровни орг. единиц OrgUnitsLevel int, по умолчанию 0 Определяет количество уровней в имени элемента при выводе в печатный шаблон

Допустимые значения:

Значение Код Описание
0 LowerAndItsParent Нижний + родитель
1 Lower Только нижний
2 All Все уровни
3 WithoutTop Все кроме верхнего
4 WithoutTwoTop Все кроме двух верхних

Значение формируется в момент сохранения ДП (метод RenderOrgUnitName). Для изменения вывода в ранее созданных задачах — пересохранить значение ДП.

Текстовые ресурсы

7 локализуемых полей для настройки текстов кнопок и подсказок. Настраиваются на вкладке «Текстовые ресурсы» карточки ДП.

Вкладка «Текстовые ресурсы» ДП «Выбор пользователя»: заголовок кнопки, пункты контекстного меню, подсказка и заголовок списка

Ресурс FK на LocalizedBusinessObjects Описание
Заголовок кнопки LocalizedButtonTitleId Текст кнопки выбора
Только этому пользователю LocalizedOnlyCurrentUserId Текст ограничения
Удалить пользователя LocalizedRemoveUserId Текст удаления одного
Удалить всех LocalizedRemoveAllId Текст удаления всех
Показать информацию о пользователе LocalizedUserInfoId Текст просмотра инфо
Подсказка в пустом поле ввода LocalizedEmptyTooltipId Подсказка
Заголовок списка выбора LocalizedSelectListTitleId Заголовок списка

Устаревшее поле TextResources (varchar(1000), XML) заменено на Localized*Id.

Поведение в интерфейсе

Контекстное меню

По правому клику на выбранном элементе доступно контекстное меню (работает и в карточке задачи, и в форме создания задачи). Набор пунктов зависит от типа элемента и роли пользователя:

  • для элемента типа «пользователь» — «Информация о пользователе» (открывает карточку пользователя); доступно всем;
  • для элемента типа «группа» или «орг. единица» — «Посмотреть состав/участников» (открывает страницу состава группы или подразделения); только администраторам. Обычным пользователям контекстное меню на таких элементах не показывается.

Иерархический выбор орг. единиц

При выборе орг. единиц в модальном окне доступен иерархический выбор:

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

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

Ограничения группировки и денормализация

Группировка списка задач по колонке SelectUsers работает только при одновременном выполнении:

  1. SingleUserMode = true
  2. Активна только одна из настроек: AllowUsers, AllowGroups, AllowOrgUnits

При этих условиях в ExtParamValues.SelectUserValue и денормализованной таблице ExtParamXXXNativeValue хранится ID выбранного элемента (int).

Что записывается в денормализованные поля в зависимости от настроек ДП:

Условие ExtParamValues.SelectUserValue ExtParamValues.ExtParamValue
SingleUserMode + один Allow-флаг + один элемент выбран UserID / GroupID / OrgUnitID (int) Строковое представление
Все остальные случаи NULL Строковое представление

Тип NativeValue в денормализованной таблице:

  • int — если SingleUserMode и один Allow-флаг
  • (n)varchar(1000) — иначе

Определяется функцией dbo.DenormExtParamColumnsDefinition.

Смарт-события — обработчики на события:

Событие ID Описание
BeforeSelectUsersOpen 169 Перед открытием диалога выбора пользователей