Затык с РЛС (не формируется отчет) #645555


#0 by LehhaK
Дядьки! УТ 10.3 Наложил РЛС на чтение РТиУ для определенной роли. Условие: ГДЕ Ответственный = &ТекущийПользователь. И все бы хорошо, но есть отчет СостояниеБонусныхКарт, которому надо видеть все реализации. Ругается на строчку: ОбластьДвижение.Параметры.Сумма = Движения.Регистратор.СуммаДокумента; Не может получить регистратор, ибо РЛС. Отбор накладывать на форму списка РтиУ вроде как не фен-шуйно. Переделывать отчет тоже - он всем нравится таким, какой есть. Фишка отчета в том, что он указывает регистратор  начисления бонусов.  Как реализовать обе задачи?
#1 by LehhaK
Обе задачи - это не показывать пользователю чужие РТиУ и дать ему формировать отчет
#2 by LehhaK
+ с чужими РТиУ
#3 by polymorph
делай процедуру формирования отчета в привилегированном модуле
#4 by LehhaK
Ща попробую
#5 by LehhaK
Че то я теперь не пойму, как передать из привилегированного общего модуля табличный документ на клиента....
#6 by LehhaK
Попытка передачи с сервера клиенту мутабельного значения
#7 by LehhaK
Че, никто не передавал, чтоле? О_о
#8 by MSII
Есть другой вариант - добавить параметр сеанса, разрешающий чтение всех РТУ, включить его в текст ограничения. Перед формированием отчета выставлять значение параметра сеанса в истину, после - в ложь.
#9 by MSII
Если есть другие ограничения, которые должны соблюдаться в отчете, то привилегированное выполнение не вариант.
#10 by LehhaK
Интересно, щас потестирую нет других ограничений
#11 by MSII
Если нет других ограничений, то лучше
#12 by LehhaK
Да я вроде делаю. Все формируется. Потом мне надо Таблица.Показать; и все. Нельзя передавать мутабельное значение с сервера на клиент.
#13 by LehhaK
Ну в смысле таблица = табличный документ. Она указана как параметр процедуры
#14 by MSII
А раньше как отчет выполнялся? На сервере в привилегированном модуле только собирай данные, клади в ТЗ и отправляй их на клиент. Все остальное на клиенте.
#15 by LehhaK
Короче, сделал через параметр сеанса. Спасибо,  MSII. Есть крутой баг - после формирования отчета, через расшифровку еще секунд 10 пользователь может открывать чужие РТиУ. Потом уже не дает. Это типа такая задержка при установке параметра сеанса? Раньше не было РЛС. Щас вот до них руки дошли. Раньше он в процедуре нажатия кнопки сформировать формировался
#16 by LehhaK
ТЗ мне тоже передать не получалось - мутабельное значение. ЗАпрос.выполнить.выбрать передавать не давал. запрос.выполнить.выгрузить давал, но тоже на ту же строчку, что и в матерился...
#17 by LehhaK
А, ну да, выгрузить это ж и будет ТЗ...Выходит, передавать ТЗ не вариант или надо запрос передалать... А щас и попробую)))
#18 by LehhaK
Продолжаю наблюдения: Думал, что проблема с обращением к регистратору через точку. Нифига. Вообще никакую строчку из РТиУ не вытащить, когда на ней РЛС. Переделал запрос, чтоб получать не только регистратор, но и сумму документа регистратора. Строку из изменил на ОбластьДвижение.Параметры.Сумма = Движения.СуммаДокумента; Ругается, что недоступно чтение строки СуммаДокумента. Ладно, мир ему. пусть будет параметр сеанса. Так сказать "на вырост". Если вдруг еще какие ограничения появятся. А как быть с задержной передачи значения параметра сеанса?
#19 by LehhaK
На скорость успел открыть 7 РТиУ, пока не вылезло "недостаточно прав на исполнение операций над базой данных"
#20 by MSII
Забавно. :) Ну, я не знаю. Добавь булевый реквизит РазрешитьОбработкуРасшифровки, после формирования отчета установи его в Ложь. Подключи однократный обработчик ожидания на 10 секунд, в нем устанавливай РазрешитьОбработкуРасшифровки в Истину. В обработке расшифровки проверяй РазрешитьОбработкуРасшифровки. Ни разу не изящно, конечно, но ничего другого не могу придумать.
#21 by LehhaK
Щас пока пробую через ТЗ реализовать красиво. Если не получится - буду делать, как ты написал. Спасибо! :)
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С