Имя: Пароль:
1C
 
Опять и снова ПривилегированныйРежим... отсутствует
0 bolobol
 
06.08.19
15:14
День добрый!

Есть код:

УстановитьПривилегированныйРежим(Истина);
ИмяОбработки = ДополнительныеОтчетыИОбработкиВызовСервера.ПодключитьВнешнююОбработку(СсылкаНаЭлСправочника); // тут отчёт подключается с БезопасныйРежим = Ложь
ВнОтчёт= ВнешниеОтчеты.Создать(ИмяОбработки, Ложь, Ложь);
ВнОтчёт.СформироватьНаСервере(Результат); // внутри процедуры исчезает ПривилегированныйРежим и установка его в Истина - не имеет эффекта: ПривилегированныйРежим() возвращает Ложь

Что за дела?

Хелп!

Спасибо!
1 lodger
 
06.08.19
15:19
а ты в каком контексте?
Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).
2 Вафель
 
06.08.19
15:20
во внешней обработке нельзя никак
3 bolobol
 
06.08.19
15:25
Пропадает и не устанавливается привилегированный режим при вычислении выражения на закладке СКД Вычисляемые поля. Модуль - серверный
4 lodger
 
06.08.19
15:31
(3) в свойствах скд при создании можно разрешить модули

ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных,, ДанныеРасшифровкиКонсоли, Истина);

Инициализировать(<Макет>, <ВнешниеНаборыДанных>, <ДанныеРасшифровки>, <ВозможностьИспользованияВнешнихФункций>)
5 bolobol
 
06.08.19
16:07
(4) Это именно так и доступно. Странно, а иначе бы вызов функции не происходил бы? А как же автоматически работающие отчёты функции вызывают тогда, те что без строчки кода?
6 Вафель
 
06.08.19
16:24
(5) нет таких
7 fisher
 
06.08.19
17:00
Не совсем понял, как тут пересекаются привилегированный режим и безопасный.
8 fisher
 
06.08.19
17:02
Но как уже сказали, установить привилегированный режим из внешней обработки невозможно - это была бы дырища в безопасности.
9 fisher
 
06.08.19
17:07
(3) А как он должен устанавливаться? Если в выражении вызывается процедура серверного общего модуля, в которой устанавливается привилегированный режим, то по-идее все должно работать.
10 Вафель
 
06.08.19
17:08
(7) безопасный режим не дает включать приелигерованный даже в модулях конфигурации
11 bolobol
 
06.08.19
17:09
Похоже, что с вызываемыми функциями из СКД это не работает, но где б это было написано, чтоб уж точно смириться с этой безысходной мыслью?
12 Вафель
 
06.08.19
17:10
ты где устанавливаешь прив режим? в модулях конфы или в отчете?
13 bolobol
 
06.08.19
17:19
В отчёте - невозможно, там только функции доступны, а Установить... - процедура
14 fisher
 
06.08.19
17:21
(10) То есть, если обработка запущена в безопасном режиме, то я не смогу вызвать функцию общего модуля, которая использует привилегированный режим? Буду знать.
15 Вафель
 
06.08.19
18:41
(14) вызвать можешь, но без прив режима
16 fisher
 
07.08.19
09:14
(15) Жесть. Я бы предпочел, чтобы падало по эксепшну. Обычно установка прив режима в подобных ситуациях - часть бизнес-логики.
17 Cyberhawk
 
07.08.19
09:24
(16) Вот такие пироги
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший