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

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

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

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

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

  1. Логика встроенных сервисов конфигурации. В конфигурациях на обычных формах (таких как БП 2.0) проверка доступности обновлений или взаимодействие с сервисами Интернет-поддержки реализованы через извлечение специальной служебной обработки из общего макета конфигурации. Эта обработка сохраняется во временный каталог операционной системы (папку %TEMP%) под динамическим случайным именем, после чего вызывается через метод ВнешниеОбработки.Создать().
  2. Механизм защиты от опасных действий. Начиная с версии платформы 8.3.9, разработчики 1С внедрили механизм «Защита от опасных действий». Платформа расценивает запуск внешних обработок (.epf), отчетов (.erf) и подключение внешних компонент как потенциальную угрозу и требует подтверждения от пользователя.
  3. Постоянная смена имени файла. Так как при каждом новом старте информационной базы служебный файл создается заново с уникальным именем во временной директории, платформа не может привязать разовое пользовательское согласие к хешу или пути файла и задает вопрос повторно при каждом запуске.
  4. Разница между базами данных. Если в одних базах окно появляется, а в других нет, это означает, что в части информационных баз отключена автоматическая проверка обновлений при старте или уже отключена защита от опасных действий для текущего пользователя.

Почему в Конфигураторе отсутствует флажок «Защита от опасных действий»

Обычно для отключения предупреждений достаточно зайти в меню Администрирование → Пользователи в Конфигураторе и в свойствах учетной записи снять флаг Защита от опасных действий. Однако в конфигурациях уровня БП 2.0 этот элемент управления в интерфейсе Конфигуратора отсутствует.

Выясним причину: видимость этого флага в диалоге свойств пользователя напрямую зависит от свойства конфигурации Режим совместимости. Если в конфигурации установлен режим совместимости с версиями ниже 8.3.9 (например, «Версия 8.2.13» или «Версия 8.3.8»), Конфигуратор скрывает данную опцию из визуального интерфейса, хотя сама работающая платформа 8.3 продолжает применять правила безопасности.

Ниже разберем несколько вариантов решения этой проблемы.

Способ 1. Отключение проверки обновлений в пользовательском режиме

Если появление окна связано именно с регламентной проверкой обновлений конфигурации через Интернет, самый простой способ без вмешательства в системные файлы — отключить эту опцию в настройках программы:

  1. Запустим «1С:Предприятие» в обычном пользовательском режиме.
  2. Перейдем в главное меню: Сервис → Интернет-поддержка пользователей → Автоматическая проверка обновлений (или Настройка проверки обновлений).
  3. Снимем флажок Выполнять проверку обновлений при запуске программы.
  4. Нажмем кнопку сохранения настроек и перезапустим информационную базу для проверки.

Способ 2. Отключение защиты через конфигурационный файл платформы conf.cfg

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

  1. Найдем файл conf.cfg. По умолчанию он располагается в каталоге установки 1С: C:\Program Files\1cv8\conf\ (для 64-битной платформы) или C:\Program Files (x86)\1cv8\conf\ (для 32-битной платформы).
  2. Откроем файл в текстовом редакторе с правами администратора.
  3. Добавим строку, отключающую предупреждения:
    Для полного отключения проверки во всех базах: DisableUnsafeActionProtection=.* Для отключения проверки только в определенных файловых базах по маске пути: DisableUnsafeActionProtection=File="D:\\Bases\\.*";
  4. Сохраним изменения в файле. При клиент-серверном варианте работы аналогичную настройку рекомендуется выполнить как на клиентских рабочих станциях, так и на сервере 1С:Предприятия.

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

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


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

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

Способ 4. Корректировка кода в доработанной конфигурации

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

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


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

ОбработкаОбъект = ВнешниеОбработки.Создать(ПутьКФайлу, Ложь, Защита);

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

← На главную