ДП «Выбор пользователя» — справочник настроек¶
Полный перечень настроек ДП «Выбор пользователя»: где хранится каждая настройка, что она делает и какие есть ограничения. Для администраторов и разработчиков при настройке фильтрации, денормализации и смарт-событий 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 работает только при одновременном выполнении:
SingleUserMode = true- Активна только одна из настроек: 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 | Перед открытием диалога выбора пользователей |