Как отключить предупреждение безопасности при загрузке файла в дополнительные отчеты и обработки?

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

При работе со справочником Дополнительные отчеты и обработки пользователи и администраторы часто сталкиваются с ситуацией: параметр DisableUnsafeActionProtection прописан в файле конфигурации conf.cfg, но при нажатии кнопки Загрузить из файла система всё равно выводит диалоговое окно с предупреждением о безопасности.

При этом, если открывать тот же самый файл обработки через меню Файл — Открыть, никакие предупреждения не выходят. Проанализируем, почему возникает различие в поведении программы и как корректно убрать это диалоговое окно.

Причина различия поведения платформы и конфигурации

Выясним, почему стандартные средства платформы не всегда срабатывают при загрузке файлов через интерфейс типовой конфигурации. Строка DisableUnsafeActionProtection=.* в файле conf.cfg и снятие флага Защита от опасных действий у пользователя в Конфигураторе отключают только интерактивные платформенные предупреждения при прямом открытии файлов.

Когда файл загружается в справочник Дополнительные отчеты и обработки, задействуются механизмы Библиотеки Стандартных Подсистем (БСП) и программный метод Подключить() менеджеров ВнешниеОбработки или ВнешниеОтчеты. Подсистема безопасности БСП самостоятельно проверяет подлинность и параметры защиты, генерируя собственное окно подтверждения, независимо от настроек файла conf.cfg.

Способ 1. Обновление конфигурации или корректировка вызова программного кода

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


Результат = ВнешниеОтчеты.Подключить(АдресВоВременномХранилище, ПараметрыПодключения.ИмяОбъекта, БезопасныйРежим);

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


Если ОбщегоНазначения.ЕстьЗащитаОтОпасныхДействий() Тогда
    ИмяОбработки = ВнешниеОбработки.Подключить(АдресОбработки, , , ОбщегоНазначения.ОписаниеЗащитыБезПредупреждений());
КонецЕсли;

Если вы разрабатываете собственный механизм загрузки или дорабатываете конфигурацию, используйте объект ОписаниеЗащитыОтОпасныхДействий и передавайте его в метод Подключить():


ОписаниеЗащиты = Новый ОписаниеЗащитыОтОпасныхДействий;
ОписаниеЗащиты.ПредупреждатьОбОпасныхДействиях = Ложь;

ИмяМодуля = ВнешниеОбработки.Подключить(ПутьКФайлу, , Ложь, ОписаниеЗащиты);

Способ 2. Назначение ролей и профилей БСП

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

  1. Перейдем в раздел административных настроек пользователей и групп доступа.
  2. Назначим пользователю профиль или роль ОткрытиеВнешнихОтчетовИОбработок (Открытие внешних отчетов и обработок).
  3. Проверим загрузку файла — при наличии данной роли подсистема безопасности БСП перестает запрашивать интерактивное подтверждение.

Способ 3. Программное отключение защиты для пользователей ИБ

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


Для Каждого ТекущийПользователь Из ПользователиИнформационнойБазы.ПолучитьПользователей() Цикл
    ТекущийПользователь.ЗащитаОтОпасныхДействий.ПредупреждатьОбОпасныхДействиях = Ложь;
    ТекущийПользователь.Записать();
КонецЦикла;

Важные особенности безопасного режима

Обратим внимание на разграничение понятий Защита от опасных действий и Безопасный режим. Отключение интерактивного предупреждения о безопасности не отменяет ограничений безопасного режима платформы.

Если при подключении внешнего отчета или обработки установлен флаг БезопасныйРежим = Истина, обработка не сможет выполнять следующие операции:

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

← На главную