Имя: Пароль:
1C
1С v8
самописная конфигурация. как установить безопасный режим в ложь?
,
0 ferry
 
14.03.18
11:59
есть самописная конфигурация. при запуске внешних обработок возникает ошибка установлен безопасный режим. Код
Если БезопасныйРежим() Тогда
    УстановитьБезопасныйРежим(Ложь);
КонецЕсли;  выдает ошибку. Что я делаю не так?
1 FIXXXL
 
14.03.18
12:02
(0) кодом можно ВЫКЛючить только если до этого в этой же процедуре ранее кодом же режим был ВКЛючен
2 ferry
 
14.03.18
12:04
БезопасныйРежим() возвращает истина. кодом он установлен не был.
3 shadow_sw
 
14.03.18
12:04
в конфигураторе у пользователей есть настройка(галочка)
4 ferry
 
14.03.18
12:06
(3) можно поподробнее...какая и где?
5 shadow_sw
 
14.03.18
12:08
6 ferry
 
14.03.18
12:09
упс...забыла написать что 8.2. такой галки нет((
7 Tatitutu
 
14.03.18
12:09
"Защита от опасных действий" или как снять галочку у всех пользователей
http://catalog.mista.ru/public/577219/
8 shadow_sw
 
14.03.18
12:10
(6) тогда  - что за ошибка?
9 ferry
 
14.03.18
12:12
установлен безопасный режим. выполнение операции запрещено
10 ferry
 
14.03.18
12:13
вот код который выдает такую ошибку
ПутьНаСервере = КаталогВременныхФайлов()+ "/loaddetali.xml";     
ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресВременногоХранилища)    ДвоичныеДанные.записать(ПутьНаСервере);
последняя строчка валится.
11 Tatitutu
 
14.03.18
12:18
КаталогВременныхФайлов() = "C:\Users\ferry\AppData\Local\Temp\";

ПутьНаСервере = КаталогВременныхФайлов()+ "/loaddetali.xml";  

в твоем случае

"C:\Users\ferry\AppData\Local\Temp\/loaddetali.xml"

ничего не смущает ?
12 shadow_sw
 
14.03.18
12:19
РегистрационныеДанные = Новый Структура;
РегистрационныеДанные.Вставить("Наименование", "Тест 8.2.");
РегистрационныеДанные.Вставить("БезопасныйРежим", Ложь);
РегистрационныеДанные.Вставить("Версия", "1.0");
13 ferry
 
14.03.18
12:20
у нас серверная база...путь выглядит так
/data/tmp/loaddetali.xml
14 ferry
 
14.03.18
12:20
(12) а как дальше использовать эти РегистрационныеДанные? и где написать этот код?
15 shadow_sw
 
14.03.18
12:24
(14) В модуле объекта
Функция СведенияОВнешнейОбработке() Экспорт
16 hhhh
 
14.03.18
12:26
(14) просто у пользователя снимите эту галку "безопасный режим", зачем вам какую-то программу писать.
17 ferry
 
14.03.18
12:27
(15) а обратиться к ней где?
18 ferry
 
14.03.18
12:27
(16) где взять эту галку если ее нет?
19 FIXXXL
 
14.03.18
12:38
(2) кодом его просто так ВЫКЛючить нельзя
20 hhhh
 
14.03.18
12:39
(18) не прочитал про 8.2.
21 ferry
 
14.03.18
12:41
(19) то есть проблема не решается, я правильно понимаю?
22 hhhh
 
14.03.18
12:49
(21) УстановитьБезопасныйРежим(Ложь); надо писать в той же процедуре, где было УстановитьБезопасныйРежим(Истина)

то есть найдите место где он включился. И там выключите
23 Fragster
 
гуру
14.03.18
12:56
если самописька на БСП, то надо в процедуре СвдеенияОВнешнейОбработке (или как там её) указать, чтобы она подключалась в небезопасном режиме
24 ferry
 
14.03.18
13:12
(22) во всей конфигурации нет ни одного места где УстановитьБезопасныйРежим(Истина)...и в обработке тоже
25 Cyberhawk
 
14.03.18
13:16
ИТС никто не удосужился прочитать что ли - про флажок дрочат-разглагольствуют
26 ferry
 
14.03.18
13:17
(25) может ссылочку подскажете?
27 hhhh
 
14.03.18
13:21
(24) может быть УстановитьБезопасныйРежим(траляля) ищите серьезнее
28 aka AMIGO
 
14.03.18
13:22
Вот тут что-то есть: https://forum.infostart.ru/forum9/topic39247/
29 DmitrO
 
14.03.18
13:23
По умолчанию, платформа открывает внешние обработки в безопасном режиме при отсутствии адмнских прав у пользователя.
30 DmitrO
 
14.03.18
13:24
(29)..вроде бы так )
31 DmitrO
 
14.03.18
13:26
++ флажок у пользователя "Защита от опасных действий" не имеет к этому явлению (0) никакого отношения.
32 DmitrO
 
14.03.18
13:28
Если код уже выполняется в безопасном режиме, то, ясен день, выключить его уже нельзя. Иначе это было бы глупо в принципе.
33 Cyberhawk
 
14.03.18
13:28
34 ferry
 
14.03.18
13:29
(33) отличная ссылка...огромное спасибо
35 ferry
 
14.03.18
13:39
(32) да, наверное в этом дело...спасибо
36 DmitrO
 
14.03.18
14:18
(35)конечно в этом
иначе бы метод назывался не УстановитьБезопасныйРежим, а УстановитьБезопасныйНоЕслиОченьНадоТоЛадноРежим
:)
37 ferry
 
16.03.18
12:11
(36) ну вот если с привилегированным режим аналог проводить то не совсем очевидно.))
38 FIXXXL
 
16.03.18
12:18
(37) да ну?
СП говорит:
Если в процедуре или функции вызовов метода с параметром Ложь сделано больше, чем вызовов с параметром Истина, то будет вызвано исключение.
39 ferry
 
16.03.18
12:27
(38) по идее при запуске установлена истина, почему это не считается как один раз?
40 FIXXXL
 
16.03.18
12:50
(39) потому что "Вкл-Выкл" живет только в контексте отдельно взятой процедуры-функции

СП
Для явного выключения привилегированного режима необходимо внутри процедуры или функции, в которой он был включен, вызвать метод с параметром Ложь столько же раз, сколько раз в этой же процедуре или функции был вызван метод с параметром Истина.
Если этого сделано не было, то при возврате из процедуры/функции, в которой был включен привилегированный режим, он будет выключен автоматически (неявно).
Если в процедуре или функции вызовов метода с параметром Ложь сделано больше, чем вызовов с параметром Истина, то будет вызвано исключение.
Независимо от того, куда вы едете — это в гору и против ветра!