Добавить свой объект к подсистеме управления доступом (производительный)
Пытаюсь подключить новый справочник "МойСправочник" к подсистеме управления доступом с ограничением доступа по пользователям (реквизит "Автор"). БСП 3.1.3.561. Результат отрицательный, при записи нового объекта ошибка доступа. Уже созданные объекты (под полными правами) и удовлетворяющие условию тоже не видны. Подскажите пожалуйста, что делаю не так, а то у меня закончились варианты.
Что делаю:
1) В определяемый тип "ВладелецЗначенийКлючейДоступа" добавил свой справочник
2) В определяемый тип "ВладелецЗначенийКлючейДоступаОбъект" добавил свой справочник
3) В общем модуле УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа добавил свой справочник
Процедура ПриЗаполненииСписковСОграничениемДоступа(Списки) Экспорт
Списки.Вставить(Метаданные.Справочники.МойСправочник, Истина);
КонецПроцедуры
4) В модуле менеджера своего справочника добавил процедуру
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
"РазрешитьЧтениеИзменение
|ГДЕ
| ЗначениеРазрешено(Автор)"
КонецПроцедуры
5) Создал роль. Скопировал шаблон РЛС "ДляОбъекта(ПолеОбъекта)" из роли "ИзменениеУчастниковГруппДоступа". На "Чтение", "Изменение" и "Добавление" для "ПрочиеПоля" добавил РЛС "#ДляОбъекта("")"
6) Запустил обновление вспомогательных данных по всей подсистеме Управления доступом
7) Создал профиль и группу доступа со своей ролью и ограничением по пользователям "Все запрещены". Добавил в группу доступа пользователя для тестов
Что делаю:
1) В определяемый тип "ВладелецЗначенийКлючейДоступа" добавил свой справочник
2) В определяемый тип "ВладелецЗначенийКлючейДоступаОбъект" добавил свой справочник
3) В общем модуле УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа добавил свой справочник
Процедура ПриЗаполненииСписковСОграничениемДоступа(Списки) Экспорт
Списки.Вставить(Метаданные.Справочники.МойСправочник, Истина);
КонецПроцедуры
4) В модуле менеджера своего справочника добавил процедуру
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
"РазрешитьЧтениеИзменение
|ГДЕ
| ЗначениеРазрешено(Автор)"
КонецПроцедуры
5) Создал роль. Скопировал шаблон РЛС "ДляОбъекта(ПолеОбъекта)" из роли "ИзменениеУчастниковГруппДоступа". На "Чтение", "Изменение" и "Добавление" для "ПрочиеПоля" добавил РЛС "#ДляОбъекта("")"
6) Запустил обновление вспомогательных данных по всей подсистеме Управления доступом
7) Создал профиль и группу доступа со своей ролью и ограничением по пользователям "Все запрещены". Добавил в группу доступа пользователя для тестов
По теме из базы знаний
Найденные решения
7) Создал профиль и группу доступа со своей ролью и ограничением по пользователям "Все запрещены". Добавил в группу доступа пользователя для тестов
Вот тут поподробнее, пожалуйста. Правильно я понял, что вы сделали следующее:
Создали профиль с новой ролью, в котором указали ограничения по пользователям "Все запрещены, исключения назначаются в группах доступа"?
а потом в группе доступа на основе этого профиля в ограничениях в значениях доступа в качестве исключения указали пользователя на котором проводите тест и еще включили этого пользователя в состав этой группы доступа?
Так же интересно рассчитывали ли вы ключи для объектов своего справочника после обновления?
Например через вспомогательную обработку "УправлениеДоступом" из состава БСП на первой закладке рядом с выбором списка команда "Обновить достпу"
или с помощью ручного обновление из меню "еще" формы списка регистра сведений ОбновлениеКлючейДоступаКДанным ?
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
А можете подробней описать каждый шаг, я совсем новенький в этом деле, как выполнить 1 и 2 пункты, а так-же у меня в 3 пунке три функции ПриЗаполнееСписковСОграничениемДоступа в какой добавлять? вот эти 3 пунка не особо понятны
Вставить(Метаданные.Справочники.МойСправочник, Истина);
КонецПроцедуры
КонецПроцедуры
А можете подробней описать каждый шаг, я совсем новенький в этом деле, как выполнить 1 и 2 пункты, а так-же у меня в 3 пунке три функции ПриЗаполнееСписковСОграничениемДоступа в какой добавлять? вот эти 3 пунка не особо понятны
7) Создал профиль и группу доступа со своей ролью и ограничением по пользователям "Все запрещены". Добавил в группу доступа пользователя для тестов
Вот тут поподробнее, пожалуйста. Правильно я понял, что вы сделали следующее:
Создали профиль с новой ролью, в котором указали ограничения по пользователям "Все запрещены, исключения назначаются в группах доступа"?
а потом в группе доступа на основе этого профиля в ограничениях в значениях доступа в качестве исключения указали пользователя на котором проводите тест и еще включили этого пользователя в состав этой группы доступа?
Так же интересно рассчитывали ли вы ключи для объектов своего справочника после обновления?
Например через вспомогательную обработку "УправлениеДоступом" из состава БСП на первой закладке рядом с выбором списка команда "Обновить достпу"
или с помощью ручного обновление из меню "еще" формы списка регистра сведений ОбновлениеКлючейДоступаКДанным ?
Удалось найти причину. До текущего момента использовался обычный, не производительный вариант работы. Его я включил пока только на тесте. А, видимо, из-за того, что в тестовой базе регламентные задания отключены, то и Первое обновление доступа не сработало, константа "ПервоеОбновлениеДоступаЗавершилось" была установлена в Ложь. Поэтому и РЛС не срабатывали, а для стандартного варианта работы я их не делал.
В итоге на форме "Настройки пользователей и прав" перешел по гиперссылке "Обновление доступа на уровне записей" и вручную запустил обновление доступа. После завершения фонового задания все заработало.
В итоге на форме "Настройки пользователей и прав" перешел по гиперссылке "Обновление доступа на уровне записей" и вручную запустил обновление доступа. После завершения фонового задания все заработало.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот