Как убрать предупреждение безопасности при запуске внешних обработок и печатных форм в 1С

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

При работе в современных конфигурациях на платформе 1С:Предприятие 8.3 (таких как УТ 11.5, ERP или КА) разработчики и пользователи часто сталкиваются с назойливым окном: «Предупреждение безопасности. Открывается внешняя обработка...». Это механизм защиты от опасных действий, внедренный фирмой 1С для предотвращения запуска вредоносного кода. Однако в процессе разработки и отладки, когда файл меняется десятки раз в час, это окно существенно замедляет работу. Рассмотрим подробнее, как работает этот механизм и какими способами можно отключить или обойти это предупреждение.

Почему стандартный программный метод не работает

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


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

Выясним причину, почему этот код не сработает. Во-первых, если бы подозрительный код мог сам отключать проверку безопасности, смысл этой защиты полностью бы терялся. Платформа блокирует изменение свойств объекта ПользовательИнформационнойБазы из кода, запущенного в контексте «подозрительной» обработки. Во-вторых, настройки защиты пользователя применяются только в момент установки сеанса. Даже если изменить флаг в базе данных, изменения вступят в силу только после перезапуска 1С.

Способ 1. Отключение защиты в Конфигураторе (для разработчиков)

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

  1. Запустите Конфигуратор от имени администратора.
  2. Откройте список пользователей через меню Администрирование — Пользователи.
  3. Найдите нужного пользователя в списке и откройте его карточку.
  4. На закладке Основные найдите флажок Защита от опасных действий.
  5. Снимите этот флажок и сохраните изменения.

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

Способ 2. Регистрация в справочнике «Дополнительные отчеты и обработки»

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

Когда обработка запускается через этот справочник, она считается «доверенной». Рассмотрим, как правильно подготовить код модуля объекта обработки для регистрации:


Функция СведенияОВнешнейОбработке() Экспорт
    ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1");
    
    // Указываем тип (ПечатнаяФорма, ДополнительнаяОбработка и т.д.)
    ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиПечатнаяФорма();
    ПараметрыРегистрации.Наименование = "Моя внешняя печатная форма";
    
    // Ключевой параметр для доступа к ресурсам
    ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
    
    // Добавление команд и прочая логика
    // ...
    
    Возврат ПараметрыРегистрации;
КонецФункции

Установка параметра БезопасныйРежим = Ложь позволяет обработке выполнять действия, которые обычно запрещены (например, работа с файловой системой или COM-объектами). При загрузке такой обработки в базу администратор один раз нажимает кнопку «Настроить разрешения», подтверждая доверие этому коду, и в дальнейшем пользователи работают без лишних окон.

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

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

Файл обычно располагается в каталоге C:\Program Files\1cv8\conf (или в папке конкретной версии платформы). Откройте его блокнотом и добавьте следующую строку:

DisableModulesQuestioning=1

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

Способ 4. Понимание механизма хеширования

Выясним причину, почему вопрос безопасности иногда повторяется, даже если вы один раз уже нажали «Да». Платформа 1С запоминает ваш выбор не для имени файла, а для его хеш-суммы (уникального отпечатка содержимого).

Рассмотрим процесс:

  1. Вы открываете обработку Test.epf.
  2. Нажимаете «Да» в окне предупреждения.
  3. Платформа сохраняет хеш этого файла в локальном кэше профиля пользователя.
  4. Вы меняете одну букву в коде и сохраняете файл.
  5. Хеш файла меняется. Платформа видит «новый» неизвестный файл и снова задает вопрос.

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

Дополнительные рекомендации по безопасности

Если ваша обработка обращается к внешним сайтам (например, для генерации QR-кодов или получения курсов валют), платформа может выдавать предупреждение о доступе к интернет-ресурсу. Чтобы этого избежать, можно настроить список доверенных сайтов.

В файле conf.cfg можно прописать параметр TrustedSites, указав маски разрешенных адресов. Это позволит сохранить общий высокий уровень безопасности, разрешив обращения только к проверенным API.

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

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

← На главную