Имя: Пароль:
1C
 
RLS. Производительный режим. Вопрос по запросам доступа
0 Wefast
 
03.03.25
14:51
Есть регистр сведений

там такой типовой запрос:
"РазрешитьЧтениеИзменение
	|ГДЕ
	|	ЗначениеРазрешено(ГоловнаяОрганизация)
	|	И ЗначениеРазрешено(ФизическоеЛицо)";


Есть справочник Организации. Там такой нетиповой запрос:
	"
	|РазрешитьЧтение
	|Где Ссылка.ЕстьОбособленныеПодразделения
	|или ЧтениеОбъектаРазрешено(Ссылка)
	|;
	|РазрешитьИзменениеЕслиРазрешеноЧтение
	|ГДЕ
	|	ЗначениеРазрешено(Ссылка)";


У пользователя нет доступа к головной организации.
Но данным запросом на чтение - есть.

Если пользователь будет писать в регистр что-то по головной организации, запись сделается?

Что значит ЗначениеРазрешено(ГоловнаяОрганизация)? Какой вид доступа проверяется?

Мне нужно, что пользователь мог сделать такую запись.

Или нужно во всех необходимых регистрах написать ЧтениеОбъектаРазрешено(ГоловнаяОрганизация)?
1 Wefast
 
04.03.25
09:45
ЗначениеРазрешено что проверяет?
Есть ли доступ в группах доступа, т.е. тут можно указать только то что можно настроить в группах доступа

Или

Проверяется право на объект метаданных. И срабатывает РЛС описанный в этом объекте?
2 Волшебник
 
04.03.25
09:45
Ничего непонятно, но очень интересно.
3 Wefast
 
04.03.25
12:46
Пользователь должен видеть организации из группы доступа и головные. (желательно только головные доступных организация. Но я без понятия как это описать)

В модуле менеджера спр Организации пишу
	Ограничение.Текст =
	"
	|РазрешитьЧтение
	|Где Ссылка.ЕстьОбособленныеПодразделения
	|или ЗначениеРазрешено(Ссылка)
	|;
	|РазрешитьИзменениеЕслиРазрешеноЧтение
	|ГДЕ
	|	ЗначениеРазрешено(Ссылка)";


Ну и что то ничего не работает.
Видны только те на которые выдан доступ.
4 Волшебник
 
04.03.25
12:48
Когнитивная сложность типовых шаблонов ограничений доступа превышает возможности человеческого мозга.
Эти шаблоны генерятся на метауровне.
5 okmail
 
04.03.25
14:12
https://infostart.ru/1c/articles/1994596/?ysclid=m7udxyfi9u126315183

по ссылке ответ на все вопросы. всё подробно и понятно описано
6 Wefast
 
04.03.25
16:33
(5) Видел, там не хватает примеров.

Да и не все понятно было:
Например
ЗначениеРазрешено(<Реквизит> [<проверяемые типы>] [, <уточнение сравнения 1> [, <уточнение сравнения 2>] …]);
ЧтениеОбъектаРазрешено (<так же, как для функции ЗначениеРазрешено>);


Но как оказывается(на сколько я понял)
ЗначениеРазрешено() - проверяет в группах доступа указано ли значение
А
ЧтениеОбъектаРазрешено() - проверяет роль. Совсем не "так же"

(3)
В организациях написал в итоге вот так:

"ПрисоединитьДополнительныеТаблицы
	|ЭтотСписок КАК Т
	|Левое Соединение Справочник.Организации КАК Т2
	|По Т.ссылка = Т2.ГоловнаяОрганизация
	|
	|;
	|РазрешитьЧтение
	|Где ЗначениеРазрешено(Т2.Ссылка)
	|или ЗначениеРазрешено(Т.Ссылка)
	|;
	|РазрешитьИзменениеЕслиРазрешеноЧтение
	|ГДЕ
	|	ЗначениеРазрешено(Ссылка)";
7 Волшебник
 
04.03.25
19:29
(5) 👍 Хорошая статья
8 ldo6
 
04.03.25
21:44
(7) Стас, есть методики переваривания такой когнитивной сложности?
9 Волшебник
 
04.03.25
22:32
(8) Пока я вижу только такой путь: искусственный ассистент для Вашего контекста.