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

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

Полный перечень настроек с указанием где хранится, что делает, ограничения

Основные настройки (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 работает только при одновременном выполнении:

  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 Перед открытием диалога выбора пользователей