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