Есть специалисты по настройке RLS, может кто подскажет?
Есть справочник Контрагенты, в нем настроено ограничение на чтение.
отдельные поля оставлены без ограничений!
Конкретно интересует ПометкаУдаления.
Что происходит - пользователь пытается провести документ с недоступным Контрагентом (он его не видит в соответствии с группой доступа) и через модуль идет проверка на ПометкуУдаления данного контрагента.
И тут сваливается с ошибкой, что (Ошибка при получении значения атрибута контекста ПометкаУдаления)
Я не понимаю - я же в настройке открыл отдельные поля справочника, как доступные - т.е. на них не должно распространяться ограничение.
Как мне открыть пометку удаления по закрытому контрагенту?
Разобрался.
Все я правильно указал.
Причина в непосредственном обращении к реквизиту.
Нашел в мануале такое:
"При задании ограничения на конкретное поле это поле будет прочитано в том случае, если
ограничение выполняется, а при задании ограничения на Прочие поля данные объекта
будут прочитаны только в том случае, если ограничение выполняется для всех полей
объекта, попавших в запрос чтения данных.
Данные могут быть выбраны из базы запросом или при помощи объектной техники.
При использовании объектного чтения объект всегда будет считан из базы целиком. А при
использовании запроса есть возможность явно указать только необходимые поля. Нужно
учитывать эту особенность при работе с ограничениями доступа на уровне записей."
переписал обращение из кода не через ".", а через запрос получил конкретный реквизит - пометка удаления и все взлетело.
(4) есть смысл )
Если конкретно есть поставщики, по которым вся информация закрыта в коммерческих целях.
Но потребовалось дать возможность кладовщикам проводить поступление - для отражения факта прихода.
Получается документ кладовщик должен проводить, а к контрагенту доступа нет )
(2) Как это не про RLS? А для чего по Вашему вообще тогда конкретные поля выбирать??
например:
https://makushimo.ru/1c/1s-rls.html "Это означает, что при попытке получить доступ к отмеченным флажками полям, ограничение сработает, а при попытке получить доступ к неотмеченным полям ограничение не сработает.
Если выбрать флаг «Прочие поля», ограничение будет настроено для всех полей таблицы, кроме полей, для которых ограничения заданы явным образом."
"где истина", это я уж от безысходности писал, там пусто было
Разобрался.
Все я правильно указал.
Причина в непосредственном обращении к реквизиту.
Нашел в мануале такое:
"При задании ограничения на конкретное поле это поле будет прочитано в том случае, если
ограничение выполняется, а при задании ограничения на Прочие поля данные объекта
будут прочитаны только в том случае, если ограничение выполняется для всех полей
объекта, попавших в запрос чтения данных.
Данные могут быть выбраны из базы запросом или при помощи объектной техники.
При использовании объектного чтения объект всегда будет считан из базы целиком. А при
использовании запроса есть возможность явно указать только необходимые поля. Нужно
учитывать эту особенность при работе с ограничениями доступа на уровне записей."
переписал обращение из кода не через ".", а через запрос получил конкретный реквизит - пометка удаления и все взлетело.