Безумная идея:
В 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. Реализация и последствия на Вашей совести