Как отключить предупреждение безопасности при запуске внешней обработки по расписанию в 1С?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При настройке автоматического запуска внешних обработок (файлов .epf) по расписанию разберем распространенную ситуацию: фоновое или регламентное задание завершается ошибкой или зависает, а в журнале регистрации фиксируется сообщение Предупреждение безопасности с запросом подтверждения действия пользователя.

Выясним причину такого поведения платформы 1С:Предприятие и проанализируем основные способы устранения этой проблемы.

Почему возникает предупреждение безопасности при фоновом выполнении?

Начиная с версий платформы 1С 8.3.9 и 8.3.10, в платформу встроен механизм Защита от опасных действий. Этот механизм перехватывает попытки выполнения потенциально небезопасных операций, таких как подключение внешних обработок, вызов команд операционной системы, доступ к файловой системе или использование COM-объектов.

Когда обработка запускается пользователем интерактивно, на экране появляется диалоговое окно с вопросом Разрешить открывать данный файл?. Однако фоновые и регламентные задания выполняются на сервере в неинтерактивном режиме. В этом контексте некому нажать кнопку «Разрешить», из-за чего процесс блокируется или завершается аварийно.

Рассмотрим подробно варианты решения данной задачи в зависимости от архитектуры вашей системы.

Способ 1. Снятие защиты в настройках пользователя и привязка его к регламентному заданию

Разберем по шагам наиболее быстрый и стандартный способ решения проблемы без изменения конфигурационных файлов сервера.

  1. Откроем информационную базу в режиме Конфигуратор.
  2. Перейдем в меню Администрирование > Пользователи.
  3. Найдем или создадим служебного пользователя, под которым должно исполняться регламентное задание (например, Robot_Scheduler).
  4. В карточке пользователя найдем флажок Защита от опасных действий и снимем его.
  5. Сохраним изменения в списке пользователей.
  6. Откроем базу в режиме 1С:Предприятие и используем обработку Консоль регламентных заданий.
  7. В свойствах нужного регламентного задания укажем ранее настроенного пользователя 1С, у которого отключена защита от опасных действий.

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

Способ 2. Глобальное отключение защиты через файл conf.cfg на сервере

Проанализируем вариант, когда требуется отключить защиту от опасных действий для всех фоновых заданий или конкретных баз на уровне сервера 1С:Предприятие.

Для этого отредактируем файл конфигурации платформы conf.cfg, расположенный в каталоге установки платформы на сервере (например, C:\Program Files\1cv8\conf\ или /opt/1cv8/x86_64/8.3.X.X/conf/):

  1. Откроем файл conf.cfg в текстовом редакторе.
  2. Добавим строку с параметром DisableUnsafeActionProtection.

Если требуется полностью отключить защиту для всех информационных баз сервера:

DisableUnsafeActionProtection=.*

Если требуется отключить защиту только для баз, имя которых соответствует определенной регулярной маске:

DisableUnsafeActionProtection=my_production_base.*

Обратим внимание, что редактировать conf.cfg необходимо именно на сервере приложений 1С, так как регламентные задания исполняются в контексте рабочего процесса rphost.

Способ 3. Программное отключение безопасного режима и защиты при подключении

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

При вызове метода ВнешниеОбработки.Подключить() необходимо явно передать значение Ложь в параметры, отвечающие за безопасный режим и защиту от опасных действий:


// Отключаем безопасный режим и защиту от опасных действий программно
ПутьКФайлу = "C:\Services\MyExternalDataProcessor.epf";
ИмяПодключеннойОбработки = ВнешниеОбработки.Подключить(ПутьКФайлу, , Ложь, Ложь);

// Создаем экземпляр обработки
ОбработкаОбъект = ВнешниеОбработки.Создать(ИмяПодключеннойОбработки, Ложь);
ОбработкаОбъект.ВыполнитьКоманду();

Важно различать понятия ЗащитаОтОпасныхДействий и БезопасныйРежим. Даже если отключить интерактивные предупреждения, включенный безопасный режим (БезопасныйРежим = Истина) все равно заблокирует работу с файлами на диске, COM-объектами или внешними библиотеками.

Способ 4. Использование подсистемы «Дополнительные отчеты и обработки» (БСП)

Если конфигурация построена на базе Библиотеки Стандартных Подсистем (БСП), рассмотрим стандартный механизм подключения внешних обработок:

  1. Перейдем в раздел Администрирование > Печатные формы, отчеты и обработки > Дополнительные отчеты и обработки.
  2. Загрузим файл внешней обработки в справочник.
  3. В карточке обработки переведем переключатель Безопасный режим в положение Отключен (или Нет).
  4. Настроим встроенное расписание выполнения непосредственно в карточке дополнительной обработки.

При таком подходе платформа и БСП самостоятельно управляют правами и безопасностью, не запрашивая интерактивных подтверждений при срабатывании расписания.

← На главную