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