Глобальный контекст.УстановитьБезопасныйРежим

Методы · SetSafeMode

В файловом варианте информационной базы или на сервере в клиент-серверном варианте информационной базы включает или выключает безопасный режим исполнения кода. В безопасном режиме: игнорируется привилегированный режим; запрещены внешние по отношению к платформе 1С:Предприятие действия: операции с COM-объектами; загрузка и подключение внешних компонентов; запуск внешних приложений и команд операционной системы; доступ к файловой системе; доступ к Интернету. В клиент-серверном варианте при выполнении на клиенте данный метод не выполняет никаких действий. Первое выполнение метода с любомым значением параметра, кроме Ложь, в файловом варианте информационной базы или на сервере в клиент-серверном варианте информационной базы включает безопасный режим. Для явного выключения безопасного режима необходимо внутри процедуры или функции, в которой он был включен, вызвать метод с параметром Ложь столько же раз, сколько раз в этой же процедуре или функции был вызван метод с параметром Истина или Строка. Если этого сделано не было, то при возврате из процедуры/функции, в которой был включен безопасный режим, он будет выключен автоматически (неявно). Если в процедуре или функции вызовов метода с параметром Ложь сделано больше, чем вызовов с параметром Истина или Строка, то будет вызвано исключение.

Синтаксис

УстановитьБезопасныйРежим(<БезопасныйРежим>)
Полное описание, параметры и ограничения

Глобальный контекст.УстановитьБезопасныйРежим (Global context.SetSafeMode)

Глобальный контекст (Global context)

УстановитьБезопасныйРежим (SetSafeMode)

Доступен, начиная с версии 8.2.

Синтаксис:
УстановитьБезопасныйРежим(<БезопасныйРежим>)
Параметры:

<БезопасныйРежим> (обязательный)
Тип: Булево, Строка.
Определяет, будет ли включен безопасный режим:
Строка - имя профиля безопасности. Включить режим и назначить профиль безопасности. Может быть использовано имя только того профиля, у которого свойство SafeModeProfile установлено в значение Истина. Если безопасный режим уже включен, то повторный вызов метода с именем другого профиля не изменит текущий профиль безопасности;

Истина - включить режим без указания конкретного профиля безопасности;

Ложь - выключить режим.
Строка - имя профиля безопасности. Включить режим и назначить профиль безопасности. Может быть использовано имя только того профиля, у которого свойство SafeModeProfile установлено в значение Истина. Если безопасный режим уже включен, то повторный вызов метода с именем другого профиля не изменит текущий профиль безопасности;
Истина - включить режим без указания конкретного профиля безопасности;
Ложь - выключить режим.

Описание:

В файловом варианте информационной базы или на сервере в клиент-серверном варианте информационной базы включает или выключает безопасный режим исполнения кода. В безопасном режиме:
игнорируется привилегированный режим;

запрещены внешние по отношению к платформе 1С:Предприятие действия:
операции с COM-объектами;

загрузка и подключение внешних компонентов;

запуск внешних приложений и команд операционной системы;

доступ к файловой системе;

доступ к Интернету.

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

Доступность:

Сервер, толстый клиент, внешнее соединение.

См. также:
Глобальный контекст, метод БезопасныйРежим

Использование в версии:

Доступен, начиная с версии 8.2.

Методическая информация

Практические примеры

Выполнить собственный расчет в безопасном режиме

Включаем безопасный режим, выполняем только арифметику и снимаем собственное включение.

Где и как запускать

Обычный сервер 1С; также указанные глобальные административные методы могут быть доступны толстому клиенту и внешнему соединению.

Подготовка

  1. Вставьте блок в модуль собственной управляемой формы. Клиентскую процедуру вызовите из обработчика своей кнопки; серверную — через собственный серверный обработчик команды. Специальное место вставки указано отдельно.

  2. Только собственная учебная копия базы с необходимыми правами. Не выполняйте административный пример в рабочей базе.

  3. Блок выполняется на сервере. В нем нет файлов, сети, COM, внешних компонентов или запуска процессов.

&НаСервереБезКонтекста
Процедура ПосчитатьБезВнешнихДействий()
    УстановитьБезопасныйРежим(Истина);
    Сумма = 50 + 75;
    Сообщить("Учебная сумма: " + Строка(Сумма));
    УстановитьБезопасныйРежим(Ложь);
КонецПроцедуры

Разбор по шагам

  1. Включите режим.

  2. Выполните локальный расчет.

  3. Снимите свое включение нормальным парным вызовом.

Как проверить результат

  1. Результат вычисляется как 50 + 75.

  2. Пример не обещает отключить внешние ограничения безопасного сеанса.

Ожидаемый результат

Получена сумма 125 внутри включенного безопасного режима.

На что обратить внимание

  1. Безопасный режим ограничивает внешние действия и игнорирует привилегированный режим. На клиенте клиент-серверной базы установка может не выполнять действий.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.