Автоматическое изменение групп доступа ЗУП 3.1

1. dehro 14 28.05.26 11:00 Сейчас в теме
1С:ЗУП КОРП 3.1.37.72. Несколько сетей.

Есть несколько профилей: «Кадровик», «Руководитель». По каждому профилю есть несколько групп доступа (на каждое подразделение своя, с РЛС по физическим лицам, ГруппаДоступаФизическихЛиц соответствует подразделению).
Есть (нетиповой) регистр связи измерения «Подразделение» - «Должность», ресурс «Физлицо»
Задача: нужно автоматизировать корректировку групп доступа при изменении «Подразделение/должность» в регистре связи.

Нетиповой только регистр связи, всё остальное типовое. Физическое лицо заполнено в пользователе.

Вопрос: Какие объекты метаданных нужно добавить?
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. nomad_irk 84 28.05.26 12:20 Сейчас в теме
(1)
Какие объекты метаданных нужно добавить?

Встречный вопрос: куда?
YA_514896950; +1 Ответить
4. dehro 14 28.05.26 12:39 Сейчас в теме
(2) В конфигурацию. У нас спор про архитектуру, код написать легко.
5. nomad_irk 84 28.05.26 12:56 Сейчас в теме
(4) В первом приближении, ничего кроме регистра-связки не нужно.
Остальное - регламентное задание, выполняющее назначение групп доступа пользователям.
3. VKuser2513456 28.05.26 12:36 Сейчас в теме
Давайте упростим этот текст, чтобы стало понятно, что именно предлагают и зачем.
Описание ситуации:
• Есть разные должности: Кадровик, Бухгалтер, Менеджер и т.д.
• Есть разные отделы (подразделения): Отдел кадров, бухгалтерия, отдел продаж.
• Есть сотрудники: Каждый сотрудник работает в каком-то отделе и занимает какую-то должность.
Как сейчас (до доработки) работает доступ к данным:
1. Группы доступа: Чтобы ограничить, кто что видит в программе, используют “группы доступа”.
2. Логика групп доступа: Каждая группа доступа создана под очень конкретную комбинацию: “Должность” + “Подразделение”.
o Например, есть группа “Кадровики отдела кадров”. В эту группу добавляют только тех сотрудников, которые одновременно занимают должность “Кадровик” И работают в подразделении “Отдел кадров”.
o Еще пример: группа “Бухгалтеры бухгалтерии” — туда попадают сотрудники с должностью “Бухгалтер” из подразделения “Бухгалтерия”.
3. Ограничение доступа: Внутри каждой такой группы доступа указывается, что видеть можно только сотрудников из конкретного подразделения (например, для группы “Кадровики отдела кадров” — можно видеть только сотрудников из “Отдела кадров”).
4. Итог: Получается, что для каждой пары “подразделение + должность” создается своя уникальная группа доступа.
________________________________________
Назовем нетиповой регистр сведений “ПервыйРегистр”: Это специальное место (регистр), где для каждой пары “подразделение + должность” хранится информация о том, какой именно сотрудник туда относится.
________________________________________
• Задача: Сделать так, чтобы при изменении информации о сотруднике в “ПервомРегистре”, группы доступа обновлялись автоматически.
________________________________________
Как предлагаю решить задачу :
1. Создать “связующее звено”:
o Создать новое место для хранения информации (новый “ВторойРегистр”).
o В этом новом месте будет храниться связь: “Подразделение” + “Должность” = “Нужная группа доступа”.
o Это как бы “справочник”, который говорит: “Все, кто работает на должности X в подразделении Y, должны быть в группе доступа Z”.
2. Сделать “автоматического помощника”:
o Создать “подписку на событие”. (Источник события: “ПервыйРегистр”: , Имя события: ПриЗаписи)
o Как это работает: Когда вы меняете информацию о сотруднике в “ПервомРегистре” (например, переводите его), эта “подписка” срабатывает.
o “Подписка” смотрит в новый “ВторойРегистр”, чтобы узнать, какая группа доступа соответствует этому сотруднику (по его новому подразделению и должности).
o Затем, “подписка” автоматически добавляет или удаляет этого сотрудника из нужных групп доступа.
Проще говоря:
Предлагается сделать так, чтобы программа сама понимала, в какую группу доступа должен попасть сотрудник, если изменилась его должность или подразделение, и сама его туда добавляла или убирала.
Ключевая идея: Создать “правило” (“ВторойРегистр”), которое связывает подразделение и должность с нужной группой доступа, а затем использовать “подписку на событие”, который будет следить за изменениями и применять это правило.
6. dehro 14 28.05.26 16:32 Сейчас в теме
(3)
Давайте упростим этот текст...


Вместо 6 строчек стало 44 - это безусловно упрощение. ИИ, такой ИИ))
YA_514896950; +1 Ответить
7. VKuser2513456 29.05.26 07:42 Сейчас в теме
А это уже исходный (мой) текст.

Имеем:
В базе элементы справочника 'Группы доступа' созданы по принципу:
В группу доступа добавлены пользователи у которых соответствующие физические лица (то есть соответствующие сотрудники) имеют одну конкретную должность. Например, 'Кадровик'.
Также в данной группе доступа задано ограничение доступа:
'Группы физических лиц' равна 'Все запрещены, кроме 1 значения'
Значение ограничение соответствует конкретному подразделению.

То есть на одну пару значений Подразделение и Должность имеем одну группу доступа.
Например, на подразделение 'Основное' и должность 'Кадровик' имеем группу 'Кадровики основного подразделения'

Также имеем добавленный регистр "ПервыйРегистр" в котором для пары значений Подразделение и Должность мы храним значение физического лица.

Задача:
При изменении нетипового регистра должны изменяться типовые группы доступа.

Предлагаемое решение:
Сделать в базе непосредственную связь для Подразделения, Должности и группы доступа.
Например, новый регистр сведений "ВторойРегистр" в котором измерения Подразделение и Должность а ресурс 'Группа доступа'.

Далее создаем подписку на событие которая при записи регистра "ПервыйРегистр" будет смотреть во второй новый регистр. В новом регистре программа находит нужную нам группу доступа и добавляет/удаляет из нее пользователя соответствующего физическому лицу.

Ключевой объект тут - подписка на событие. Изменили регистра "ПервыйРегистр", сработал поиск и изменение соответствующей группы доступа.
8. dehro 14 29.05.26 12:24 Сейчас в теме +2 $m
(7) А если в новом регистре сведений вместо группы доступа использовать профиль доступа?
Чем будет хуже?
9. VKuser2513456 01.06.26 11:00 Сейчас в теме
Справочник "ПрофилиГруппДоступа" содержит в себе список ролей, но в нем нет списка пользователей.


Если в новом регистре использовать элемент справочника "ПрофилиГруппДоступа", то изменении "ПервогоРегистра", чтобы найти пользователя соответствующего физическому лицу, придется в справочнике "ГруппыДоступа" искать группу которая использует нужный нам профиль.
Для отправки сообщения требуется регистрация/авторизация

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот