Имя: Пароль:
1C
1С v8
Привилегированый режим на клиенте
,
0 Mr Man
 
11.08.16
15:03
Каким образом на клиенте установить привилегированный режим?
На сервере в установленном прив. режиме я получаю элемент справочника. Но при переходя обратно на клиент пишет что объект не найден.

Как установить привилегированный режим на клиенте?

&НаКлиенте
Процедура РасшПодп_ИВС_Подписать(Команда)
ПодписьСотрудника = ПолучитьПодписьСотрудника(Объект.Исполнитель);

ДанныеПодписи = РаботаСФайламиВызовСервера.ДанныеФайлаДляОткрытия(ПодписьСотрудника);
КонецПроцедуры


&НаСервере
Функция ПолучитьПодписьСотрудника(Исполнитель)
    УстановитьПривилегированныйРежим(Истина);
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ФайлыСубъектыПерсональныхДанных.Ссылка КАК Файл
        |ИЗ
        |    Справочник.Файлы.СубъектыПерсональныхДанных КАК ФайлыСубъектыПерсональныхДанных
        |ГДЕ
        |    ФайлыСубъектыПерсональныхДанных.ФизическоеЛицо = &ФизическоеЛицо";
    
    Запрос.УстановитьПараметр("ФизическоеЛицо", Исполнитель.ФизЛицо);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    ПодписьСотр = Неопределено;
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        ПодписьСотр = ВыборкаДетальныеЗаписи.Файл;
        возврат ПодписьСотр
    КонецЦикла;

КонецФункции
1 Fragster
 
гуру
11.08.16
15:05
никак
2 Mr Man
 
11.08.16
15:10
(1) эх)) и че? из за этого весь код перепиливать?
3 Mauser
 
11.08.16
15:12
(2) Конечно. Сначала делать, а потом думать - плохой паттерн.
4 Mr Man
 
11.08.16
15:16
(3) млин пошел рефакторинг))
5 Aleksey
 
11.08.16
15:19
а что ты на клиенте собрался читать в привилегированный режиме?
6 hhhh
 
11.08.16
15:32
(4) ну так

&НаКлиенте
Процедура РасшПодп_ИВС_Подписать(Команда)
РасшПодп_ИВС_ПодписатьНаСервере();
КонецПроцедуры

&НаСервере
Процедура РасшПодп_ИВС_ПодписатьНаСервере()
   УстановитьПривилегированныйРежим(Истина);

ПодписьСотрудника = ПолучитьПодписьСотрудника(Объект.Исполнитель);

ДанныеПодписи = РаботаСФайламиВызовСервера.ДанныеФайлаДляОткрытия(ПодписьСотрудника);
КонецПроцедуры
7 Mr Man
 
11.08.16
15:43
(6) в док обороте ДанныеПодписи - должно быть на клиенте, ибо
функция ФайлНаходитсяВЛокальномКэшеФайлов() работает на клиенте.

ФайлВРабочемКаталоге = ФайлНаходитсяВЛокальномКэшеФайлов(
            ПараметрыВыполнения.ДанныеФайла,
                ПараметрыВыполнения.ДанныеФайла.Версия,
                ПараметрыВыполнения.ПолноеИмяФайла,
                Истина,
                Ложь);
8 hhhh
 
11.08.16
15:49
(7) а что такое ДанныеПодписи? если реквизит формы, то он виден и на клиенте и на сервере. Чего вы нас пуиаете?
9 ИС-2
 
naïve
11.08.16
15:50
(1) ошибайтесь. Можно отключить параметры сеанса отвечающие за RLS
10 Fragster
 
гуру
11.08.16
15:58
(9) за RLS - да. только это не добавит прав на таблицы, на которые нет прав, например. Ну и "временно" отключать параметры сеанса, отвечающие за RLS - это прям такой копроподход, что даже слов нет.