Показать сообщение отдельно
Старый 01.07.2010, 18:54   #8  
Alexius is offline
Alexius
Участник
Аватар для Alexius
 
461 / 248 (9) ++++++
Регистрация: 13.12.2001
Безумная идея:

В Class/SysQueryRun/new для нужных таблиц добавить range типа
X++:
strfmt('((DataAreaId == DataAreaId) || (DataAreaId == "%1"))', curuserid())
это если длина кода пользователя <=3
X++:
strfmt('((DataAreaId == DataAreaId) || (TableField == "%1"))', curuserid())
TableField - любое строковое поле таблицы с длиной >=5
X++:
strfmt('((DataAreaId == DataAreaId) || (RecId == %1))', xUserInfo::find().RecId)
RecId пользователя будет потом несколько сложнее разобрать, но возможно.

В профайлере добавить фильтр на текст %DATAAREAID=DATAAREAID% (сомневаюсь, что найдутся еще такие запросы ).

PS. По SysQueryRun например тут Не работает RLS по связанной таблице. Так и должно быть?

PS2. Реализация и последствия на Вашей совести
За это сообщение автора поблагодарили: AGRESSOR (1).