Механизм защиты от опасных действий: когда платформа предупреждает и как этим управлять
Содержание
Защита от опасных действий — это механизм платформы 1С:Предприятие 8.3, а не отдельное расширение конфигурации . Он включается флажком «Защита от опасных действий» в карточке пользователя информационной базы и заставляет программу спрашивать подтверждение, прежде чем открыть внешнюю обработку , внешний отчёт или подключить расширение , работающее без безопасного режима.
Типичная ситуация: бухгалтер получил от программиста файл .epf с обработкой для загрузки банковской выписки, открыл его через Файл → Открыть и увидел окно «Предупреждение безопасности». Это не ошибка и не вирус в базе. Платформа честно предупреждает: внешний код получит те же права, что и сам пользователь, и может изменить или удалить данные.
Как устроен механизм безопасности платформы 1С
В платформе 8.3 работают три уровня защиты. Их часто путают, поэтому разделим сразу.
| Уровень | Где настраивается | Кого касается | Что делает |
|---|---|---|---|
| Защита от опасных действий | Карточка пользователя ИБ, conf.cfg | Конкретного пользователя | Показывает предупреждение и просит подтвердить действие |
| Безопасный режим | Свойство расширения, параметр при подключении обработки, код | Конкретный модуль или расширение | Запрещает коду работу с файлами, COM, внешними компонентами, привилегированный режим |
| Профиль безопасности | Консоль кластера серверов | Всю информационную базу на сервере | Задаёт, к каким ресурсам сервера код вообще имеет доступ |
Первый уровень — диалоговый. Он ничего не блокирует жёстко: пользователь видит предупреждение и решает сам. Второй и третий уровни блокируют операции без вопросов, и код получает исключение.
💡 Защита от опасных действий появилась в платформе 8.3.9. В базах, созданных на более ранних версиях, после обновления платформы флажок у пользователей установлен по умолчанию — отсюда массовые вопросы «откуда взялось это окно».
Почему предупреждение не равно запрету
Механизм рассчитан на обычного пользователя, который не отличает безопасный файл от вредоносного. Администратор или программист, который каждый день открывает свои обработки, может снять флажок у себя. Бухгалтеру, который получает файлы по почте, флажок лучше оставить.
Снятие защиты у пользователя с полными правами означает, что любой открытый им внешний файл выполнится без единого вопроса.
Какие действия платформа считает опасными
Защита срабатывает на операциях, при которых в базу попадает код, не входящий в основную конфигурацию.
- 📄 Открытие внешней обработки или отчёта из файла —
.epfи.erfчерез менюФайл → Открытьили перетаскиванием в окно программы. - 🧩 Подключение расширения конфигурации без безопасного режима — если у расширения снят флажок «Безопасный режим», его загрузка считается опасной.
- 🔌 Подключение внешних обработок программно — методы
ВнешниеОбработки.Подключить()иВнешниеОтчеты.Подключить()принимают параметр с описанием защиты, и при небезопасном подключении платформа может запросить подтверждение. - ⚙️ Загрузка и установка внешних компонент из неизвестных источников.
Обычная работа — проведение документов, формирование отчётов конфигурации, обмен данными, обновление по стандартной процедуре — защиту не затрагивает. Если предупреждение появляется при каждом открытии типового отчёта, значит, этот «отчёт» на самом деле подключается как внешний: например, через справочник дополнительных отчётов и обработок.
Дополнительные обработки в типовых конфигурациях
В БП 3.0, ЗУП 3.1 и УТ 11 внешние файлы удобнее регистрировать в справочнике дополнительных отчётов и обработок: Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки. Флажок с таким же названием в этом разделе должен быть включён.
При регистрации файла в справочнике библиотека стандартных подсистем показывает своё предупреждение и сохраняет обработку в базе. После этого пользователи запускают её из раздела, а не из файла, и окно защиты на каждом запуске больше не появляется.
Включение и отключение защиты у пользователя
Есть три способа: через Конфигуратор, через режим 1С:Предприятие и через файл conf.cfg на компьютере.
Способ 1. В Конфигураторе
- Откройте базу в режиме Конфигуратор под администратором.
- Перейдите в
Администрирование → Пользователи. - Откройте карточку нужного пользователя двойным щелчком.
- На вкладке
Основныенайдите флажокЗащита от опасных действий. - Снимите или установите его и нажмите
ОК.
Изменение вступает в силу при следующем входе пользователя. Если он сейчас в базе, попросите выйти и зайти заново.
Способ 2. Программно, для нескольких пользователей
Когда пользователей десятки, проще выполнить код во внешней обработке или в консоли кода под администратором:
ИмяПользователя = "Иванова";
Пользователь = ПользователиИнформационнойБазы.НайтиПоИмени(ИмяПользователя);
Если Пользователь <> Неопределено Тогда
Защита = Новый ОписаниеЗащитыОтОпасныхДействий;
Защита.ПредупреждатьОбОпасныхДействиях = Истина;
Пользователь.ЗащитаОтОпасныхДействий = Защита;
Пользователь.Записать();
КонецЕсли;
Значение Истина включает предупреждения, Ложь — отключает. Код должен выполняться на сервере и под пользователем с правом администрирования, иначе запись пользователя ИБ не пройдёт.
Массовое отключение защиты для всех пользователей — плохая идея. Отключайте адресно: себе, программисту, сервисной учётной записи для регламентных обработок.
Способ 3. Через conf.cfg для отдельных баз
Иногда нужно убрать предупреждение не для пользователя, а для конкретной базы на конкретном компьютере — например, для тестовой копии разработчика. Для этого в файл conf.cfg добавляют параметр DisableUnsafeActionProtection.
Файл лежит в каталоге bin\conf установленной версии платформы, например C:\Program Files\1cv8\8.3.24.1586\bin\conf\conf.cfg. Номер версии в пути замените на свой.
DisableUnsafeActionProtection=.*test.*;.*Копия_БП.*
Значение — регулярные выражения, разделённые точкой с запятой. Они сравниваются со строкой соединения базы. Если строка подходит хотя бы под одно выражение, защита для этой базы на этом компьютере не работает .
💡 Пишите выражение так, чтобы под него не попала рабочая база. Маска .* целиком отключит защиту для всех баз — это равносильно снятию флажка у всех пользователей.
После обновления платформы на новую версию каталог bin\conf будет уже другим, и параметр придётся перенести.
Профили безопасности на сервере 1С
Профили безопасности работают только в клиент-серверном варианте. Они ограничивают не пользователя, а код, который выполняется на сервере: обращения к файловой системе, COM-объектам, внешним компонентам, запуск приложений, доступ к интернет-ресурсам.
Где создать профиль
- Откройте консоль администрирования серверов 1С:Предприятия.
- Разверните кластер и найдите ветку
Профили безопасности. - Создайте профиль и задайте разрешения: полный доступ или список разрешённых каталогов, COM-классов, компонент, приложений и адресов.
- В свойствах информационной базы того же кластера укажите профиль в поле
Профиль безопасности.
У базы есть два поля: Профиль безопасности и Профиль безопасности безопасного режима. Первое ограничивает всю конфигурацию. Второе применяется к коду, который выполняется в безопасном режиме: расширениям и обработкам, подключённым с этим флажком.
Как это связано с типовыми конфигурациями
Библиотека стандартных подсистем умеет работать с профилями: при включённом режиме она сама запрашивает разрешения для внешних обработок и расширений. Без включённого режима профили на уровне кластера всё равно действуют, но ошибки придётся разбирать вручную.
Перед назначением профиля рабочей базе проверьте его на копии: слишком строгий профиль остановит обмены, загрузку банковских выписок и печать в файлы.
Расширения конфигурации и флажок безопасного режима
Расширения конфигурации появились в платформе 8.3.6. Каждое расширение имеет два свойства, которые напрямую связаны с темой:
- 🔒 Безопасный режим — код расширения не может работать с файлами, COM и внешними компонентами, не может включить привилегированный режим.
- 🛡️ Защита от опасных действий — определяет, будет ли платформа предупреждать пользователя при подключении такого расширения.
В режиме 1С:Предприятие оба флажка видны в списке расширений: в типовых конфигурациях — Администрирование → Печатные формы, отчеты и обработки → Расширения. Там же загружается файл .cfe.
Что выбрать для типовых случаев
| Расширение | Безопасный режим | Комментарий |
|---|---|---|
| Доработка печатной формы, новый реквизит, отчёт | Можно оставить | Работа с данными базы безопасный режим не ограничивает |
| Обмен с сайтом через HTTP, загрузка файлов с диска | Придётся снять | Без снятия код получит исключение при обращении к ресурсам |
| Интеграция через COM или внешнюю компоненту | Придётся снять | Нужен доступ к ресурсам компьютера или сервера |
| Расширение от неизвестного разработчика | Оставить включённым | Сначала проверить код на копии базы |
В Конфигураторе загрузка расширения из файла и обновление конфигурации базы данных — два отдельных шага. Если расширение загрузили, но не применили, пользователи его изменений не увидят.
Разбор ошибок и предупреждений
Окно с предупреждением — это ещё не ошибка. Ошибки появляются, когда код упирается в безопасный режим или профиль безопасности.
Где искать подробности
- 📋 Журнал регистрации —
Администрирование → Обслуживание → Журнал регистрации. Отберите события по пользователю и времени: текст исключения обычно указывает модуль и строку. - 🧪 Отладка — если доступ к Конфигуратору есть, запустите обработку под отладкой и остановитесь на строке с исключением. Так видно, какой именно ресурс запросил код.
- 🖥️ Технологический журнал на сервере — для ошибок профилей безопасности, когда в журнале регистрации информации мало.
Внешние обработки и отчёты: как работать без лишних окон
Сама по себе внешняя обработка не опасна. Опасен непроверенный код. Порядок работы, при котором и защита на месте, и пользователи не устают от предупреждений:
- Программист передаёт обработку администратору, а не пользователю напрямую.
- Администратор открывает её на копии базы и проверяет результат.
- Обработка регистрируется в справочнике дополнительных отчётов и обработок с указанием разделов, где она будет доступна.
- Пользователи запускают её из раздела программы. Файлы
.epfпо почте больше не ходят.
Внешнюю обработку, полученную от неизвестного отправителя, не открывайте даже на копии рабочей базы, если в ней есть реальные данные: код может отправить их за пределы компании.
Правила безопасной разработки
Эти правила снимают большую часть проблем ещё до внедрения.
- ✅ Пишите доработки так, чтобы они работали в безопасном режиме. Печатные формы, отчёты, новые реквизиты и обработки данных доступа к файлам и COM не требуют.
- ✅ Выносите работу с файлами в отдельное расширение с минимальным набором кода. Проверять одно небольшое расширение проще, чем всё целиком.
- ✅ Не используйте привилегированный режим без нужды. Если он нужен, оставляйте комментарий в коде: зачем и какие данные затрагиваются.
- ✅ Не храните пароли и токены в коде обработок. Внешний файл копируется и пересылается — секрет уйдёт вместе с ним.
- ✅ Указывайте параметр защиты явно при программном подключении внешних обработок, чтобы поведение не зависело от настроек пользователя.
- ✅ Проверяйте доработку под пользователем без полных прав и с включённой защитой — так, как с ней будет работать бухгалтер.
Перед изменениями в рабочей базе
Отключение защиты, смена профиля безопасности и загрузка расширения без безопасного режима меняют поведение базы для всех пользователей. Делайте это после резервной копии и по согласованию с ответственным за базу. Назначение профиля безопасности на сервере лучше выполнять вне рабочего времени: при проверке на рабочей базе операции пользователей, упирающиеся в новые ограничения, будут завершаться ошибкой.