|
1С 8.3.9 Содержимое роли. (На какие объекты дается разрешение, получить одним запросом) | ☑ | ||
---|---|---|---|---|
0
ZUM
28.08.17
✎
12:19
|
Добрый день, Коллеги!
Вот задался вопросом можно ли получить содержимое роли 1С "одним махом". Сейчас делаю так: Для каждого лРоль из Метаданные.Роли Цикл Для Каждого лОбъектКоллекции из Метаданные.Справочники Цикл ЕстьПраво = ПравоДоступа("Чтение", лОбъектКоллекции, лРоль); Если ЕстьПраво Тогда ............. КонецЕсли; КонецЦикла; КонецЦикла; Обхожу каждый объект и проверяю несколько прав.... Получается длинновато. Если кто то делал или делает иначе, поделитесь пожалуйста опытом. |
|||
1
yzimin
28.08.17
✎
12:24
|
Если БСП, то рег.сведений Права ролей
|
|||
2
aleksonic
28.08.17
✎
12:38
|
(0) Конечно задавался.
Ну не одним махом, но минут за 10 сделаешь. например начать с интерфейсов: Для каждого Объект из Метаданные["Интерфейсы"] Цикл Использование = ПравоДоступа("Использование", Объект, ТекущаяРоль); Если Использование Тогда НоваяСтрока = ТаблицаРоли.Добавить(); НоваяСтрока.РольПользователя = ТекущаяРоль; НоваяСтрока.РольПользователяИмя = ТекущаяРоль.Имя; НоваяСтрока.ВидОбъектаМетаданных = ВидОбъектаМетаданных; НоваяСтрока.ОбъектМетаданных = ОбъектМетаданных; НоваяСтрока.ОбъектМетаданныхИмя = ОбъектМетаданных.Имя; НоваяСтрока.Использование = Использование; КонецЕсли; КонецЦикла; Далее по аналогии все другие объекты прокручиваешь Для объекта БизнесПроцессы будет другой набор Чтение = ПравоДоступа("Чтение", Объект, ТекущаяРоль); Добавление = ПравоДоступа("Добавление", Объект, ТекущаяРоль); Изменение = ПравоДоступа("Изменение", Объект, ТекущаяРоль); Удаление = ПравоДоступа("Удаление", Объект, ТекущаяРоль); Просмотр = ПравоДоступа("Просмотр", Объект, ТекущаяРоль); ИнтерактивноеДобавление = ПравоДоступа("ИнтерактивноеДобавление", Объект, ТекущаяРоль); Редактирование = ПравоДоступа("Редактирование", Объект, ТекущаяРоль); ИнтерактивноеУдаление = ПравоДоступа("ИнтерактивноеУдаление", Объект, ТекущаяРоль); ИнтерактивнаяПометкаУдаления = ПравоДоступа("ИнтерактивнаяПометкаУдаления", Объект, ТекущаяРоль); ИнтерактивноеСнятиеПометкиУдаления = ПравоДоступа("ИнтерактивноеСнятиеПометкиУдаления", Объект, ТекущаяРоль); ИнтерактивноеУдалениеПомеченных = ПравоДоступа("ИнтерактивноеУдалениеПомеченных", Объект, ТекущаяРоль); ВводПоСтроке = ПравоДоступа("ВводПоСтроке", Объект, ТекущаяРоль); ИнтерактивнаяАктивация = ПравоДоступа("ИнтерактивнаяАктивация", Объект, ТекущаяРоль); Старт = ПравоДоступа("Старт", Объект, ТекущаяРоль); ИнтерактивныйСтарт = ПравоДоступа("ИнтерактивныйСтарт", Объект, ТекущаяРоль); |
|||
3
aleksonic
28.08.17
✎
12:41
|
(0) Как без такого инструмента админить базы с большим количеством объектов и ролей.
Нужно анализировать и роли и объекты, и пользователей. Массово обрабатывать пользователей, актуализировать переводы, увольнения и пр. |
|||
4
ZUM
28.08.17
✎
14:19
|
(3) В том то и фокус, что если этого всего много, получается очень громоздко анализировать.
Если у тебя 300 ролей и 1500 пользователей и объектов в конфе больше 1000. Таким (0) способом построение матрицы конфиктов займет кучу времени. Нужно все разносить по регистрам и переодически апдейтить... |
|||
5
aleksonic
28.08.17
✎
14:22
|
(4)
Если все разом получить, то такой объем и проанализировать не получится, а вот по одной роли, пользователю или объекту работает очень быстро. Это и есть самая частая задача, проанализировать какие роли дают доступ к объекту и у кого есть эти роли. Зачем обслуживать регистр? |
|||
6
ZUM
28.08.17
✎
14:32
|
(5) Товарищи аудиторы хотя матрицу конфликтов ролей.... (вывести те роли которые не могут быть использованы одновременно у одного пользователя/профиля(ей))
и еще по пользователям и еще в он-лайн режиме :) т.е. нужно проанализировать все роли и всех пользователей и быстро.... |
|||
7
aleksonic
28.08.17
✎
14:46
|
Анализ ролей и пользователей (профилей) не сложно.
В отрыве от Объекта и Права ничего никому не дадут. |
|||
8
aleksonic
28.08.17
✎
15:00
|
Тут будет несколько иначе:
Для каждого ТекПользователь Из ПользователиИнформационнойБазы.ПолучитьПользователей() Цикл РолиПользователя = ТекПользователь.Роли; Для каждого ТекущаяРольПользователя Из РолиПользователя Цикл ...; КонецЕсли; КонецЦикла; КонецЦикла; |
|||
9
Мыш
28.08.17
✎
15:04
|
В (1) всё сказали уже.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |