БСП RLS: работает в списках, но не работает в запросах
БСП версии 3.1.4.280, платформа: 8.3.22.2283
Настроено RLS в производительном режиме на справочник и регистр сведений, в котором одно из измерений ссылка на этот справочник.
Для справочника работает нормально.
А для регистра сведений, в котором одно из измерений - ссылка на справочник какой-то странный глюк: в форме списка регистра сведений отображаются только разрешенные записи, а вот запросом выбираются все записи из регистра и те, ссылки на справочник, что не разрешены, отображаются, как "объект не найден".
В чем может быть дело? Как исправить?
Настроено RLS в производительном режиме на справочник и регистр сведений, в котором одно из измерений ссылка на этот справочник.
Для справочника работает нормально.
А для регистра сведений, в котором одно из измерений - ссылка на справочник какой-то странный глюк: в форме списка регистра сведений отображаются только разрешенные записи, а вот запросом выбираются все записи из регистра и те, ссылки на справочник, что не разрешены, отображаются, как "объект не найден".
В чем может быть дело? Как исправить?
По теме из базы знаний
- Интеграция сценарного тестирования в процесс разработки
- Разработка и сценарное тестирование с Vanessa-ADD. Практические примеры сценариев. Шаги встроенной библиотеки
- Подсистема прав доступа (анализ ролей, отладка RLS, английский код, обычные и управляемые формы)
- Исправляем проблемы производительности в конфигурации ERP - 7 примеров
- Быстрый фронт в базе размером 8.8 терабайт – наши стандарты при разработке компонентов системы
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) это нормальное поведение.
Запросом выбираются только сами ссылки как измерения регистра? Это именно так и будет.
На сам регистр RLS не распространяется если ограничение на справочник, который указан одним из измерений.
Данные самого справочника не получаете, вот и нет ограничений. А при выводе пользователю представления на запрещенный справочник, то происходит попытка получения полей уже самого справочника, от этого и выводит как битую ссылку. По стандарту, если есть ограничение на элемент справочника, то системы говорит, что такого элемента нет при попытке прочитать поля такого справочника..
Запросом выбираются только сами ссылки как измерения регистра? Это именно так и будет.
На сам регистр RLS не распространяется если ограничение на справочник, который указан одним из измерений.
Данные самого справочника не получаете, вот и нет ограничений. А при выводе пользователю представления на запрещенный справочник, то происходит попытка получения полей уже самого справочника, от этого и выводит как битую ссылку. По стандарту, если есть ограничение на элемент справочника, то системы говорит, что такого элемента нет при попытке прочитать поля такого справочника..
(4)
Так быть не должно.
Если на регистр наложено ограничение RLS, в выборку должны попадать только те записи, которые разрешены.
то нормальное поведение.
Запросом выбираются только сами ссылки как измерения регистра? Это именно так и будет.
На сам регистр RLS не распространяется если ограничение на справочник, который указан одним из измерений.
Данные самого справочника не получаете, вот и нет ограничений. А при выводе пользователю представления на запрещенный справочник, то происходит попытка получения полей уже самого справочника, от этого и выводит как битую ссылку. По стандарту, если есть ограничение на элемент справочника, то системы говорит, что такого элемента нет при попытке прочитать поля такого справочника.
Запросом выбираются только сами ссылки как измерения регистра? Это именно так и будет.
На сам регистр RLS не распространяется если ограничение на справочник, который указан одним из измерений.
Данные самого справочника не получаете, вот и нет ограничений. А при выводе пользователю представления на запрещенный справочник, то происходит попытка получения полей уже самого справочника, от этого и выводит как битую ссылку. По стандарту, если есть ограничение на элемент справочника, то системы говорит, что такого элемента нет при попытке прочитать поля такого справочника.
Так быть не должно.
Если на регистр наложено ограничение RLS, в выборку должны попадать только те записи, которые разрешены.
(11) Модуле менеджера регистра:
В роли:
(имена изменены)
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
"РазрешитьЧтениеИзменение
|ГДЕ
| ЗначениеРазрешено(ИзмерениеСсылкаНаСправочник)";
КонецПроцедуры
В роли:
#Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда
#ДляРегистра("ИдентификаторыОбъектовМетаданных.РегистрСведенийМойРегистр", "ИзмерениеСсылкаНаСправочник", "", "", "", "")
#Иначе
#ПоЗначениям( "РегистрСведений.МойРегистр", "", "",
"МойВидДоступа", "ИзмерениеСсылкаНаСправочник",
"","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","")
#КонецЕсли
(имена изменены)
(10)В поставке БСП есть внешний отчет проверки внедрения БСП.
Проверьте отчетом, все ли нормально.
Может не добавили регистр в определяемые типы какие.
После настройки РЛС, надо выполнить обработку доп. данных.
Или запустить с ключем ЗапуститьОбновлениеИнформационнойБазы.
Проверьте отчетом, все ли нормально.
Может не добавили регистр в определяемые типы какие.
После настройки РЛС, надо выполнить обработку доп. данных.
Или запустить с ключем ЗапуститьОбновлениеИнформационнойБазы.
(17)
Да, в идентификаторах объектов метаданных есть мой регистр.
Во всём этом странно, то что просто в форме списка регистра RLS отрабатывает нормально, там нет записей, которые не разрешены. Отборов никаких нет.
А вот в консоли запросов выводится ВСЁ.
ще можно проверить, есть ли такой регистр в справочнике ИдентификаторыОбъектовМетаданных в предопределенных элементах.
Да, в идентификаторах объектов метаданных есть мой регистр.
Во всём этом странно, то что просто в форме списка регистра RLS отрабатывает нормально, там нет записей, которые не разрешены. Отборов никаких нет.
А вот в консоли запросов выводится ВСЁ.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот