Имя: Пароль:
1C
1С v8
Запросы, права доступа, СКД
0 GANR
 
18.07.12
15:04
Как удалить из результата запроса в СКД строки, в которых у пользователя нет прав хотя-бы на одно (!) поле? А то отображается "<Объект не найден ... >" - лучше пусть вообще строка не выводится. Конструкция ВЫБРАТЬ РАЗРЕШЕННЫЕ не действует.

Основная задача: по полному имени метаданного сформировать текст запроса вида:

ТекстЗапроса = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
   |    *
   |ИЗ
   |    " + ПолноеИмя;

Как решить проблему с минимальными трудозатратами на кодирование???
1 Нуф-Нуф
 
18.07.12
15:05
имхо тут дело не в правах...
2 GANR
 
18.07.12
15:07
(1) Как-же быть? В качестве полумеры я предложил использовать отбор по полю объекта, права на чтение которого МОЖЕТ НЕ БЫТЬ: ВерсияДанных _ НЕ Равно _ "", но "продвинутые" пользователи легко снесут эту настройку при желании.
3 GANR
 
18.07.12
15:18
up
4 Нуф-Нуф
 
18.07.12
15:20
задача какая вообще?
а по сабжу чувствуется битая ссылка
5 GANR
 
18.07.12
15:22
(4) Отчасти может быть и так... но "<Объект не найден ... >" и в том случае, если на запрашиваемый объект у пользователя просто нет прав.
6 GANR
 
18.07.12
15:22
+(5) в большинстве случаев в моем отчете (универсальный отчет, строящийся по полному имени метаданного) это так
7 GANR
 
18.07.12
15:42
Кажется, есть 2 варианта борьбы:

1. Борьба с последствием
Выгрузить результат запроса в таблицу значений и удалить из последней строки с "битыми" ссылками.

2. Борьба с причиной
Переписать сами роли так, чтоб не было прав на те элементы, где нет прав на хотя-бы одно из полей.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший