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

Паттерны управления пользователями и группами

Справочник типовых паттернов настройки оргструктуры, групп и кадровых изменений в 1Форме: иерархия орг.единиц, связанные и обычные группы, роли в задачах, ограничения при удалении и уникальности имён. Для администраторов при проектировании и сопровождении конфигурации пользователей и групп.

Организационная структура

Иерархия типов, порядок создания и множественные орг.единицы

Тип орг.единицы задаёт её уровень в иерархии. Стандартная конфигурация:

Тип Уровень
Компания 0
Департамент 1
Отдел 2
Должность 3

Должность — конечный уровень иерархии в каждой ветке.

Рекомендуемый порядок создания оргструктуры с нуля:

  1. Типы орг.структуры (Администрирование → Пользователи и группы → Типы орг.структуры)
  2. Дерево орг.единиц (сверху вниз: компания → департамент → отдел → должность)
  3. Пометить руководящие должности (галочка «Руководитель» в настройках орг.единицы)
  4. Создать пользователей (Фамилия, логин, псевдоним, Email — обязательные)
  5. Привязать пользователей к должностям

Пользователю можно назначить несколько орг.единиц, но только одна — основная (галочка «Основная» в профиле, подсвечивается жирным).

Группы

Типы групп, системные группы и связанные группы

На практике используются три основных типа групп:

Тип Описание Управление составом
Связанная (организационная) Привязана к орг.единице Автоматически: участники = сотрудники орг.единицы. Ручное добавление невозможно
Обычная Произвольный набор пользователей Ручное добавление/удаление
Индивидуальная Один пользователь Для выдачи прав конкретному человеку

Несколько групп создаются и поддерживаются системой автоматически:

  • Все пользователи — все пользователи системы (автоматически)
  • Administrators — доступ к разделу администрирования

Внимание: системные учётки support, systemrobot, anonymous — не менять настройки, может привести к некорректной работе. Восстановление = сброс всех настроек.

Администрирование → Пользователи и группы → Орг. структура → выбрать орг.единицу → «Связанная группа» = (Создать новую) → «Связать с группой».

Блок «Связь с орг. единицей» в свойствах группы

Варианты:

  • Одна группа для одной орг.единицы
  • Одна группа для всей ветки (рекурсивно включает дочерние)

Состав связанной группы обновляется автоматически при добавлении/удалении пользователей из связанной орг.единицы. Ручное редактирование состава — через орг.единицу, не через группу.

Права доступа к категориям выдаются только группам — не отдельным пользователям и не орг.единицам.

Роли в задачах и кадровые изменения

Роли пользователей, перемещение орг.единиц и изменение команды

В каждой задаче пользователь может выступать в одной или нескольких ролях:

Роль Описание Кратность
Заказчик Создал задачу Один на задачу
Исполнитель Назначен на исполнение Несколько, но ответственный — один
Подписчик Наблюдает, может комментировать, не исполняет Без ограничений
Акцептант Запрошена подпись Без ограничений

При реорганизации (слияние отделов, переподчинение):

  • Перемещение орг.единицы = перемещение всех вложенных + связанных групп
  • Права, завязанные на связанную группу, сохраняются
  • После перемещения — проверить, что логика Smart-правил не сломалась (если привязаны к конкретным орг.единицам по ID)

Кадровые изменения отражаются на группах и правах автоматически:

  • Добавление нового сотрудника: создать пользователя → привязать к должности → автоматически попадёт в связанные группы → автоматически получит права
  • Увольнение: деактивировать пользователя (не удалять — история задач сохраняется)
  • Перевод между отделами: сменить орг.единицу → автоматически сменятся группы → автоматически сменятся права

Ограничения оргструктуры

Уникальность имён и обязательные поля пользователя

По умолчанию название орг.единицы должно быть уникально в рамках одного родителя (Name + ParentId). При попытке создать дубликат система выбрасывает ошибку OrgStructureUnits_NotUnique.

Однако это поведение управляется пользовательской настройкой OrgStructure_AllowNonUniqueOrgUnitNames (по умолчанию false). Если включить — дубликаты разрешены.

На уровне БД ограничения уникальности на пару «название + родитель» нет — проверка выполняется только в приложении.

Безусловно обязательные поля: орг.единица, логин, пароль.

Дополнительные обязательные поля определяются в Общих настройках приложения (блок «Обязательные поля профиля пользователя»): фамилия, дата рождения, псевдоним на русском, e-mail. Набор зависит от конфигурации конкретной инсталляции.

Удаление орг.единиц

Удаление орг.единицы с активными (не уволенными) пользователями невозможно. Система выбрасывает TCLogicException: «Невозможно удалить организационную единицу, поскольку в ней есть сотрудники».

Порядок действий при удалении:

  1. Уволенные пользователи автоматически открепляются от орг.единицы.
  2. Если остались активные пользователи — ошибка.
  3. Если пользователей нет — удаляются дочерние элементы и связанная группа.

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