Непонятка с RLS

1. Zabba 17.01.19 16:37 Сейчас в теме
Добрый день!

Есть специалисты по настройке RLS, может кто подскажет?
Есть справочник Контрагенты, в нем настроено ограничение на чтение.
отдельные поля оставлены без ограничений!
Конкретно интересует ПометкаУдаления.
Что происходит - пользователь пытается провести документ с недоступным Контрагентом (он его не видит в соответствии с группой доступа) и через модуль идет проверка на ПометкуУдаления данного контрагента.
И тут сваливается с ошибкой, что (Ошибка при получении значения атрибута контекста ПометкаУдаления)
Я не понимаю - я же в настройке открыл отдельные поля справочника, как доступные - т.е. на них не должно распространяться ограничение.
Как мне открыть пометку удаления по закрытому контрагенту?
Прикрепленные файлы:
Найденные решения
5. Zabba 17.01.19 18:36 Сейчас в теме
Разобрался.
Все я правильно указал.
Причина в непосредственном обращении к реквизиту.
Нашел в мануале такое:
"При задании ограничения на конкретное поле это поле будет прочитано в том случае, если
ограничение выполняется, а при задании ограничения на Прочие поля данные объекта
будут прочитаны только в том случае, если ограничение выполняется для всех полей
объекта, попавших в запрос чтения данных.
Данные могут быть выбраны из базы запросом или при помощи объектной техники.
При использовании объектного чтения объект всегда будет считан из базы целиком. А при
использовании запроса есть возможность явно указать только необходимые поля. Нужно
учитывать эту особенность при работе с ограничениями доступа на уровне записей."


переписал обращение из кода не через ".", а через запрос получил конкретный реквизит - пометка удаления и все взлетело.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. alex-l19041 8 17.01.19 18:21 Сейчас в теме
(1) какой смысл
проверка на ПометкуУдаления данного контрагента
?
Зачем пользователь, который не имеет права на Контрагента работает с документом в котором он не видит заполнение полей ???
6. Zabba 17.01.19 18:39 Сейчас в теме
(4) есть смысл )
Если конкретно есть поставщики, по которым вся информация закрыта в коммерческих целях.
Но потребовалось дать возможность кладовщикам проводить поступление - для отражения факта прихода.
Получается документ кладовщик должен проводить, а к контрагенту доступа нет )
7. alex-l19041 8 17.01.19 18:48 Сейчас в теме
(6) ну, хорошо. А к чему проверка пометки на удаление при проведении документа?
8. Zabba 18.01.19 08:12 Сейчас в теме
(7) А это общая проверка при проведении всех документов чтобы не было проведения на Контрагентов, помеченных на удаление
2. sergathome 4 17.01.19 17:06 Сейчас в теме
Никак. "Отдельные поля оставлены без ограничений" - это вообще не про RLS. Вы сделали какую-то ерунду. Объяснять очень долго, погуглите, почитайте.
3. Zabba 17.01.19 17:42 Сейчас в теме
(2) Как это не про RLS? А для чего по Вашему вообще тогда конкретные поля выбирать??
например:
https://makushimo.ru/1c/1s-rls.html
"Это означает, что при попытке получить доступ к отмеченным флажками полям, ограничение сработает, а при попытке получить доступ к неотмеченным полям ограничение не сработает.
Если выбрать флаг «Прочие поля», ограничение будет настроено для всех полей таблицы, кроме полей, для которых ограничения заданы явным образом."

"где истина", это я уж от безысходности писал, там пусто было
5. Zabba 17.01.19 18:36 Сейчас в теме
Разобрался.
Все я правильно указал.
Причина в непосредственном обращении к реквизиту.
Нашел в мануале такое:
"При задании ограничения на конкретное поле это поле будет прочитано в том случае, если
ограничение выполняется, а при задании ограничения на Прочие поля данные объекта
будут прочитаны только в том случае, если ограничение выполняется для всех полей
объекта, попавших в запрос чтения данных.
Данные могут быть выбраны из базы запросом или при помощи объектной техники.
При использовании объектного чтения объект всегда будет считан из базы целиком. А при
использовании запроса есть возможность явно указать только необходимые поля. Нужно
учитывать эту особенность при работе с ограничениями доступа на уровне записей."


переписал обращение из кода не через ".", а через запрос получил конкретный реквизит - пометка удаления и все взлетело.
Оставьте свое сообщение

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