Работа в безопасном режиме
Для установки безопасного режима исполнения кода в файловом варианте информационной базы или на сервере в клиент-серверном варианте информационной базы используется метод глобального контекста :
УстановитьБезопасныйРежим(Истина)
Если в процедуре или функции вызовов метода с параметром Ложь сделано больше, чем вызовов с параметром Истина , то будет вызвано исключение. Поэтому, перед включения безопасного режима нужно проверить был ли раньше включен:
Если БезопасныйРежим() = Ложь Тогда
УстановитьБезопасныйРежим(Истина);
КонецЕсли;
Особенность работы в безопасном режиме
- Игнорируется привилегированный режим. Т.е. не действует установка :
УстановитьПривилегированныйРежим(Истина);
Как правило привилегированный режим устанавливается программным путем, когда нужно отключить проверку прав пользователя, чтобы ускорить работу с данными от лица пользователя и при этом не нарушать установленные для него права доступа.
2. Запрещены все внешние запуски по отношению к платформе 1С:Предприятие, например:
- КомандаСистемы(<СтрокаКоманды>, <ТекущийКаталог>) – Устанавливает текущий каталог на время выполнения команды.
- ЗапуститьПриложение(<СтрокаКоманды>, <ТекущийКаталог>, <ДождатьсяЗавершения>, <КодВозврата>) – Выполняет запуск внешнего приложения либо открытие файла с использованием ассоциированного с ним приложения.
- НачатьЗапускПриложения(<ОписаниеОповещения>, <СтрокаКоманды>, <ТекущийКаталог>, <ДождатьсяЗавершения>) – Начинает запуск внешнего приложения либо открытие файла с использованием ассоциированного с ним приложения.
- ПерейтиПоНавигационнойСсылке(<НавигационнаяСсылка>) – Выполняет переход по ссылке так, как если бы пользователь выполнил интерактивную вспомогательную команду “Перейти по ссылке …”.
- Использование COM объектов “Wscript.Shell” и “Shell.Application“. Не доступны следующие объекты
WshShell = Новый COMОбъект("WScript.Shell"); AppShell = Новый COMОбъект("Shell.Application");
3. Запрещен доступ к файловой системе и при использовании Библиотеки стандартных подсистем нельзя использовать программный модуль ФайловаяСистемаКлиент, потому, что не работают следующие процедуры:
- ФайловаяСистемаКлиент.ОткрытьПроводник.
- ФайловаяСистемаКлиент.ОткрытьФайл
- ФайловаяСистемаКлиент.ОткрытьНавигационнуюСсылку
- ФайловаяСистемаКлиент.ЗапуститьПрограмму