Имя: Пароль:
1C
 
RLS. Производительный режим. Права на филиал + головная организация
0 Wefast
 
19.05.25
16:36
Есть ЗУП, настраиваю производительный режим RLS, вместо стандартного.

Выдает ошибку при обновление доступа, не могу понять, что делаю не так.

Есть Головные организации и в них куча филиалов.

Права выдаются на филиалы.
Нужно выдать права на чтение головной организации филиала который выдан в группе доступа.

(для того, чтобы во всяких регистрах я прописал
РазрешитьЧтение
Где ЧтениеОбъектаРазрешено(ГоловнаяОрганизация)

В модуле менеджера пишу:

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


Обработка Управление доступом не выдает на такой запрос ошибки.

При обновление доступа на уровне записей долго пытается обработать справочник Организации, но в итоге выдает:

9.05.2025 16:26:19 Не удалось подготовить свойства списка "Справочник.Организации" как ведущего,
из-за некорректного состояния параметров ограничения доступа.
{ОбщийМодуль.УправлениеДоступомСлужебный.Модуль(25192)}:ВызватьИсключение ТекстОшибки;
{ОбщийМодуль.УправлениеДоступомСлужебный.Модуль(25195)}:Возврат СвойстваСпискаКакВедущего(ПолноеИмя, ИдентификаторТранзакции, Истина);
{ОбщийМодуль.УправлениеДоступомСлужебный.Модуль(16950)}:СвойстваСпискаКакВедущего = СвойстваСпискаКакВедущего(Список, ИдентификаторТранзакции);
{ОбщийМодуль.УправлениеДоступомСлужебный.Модуль(16930)}:ДобавитьПараметрыОграничения(ПараметрыОбновления);
{ОбщийМодуль.УправлениеДоступомСлужебный.Модуль(16572)}:ПараметрыОбновления = ПараметрыОбновления(ОбщиеПараметрыОбновления, ОбъектМетаданных);
{ОбщийМодуль.УправлениеДоступомСлужебный.Модуль(16480)}:ВыполнитьОбновлениеДоступаСписка(ОбщиеПараметрыОбновления);
{ОбщийМодуль.УправлениеДоступомСлужебный.Модуль(15784)}:ВыполнитьОбновлениеДоступаСпискаСПопыткамиПовтора(ОбщиеПараметрыОбновления, Контекст);

[ОшибкаВоВремяВыполненияВстроенногоЯзыка, ИсключениеВызванноеИзВстроенногоЯзыка]