Как удалить из результата запроса в СКД строки, в которых у пользователя нет прав хотя-бы на одно (!) поле? А то отображается "<Объект не найден ... >" - лучше пусть вообще строка не выводится. Конструкция ВЫБРАТЬ РАЗРЕШЕННЫЕ не действует.
Основная задача: по полному имени метаданного сформировать текст запроса вида:
(1) Как-же быть? В качестве полумеры я предложил использовать отбор по полю объекта, права на чтение которого МОЖЕТ НЕ БЫТЬ: ВерсияДанных _ НЕ Равно _ "", но "продвинутые" пользователи легко снесут эту настройку при желании.
1. Борьба с последствием
Выгрузить результат запроса в таблицу значений и удалить из последней строки с "битыми" ссылками.
2. Борьба с причиной
Переписать сами роли так, чтоб не было прав на те элементы, где нет прав на хотя-бы одно из полей.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший