Начиная с версии платформы 1С:Предприятие 8.3.10, разработчики добавили встроенный механизм безопасности. При выполнении операций, которые платформа считает потенциально опасными (открытие внешних обработок и отчетов, запуск команд операционной системы, подключение COM-объектов и внешних компонент), у пользователей начинает возникать диалоговое окно с предупреждением «Защита от опасных действий».
Если пользователи постоянно сталкиваются с этим сообщением и не знают, что выбырать, или если предупреждения блокируют работу фоновых заданий, механику защиты можно настроить или отключить. Проанализируем основные варианты решения этой задачи.
Разберем самый простой и быстрый интерактивный способ отключения предупреждений для индивидуальных учетных записей пользователей.
После этого платформенный диалог защиты перестанет появляться у данного пользователя.
Если пользователей много и снимать флаг вручную для каждого долго, проанализируем способ обхода всех пользователей с помощью кода 1С. Для этого выполним следующий фрагмент кода с правами администратора (например, через внешнюю обработку):
Для Каждого Юзер Из ПользователиИнформационнойБазы.ПолучитьПользователей() Цикл
Юзер.ЗащитаОтОпасныхДействий.ПредупреждатьОбОпасныхДействиях = Ложь;
Юзер.Записать();
КонецЦикла;
Данный код обращается к объекту ПользовательИнформационнойБазы и устанавливает свойство ПредупреждатьОбОпасныхДействиях объекта ЗащитаОтОпасныхДействий в значение Ложь.
Если необходимо отключить проверку защиты от опасных действий сразу для всех баз или пользователей без редактирования списков пользователей ИБ, проанализируем настройку файла conf.cfg.
Файл conf.cfg располагается в каталоге установки платформы (например, C:\Program Files\1cv8\conf\ на Windows или /etc/1cv8/conf/ на Linux). В клиент-серверном режиме настройка вносится в файл conf.cfg на сервере 1С.
Для отключения защиты добавим в файл параметр DisableUnsafeActionProtection:
Чтобы отключить защиту абсолютно для всех баз:
DisableUnsafeActionProtection=.*
Чтобы отключить защиту только для конкретных баз, можно указать регулярное выражение с именами баз через разделитель точки с запятой:
DisableUnsafeActionProtection=buh_prod;test_.*;
Обратите внимание: использование данного параметра отключает встроенную защиту платформы глобально, поэтому применять его стоит обдуманно.
Рассмотрим вариант, когда отключать защиту полностью не требуется, но нужно разрешить выполнение конкретной внешней обработки или расширения.
При программном подключении внешней обработки с помощью метода Подключить() или при записи объекта РасширениеКонфигурации можно передавать параметр безопасности:
ЗащитаОтОпасныхДействий со значением Ложь.Записать() устанавливается свойство ЗащитаОтОпасныхДействий.ПредупреждатьОбОпасныхДействиях = Ложь.При использовании конфигураций на базе БСП (Библиотеки Стандартных Подсистем) рекомендуется подключать доработки через справочник «Дополнительные отчеты и обработки» с использованием профилей безопасности, что позволит сохранить высокий уровень защищенности системы.