Почему в платформе 1С 8.3.27 появляется предупреждение безопасности при открытии HTML и как его отключить?

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

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

Выясним причину изменений в поведении платформы

Проанализируем архитектурные изменения релиза 8.3.27. До этой версии встроенный элемент управления ПолеHTMLДокумента не контролировался механизмом Защита от опасных действий. Начиная с версии 8.3.27, разработчики платформы расширили действие защитного контура на открытие URL-адресов и локальных файлов через поле HTML-документа. Если у учетной записи пользователя включена данная защита, любое взаимодействие с подобными элементами вызывает окно предупреждения.

Кроме того, флаг защиты может активироваться автоматически в следующих случаях:

  1. При создании новых учетных записей пользователей в режиме Конфигуратора или через администрирование информационной базы.
  2. При повышении режима совместимости конфигурации в дереве метаданных до версии 8.3.8 и выше.

Рассмотрим также важную особенность интерактивного выбора: если в окне предупреждения нажать Да, платформа сохранит положительное решение в разрезе текущего пользователя и информационной базы, и диалог для этого ресурса больше появляться не будет. Однако нажатие кнопки Нет системой намеренно не запоминается, поэтому при каждом повторном открытии страницы предупреждение будет появляться снова.

Способ 1. Отключение защиты в карточке пользователя

Если с проблемой столкнулся конкретный специалист (например, программист, работающий с внешними инструментами разработчика), разберем самый простой вариант исправления через режим Конфигуратор:

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

После перезапуска пользовательского сеанса предупреждения при открытии HTML-форм перестанут появляться.

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

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


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

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

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

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

  1. Найдем конфигурационный файл conf.cfg. На стороне клиента или сервера он расположен в каталоге установки платформы (в подпапке conf).
  2. Откроем файл в любом текстовом редакторе с правами администратора.
  3. Добавим параметр DisableUnsafeActionProtection со списком шаблонов строк подключения баз:

DisableUnsafeActionProtection=.*

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

Способ 4. Программное управление защитой в коде конфигурации

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

  1. Метод УстановитьОтключениеЗащитыОтОпасныхДействий(<Значение>) — принимает значение Истина или Ложь, включая или выключая проверку в рамках текущего контекста выполнения.
  2. Метод ПолучитьОтключениеЗащитыОтОпасныхДействий() — позволяет узнать текущее состояние флага программного отключения.

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

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

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

← На главную