При программном вызове внешних исполняемых файлов (например, консольных утилит для обработки PDF, архиваторов или скриптов) с помощью методов ЗапуститьПриложение или КомандаСистемы платформа 1С:Предприятие может выдавать интерактивное окно с вопросом: «Предупреждение безопасности. Открывается... Это действие может быть опасным. Продолжить?».
Разберем, почему появляется такое окно, как работает механизм защиты платформы и какими способами можно отключить данное предупреждение для бесперебойной автоматической работы алгоритмов.
Начиная с версии платформы 8.3.9, в 1С:Предприятие встроен специальный механизм «Защита от опасных действий». Его главная задача — защитить рабочее место пользователя и серверную среду от несанкционированного выполнения потенциально вредоносного кода.
Система автоматически перехватывает следующие события:
.exe, .bat, .cmd, .sh и т. д.)..epf, .erf)..cfe).Если код выполняется в автоматическом режиме без участия человека, интерактивный диалог блокирует выполнение алгоритма. Рассмотрим основные способы отключения этого предупреждения.
Самый простой и быстрый вариант для конкретного пользователя информационной базы — отключить вывод диалогового окна через интерфейс программы. Разберем по шагам, как это сделать:
После сохранения настроек запуск внешних приложений под учетной записью данного пользователя будет происходить в фоновом режиме без выдачи запроса подтверждения.
Если в системе работает множество пользователей или запуск утилит выполняется на уровне сервера, индивидуальная настройка каждого пользователя может быть неудобной. В таких ситуациях рассмотрим отключение защиты через общесистемный файл конфигурации conf.cfg.
В файл conf.cfg добавляется специальная директива DisableUnsafeActionProtection, в которой задается регулярное выражение (маска строки соединения с базой).
Посмотрим на пример настройки для полного отключения предупреждения во всех информационных базах:
DisableUnsafeActionProtection=.*
Если необходимо отключить защиту только для конкретной серверной базы, укажем маску строки соединения явно:
DisableUnsafeActionProtection=Srvr="server_name";Ref="base_name";
Важные нюансы настройки conf.cfg:
conf.cfg можно редактировать в каталоге конкретной версии (например, C:\Program Files\1cv8\8.3.XX.XXXX\bin\conf\conf.cfg) или в общесистемном каталоге настроек (C:\Program Files\1cv8\conf\conf.cfg). Рекомендуется использовать общесистемный каталог, чтобы настройки не терялись при обновлении релиза платформы.Проанализируем программные средства управления защитой. Мы можем централизованно отключить флаг предупреждения у списка пользователей через встроенный язык 1С.
Посмотрим на пример кода:
ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоИмени("СервисныйПользователь");
Если ПользовательИБ <> Неопределено Тогда
ПользовательИБ.ЗащитаОтОпасныхДействий.ПредупреждатьОбОпасныхДействиях = Ложь;
ПользовательИБ.Записать();
КонецЕсли;
При динамическом подключении внешних обработок метод ВнешниеОбработки.Подключить() также принимает параметр ЗащитаОтОпасныхДействий, что позволяет явно управлять безопасным режимом выполнения стороннего кода.
Если задача заключается в регулярной системной обработке файлов (например, объединение PDF-файлов или распаковка архивов), рассмотрим архитектурные альтернативы:
ДокументPDF, ЧтениеPDF и ЗаписьPDF. Они позволяют объединять и разбирать PDF-документы прямо в памяти 1С без вызова сторонних .exe-файлов.Рекомендация по безопасности: Не отключайте защиту от опасных действий повсеместно (директивой .*) на рабочих местах обычных пользователей без строгой необходимости, так как это повышает риск выполнения вредоносного кода при случайном открытии непроверенных файлов.