Начиная с версии платформы 1С:Предприятие 8.3.9, разработчики и пользователи сталкиваются с ситуацией, когда система при каждом запуске внешних отчетов, обработок или подключении оборудования запрашивает подтверждение на выполнение потенциально опасных действий. Данная функция срабатывает независимо от разрядности клиента (как в 32-битных, так и в 64-битных клиентах) и предназначена для защиты системы от несанкционированного запуска вредоносного кода.
Выясним причину такого поведения системы и разберем по шагам все доступные способы отключения или настройки этого механизма.
Механизм «Защита от опасных действий» запрашивает подтверждение пользователя при выполнении следующих операций:
COM-объектов (например, интеграция с MS Excel или работа с торговым оборудованием).Рассмотрим подробнее варианты решения данной задачи: от индивидуальной настройки пользователя до централизованного отключения на уровне всей системы.
Проанализируем самый простой способ отключения защиты для конкретного пользователя информационной базы:
Если пользователей в базе много, снимать флажок вручную для каждого из них долго и неудобно. Напишем и выполним программную обработку, которая зафиксирует отключение защиты для всего списка пользователей информационной базы.
Посмотрим на пример кода, который решает эту задачу:
Толпы = ПользователиИнформационнойБазы.ПолучитьПользователей();
Для Каждого Пользователь из Толпы Цикл
Пользователь.ЗащитаОтОпасныхДействий.ПредупреждатьОбОпасныхДействиях = Ложь;
Пользователь.Записать();
КонецЦикла;
В этом фрагменте мы получаем массив всех пользователей объекта ПользователиИнформационнойБазы, обращаемся к свойству ЗащитаОтОпасныхДействий и меняем значение флага ПредупреждатьОбОпасныхДействиях на Ложь.
Разберем вариант, когда требуется отключить механизм защиты на уровне платформы для одной или сразу всех информационных баз, не меняя настройки каждого пользователя. Для этого применяется конфигурационный файл conf.cfg.
Файл conf.cfg расположен в каталоге установки платформы (подкаталог conf). Чтобы отключить предупреждения, внесем в него параметр DisableUnsafeActionProtection:
DisableUnsafeActionProtection=.*DisableUnsafeActionProtection=test_.*;db_prod;Важный момент: в клиент-серверном режиме работы, а также для корректного выполнения фоновых заданий строка DisableUnsafeActionProtection должна быть прописана в файле conf.cfg как на клиентских рабочих станциях, так и на сервере 1С:Предприятия.
Если вы разрабатываете конфигурацию или внешние модули и хотите безопасно подключать файлы без запросов пользователю, используйте программные параметры платформы:
Подключить() менеджеров ВнешниеОбработки или ВнешниеОтчеты передавайте параметр ЗащитаОтОпасныхДействий.РасширениеКонфигурации устанавливайте логическое значение для свойства ЗащитаОтОпасныхДействий перед вызовом метода Записать().Платформа 1С:Предприятие считает защиту отключенной и не выдает предупреждающих окон, если выполняется хотя бы одно из следующих условий:
DisableUnsafeActionProtection в файле conf.cfg.