ДП «Выбор пользователя» — справочник настроек¶
Полный перечень настроек с указанием где хранится, что делает, ограничения
Основные настройки (ExtParamSelectUserSettings)¶
Хранятся в таблице ExtParamSelectUserSettings (1:1 с ExtParams через PK = ExtParamID).
Режим выбора¶
| Настройка (UI) | Поле БД | Тип | Описание | Ограничения |
|---|---|---|---|---|
| Разрешить сохранять не более одного элемента | SingleUserMode |
bit, default 0 | Режим одиночного выбора | При сохранении удаляются все предыдущие значения, затем добавляется максимум один элемент |
Три подсистемы выбора¶
Это не три разных режима работы, а три параллельных подсистемы, управляемые независимыми флагами. Все три могут быть включены одновременно.
| Настройка (UI) | Поле БД | Тип | Default | Описание |
|---|---|---|---|---|
| Разрешить выбирать пользователей | AllowUsers |
bit | 1 | Выбор конкретных пользователей |
| Разрешить выбирать группы | AllowGroups |
bit | 1 | Выбор групп пользователей |
| Разрешить выбирать орг. единицы | AllowOrgUnits |
bit | 0 | Выбор подразделений оргструктуры |
Фильтрация пользователей¶
| Настройка (UI) | Поле БД | Тип | Описание |
|---|---|---|---|
| Ограничить выбор пользователей | TypeFiltration |
tinyint, default 0 | 0=Без ограничений, 1=По группе, 2=Смарт-фильтр |
| Ограничить список членами группы | GroupID |
int FK → Groups | Группа для ограничения (при TypeFiltration=1) |
| Ограничить смарт-выражением | SmartFilterId |
int FK → SmartExpressions | Смарт-фильтр для пользователей (при TypeFiltration=2) |
Контекст строки в ДП Таблица. При использовании ДП «Выбор пользователя» как столбца ДП Таблица с TypeFiltration=2 (смарт-фильтр), в смарт-выражение передаётся JSON текущей строки таблицы (otherValuesTableJson). Это позволяет фильтровать список пользователей на основе значений других столбцов этой же строки. Работает аналогично колонке типа Lookup.
Фильтрация оргструктуры¶
| Настройка (UI) | Поле БД | Тип | Описание |
|---|---|---|---|
| Ограничить выбор орг. единиц | OrgUnitTypeFiltration |
tinyint, default 0 | 0=Без ограничений, 1=По подразделению, 2=Смарт-фильтр |
| Ограничить список из подразделения | OrgUnitID |
int FK → OrgStructureUnit | Корневое подразделение (при OrgUnitTypeFiltration=1) |
| Ограничить смарт-выражением | OrgUnitSmartFilterId |
int FK → SmartExpressions | Смарт-фильтр для орг. единиц (при OrgUnitTypeFiltration=2) |
| Ограничить выбор типами | Таблица ExtParamSelectUserSettingsOrgUnitTypes |
N:1 | Разрешённые типы подразделений оргструктуры |
| Разрешить выбор только листовых узлов | AllowOnlyOrgUnitTreeLeafs |
bit, default 0 | Только конечные элементы дерева оргструктуры |
Уровень отображения оргструктуры¶
| Настройка (UI) | Поле БД | Тип | Описание |
|---|---|---|---|
| Отображать уровни орг. единиц | OrgUnitsLevel |
int, default 0 | Определяет количество уровней в имени элемента при выводе в печатный шаблон |
Допустимые значения:
| Значение | Enum | Описание |
|---|---|---|
| 0 | LowerAndItsParent |
Нижний + родитель |
| 1 | Lower |
Только нижний |
| 2 | All |
Все уровни |
| 3 | WithoutTop |
Все кроме верхнего |
| 4 | WithoutTwoTop |
Все кроме двух верхних |
Значение формируется в момент сохранения ДП (метод RenderOrgUnitName). Для изменения вывода в ранее созданных задачах — пересохранить значение ДП.
Текстовые ресурсы¶
7 локализуемых полей для кастомизации текстов кнопок и тултипов.
| Ресурс (UI) | FK на LocalizedBusinessObjects | Описание |
|---|---|---|
| Заголовок кнопки | LocalizedButtonTitleId |
Текст кнопки выбора |
| Только этому пользователю | LocalizedOnlyCurrentUserId |
Текст ограничения |
| Удалить пользователя | LocalizedRemoveUserId |
Текст удаления одного |
| Удалить всех | LocalizedRemoveAllId |
Текст удаления всех |
| Показать информацию о пользователе | LocalizedUserInfoId |
Текст просмотра инфо |
| Подсказка в пустом поле ввода | LocalizedEmptyTooltipId |
Тултип |
| Заголовок списка выбора | LocalizedSelectListTitleId |
Заголовок списка |
Legacy-поле 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 | Перед открытием диалога выбора пользователей |