решение найдено!

помогла цитата из BOL, которую прислал теххелп. я нашел эту цитату в BOL и почитал немного о права на виды и таблицы.
дело оказалось в том, что для того, чтобы юзерам не нужны были права на таблицы, на которые ссылается вид, этот вид должен быть СОЗДАН тем юзером, кто владеет нужными таблицами. иначе получается дыра в безопасности - мы можем сделать вид, который оперирует данными в таблицах, на которые у нас нет прав, и спокойно пользоваться им, получая доступ к закрытым ранее данным. а если мы создаем вид на те таблицы, которыми сами же и владеем, то это уже наше дело, мы сами несем за это ответственность и сиквел-сервер послушно открывает используемые таблицы для того, у кого есть право на пользование созданным видом.. это я так понял.
в итоге я сделал вид, который затем и подцепил к пользовательскому отчету в Лоции. в этом виде я попытался сделать нечто вроде списка последних документов, по аналогии с Виндовым списком последних документов.. надеюсь, юзерам он покажется удобным.. код вида такой (это не я так написал, это сиквел уже его так переформатировал):
Код: Выделить всё
CREATE VIEW LSDBO.custom_view_last_docs_v
AS
SELECT (SELECT id
FROM lsdbo.object_reference obj
WHERE id IN
(SELECT object_reference_id
FROM lsdbo.file1 file1
WHERE id IN
(SELECT file_id
FROM lsdbo.file_ver file_ver
WHERE file_ver.id = file_log.file_ver_id))) AS isobject_id,
(SELECT mnemo
FROM lsdbo.object_type obj_type
WHERE id =
(SELECT type_id
FROM lsdbo.object_reference obj
WHERE id IN
(SELECT object_reference_id
FROM lsdbo.file1 file1
WHERE id IN
(SELECT file_id
FROM lsdbo.file_ver file_ver
WHERE file_ver.id = file_log.file_ver_id)))) AS mnemo,
(SELECT description
FROM lsdbo.object_reference obj
WHERE id IN
(SELECT object_reference_id
FROM lsdbo.file1 file1
WHERE id IN
(SELECT file_id
FROM lsdbo.file_ver file_ver
WHERE file_ver.id = file_log.file_ver_id))) AS obj_desc,
(SELECT vs.value
FROM lsdbo.attrib_value av, lsdbo.value_string vs
WHERE av.attrib_id = - 28 AND av.value_id = vs.id AND av.object_id IN
(SELECT object_reference_id
FROM lsdbo.file1 file1
WHERE file1.id IN
(SELECT file_id
FROM lsdbo.file_ver file_ver
WHERE file_ver.id = file_log.file_ver_id))) AS indication,
(SELECT description
FROM lsdbo.file1 file1
WHERE file1.id IN
(SELECT file_id
FROM lsdbo.file_ver file_ver
WHERE id = file_log.file_ver_id)) AS doc_desc, user_id, state AS acc_type, cd
FROM LSDBO.File_Log file_log
WHERE (state IN ('V', 'A', 'C', 'I')) AND (cd >= DATEADD(month, - 1, GETDATE()))
небольшой комментарий.
колонки вида:
isobject_id - ИД объекта, в котором есть нужный нам документ (колонка используется для перехода к объекту из отчета);
mnemo - мнемо типа этого же объекта (нужна чтобы нарисовать иконку объекта в отчете.. чтобы было красивее и привычнее);
obj_desc - описание этого же объекта;
indication - атрибут с ИД -28 (можно конечно сделать любой другой атрибут);
doc_desc - описание документа;
user_id - тот пользователь, у которого был доступ к документу;
acc_type - тип доступа к документу;
cd - дата и время доступа;
для скорости сделано одно допущение - в этот вид попадают только те факты доступа к документам, которые имели место в течение 1-го месяца с текущей даты (назад во времени, конечно

)
при использовании этого вида в отчете для каждого пользователя можно сделать дополнительное условие фильтрации типа
Код: Выделить всё
where user_id = :user_id
где :user_id аргумент отчета, который по умолчанию равен ИД текущего юзера
чтобы уменьшить объем данных в отчете, можно добавить после SELECT оператор TOP xx, я себе поставил TOP 50, и это это многовато

и в итоге то, ради чего это все делалось.. этот отчет появляется через 2-3 секунды после нажатия на кнопку "последние документы" на форме объекта. и причем в это время постоянно что то происходит на экране - запускается действие, запускается отчет, который тут же заполняется данными!

со стороны выглядит как моментальное получение списка документов

а раньше, когда было обращение к родным видам, окошко отчета держалось пустым секунды три...
вот такие дела... надо подумать, как этот опыт использовать дальше...
но получается конечно определенная дырка в защите данных, о чем теххелп меня сразу предупредил. если использовать собственные виды, в которых нет проверки прав, то пользователь, используя эти виды, может получить доступ к той информации, к которой бы он не добрался в интерфейсе Лоции.. об этом надо помнить.