Ошибка «Установлен безопасный режим» в 1С 8.3: что запрещает платформа и как это разрешить
Содержание
Ошибка не лечится перезапуском службы или правкой реестра. Платформа 1С 8.3 сама включила безопасный режим для чужого кода и запретила ему конкретное действие: запись файла, вызов COM-объекта, запуск программы, обращение к сети. Чтобы ошибка ушла, нужно либо выдать этому коду нужные разрешения, либо убрать из него запрещённую операцию.
Если коротко по сценариям: у внешней обработки или отчёта из справочника дополнительных обработок открывают её карточку и настраивают разрешения; у расширения проверяют флаг безопасного режима; в серверной базе правят профиль безопасности в консоли кластера. Дальше по порядку.
Безопасный режим нельзя «выключить глобально» одной галочкой в базе. Он существует именно для защиты: внешний файл может быть вредоносным. Сначала убедитесь, что вы доверяете источнику обработки.
Что такое безопасный режим и почему он срабатывает
Платформа запускает код в безопасном режиме, когда не уверена в его происхождении. Из такого режима нельзя делать то, что выходит за пределы самой информационной базы.
Запрещено или ограничено:
- 📁 чтение и запись файлов на диске, работа с каталогами;
- 🔌 создание COM-объектов и подключение внешних компонент;
- 🚀 запуск внешних программ (
ЗапуститьПриложение,НачатьЗапускПриложения); - 🌐 интернет-соединения, HTTP- и почтовые запросы;
- 🗄 изменение данных в обход проверок, привилегированный режим, внешние соединения с другими базами;
- 🧩 вызовы
Выполнить()иВычислить()с недоверенным текстом.
Типичные источники безопасного режима:
| Откуда запущен код | Кто включил безопасный режим |
|---|---|
| Дополнительная внешняя обработка или отчёт из справочника | Флаг в карточке обработки |
| Расширение конфигурации | Свойство расширения |
| Регламентное задание внешней обработки | Платформа, если нет разрешений |
| Подключаемая команда, печатная форма | Подсистема дополнительных отчётов и обработок |
| Серверная база с профилями безопасности | Профиль безопасности, назначенный базе |
Текст ошибки у разных операций слегка различается. Обычно видите что-то вроде Установлен безопасный режим, выполнение операции запрещено с названием операции в стеке вызовов или в подробном тексте.
Сначала определите, чей код упал
Раздел короткий, но от него зависит, какой способ вам нужен. Нажмите «Подробнее» в окне ошибки и посмотрите модуль в стеке.
- Название вашей внешней обработки или отчёта в стеке — идите к способу 1.
- Модуль расширения (в названии есть имя расширения) — способ 2.
- Типовой модуль без вашего кода, сервер 1С в клиент-серверном варианте — способ 3.
- Ошибка у программиста, который отлаживает свой код, — способ 4.
Способ 1. Разрешения для дополнительной обработки или отчёта
Это самый частый случай. Обработку подключили через справочник дополнительных отчётов и обработок, а она пытается записать файл или обратиться к сети.
Где найти карточку
- Откройте
Администрирование→Печатные формы, отчёты и обработки→Дополнительные отчёты и обработки. - Найдите нужную строку. Если раздела нет, в этой конфигурации нет подсистемы, либо нет прав администратора.
- Откройте карточку двойным щелчком.
Что настроить
В карточке есть настройки безопасного режима и ссылка на разрешения. Названия могут слегка отличаться по версиям:
- Если стоит флаг, что обработка выполняется в безопасном режиме, и код делает «лишние» вещи, ошибка неизбежна.
- Если обработке нужны файлы или интернет, её автор должен запросить конкретные разрешения. Они показаны в карточке списком: «Разрешено использование файловой системы», «Разрешено подключение к интернет-ресурсам» и т. п.
- Прочитайте каждое разрешение. Выдавайте только то, что понятно и нужно.
Разрешения принимаются отдельным действием. Пока администратор их не подтвердил, обработка работает как «серая»: вся запрещённая работа блокируется.
Если нет нужных разрешений
Попросите автора обработки добавить запрос разрешений в её код. Сам обработчик меняется в конфигураторе, а не в пользовательском режиме. Без запроса разрешений в самой обработке карточка ничего выдать не сможет.
Не отключайте безопасный режим для обработки, полученной из интернета без проверки. Через неё можно украсть данные, зашифровать базу или запустить стороннюю программу на сервере.
Способ 2. Расширение конфигурации
Расширение запускается платформой в безопасном режиме только при специальных настройках. Чаще ошибка возникает в самом коде: он вызывает запрещённую операцию из контекста, где безопасный режим уже включён родителем.
Что проверить в конфигураторе
- Откройте базу в конфигураторе:
Конфигурация→Расширения конфигурации. - Выберите расширение, откройте его свойства.
- Посмотрите флаги безопасного режима и защиты от опасных действий.
- Если флаг безопасного режима включён и расширению нужны файлы или COM, выключать его можно только осознанно.
Расширения часто привозят «из коробки» сторонние разработчики. Перед изменением свойств проверьте у поставщика, зачем расширению нужен безопасный режим.
Типичная причина
Код расширения вызывает Выполнить() с текстом, который собран из данных пользователя. Платформа видит риск и блокирует вызов. Решение: не собирать исполняемый код из входных данных, а использовать прямые вызовы с параметрами.
Способ 3. Профиль безопасности в клиент-серверной базе
В промышленных базах на кластере 1С безопасный режим управляется профилями безопасности. Они ограничивают, что может делать база, независимо от пользовательского кода.
Где смотреть
- Откройте консоль администрирования серверов 1С.
- Найдите вашу информационную базу и откройте её свойства.
- Посмотрите два поля: профиль безопасности базы и профиль безопасности безопасного режима.
- Откройте этот профиль в разделе «Профили безопасности» кластера.
Что разрешает профиль
Профиль состоит из разрешений по группам:
- 📂 каталоги файловой системы (путь и режим: чтение, запись);
- 🧱 COM-классы (по идентификатору);
- 🧩 внешние компоненты (по контрольной сумме);
- 🚀 запускаемые приложения (по маске командной строки);
- 🌍 интернет-ресурсы (протокол, адрес, порт).
Добавьте то, чего не хватает. Например, для выгрузки отчётов в сетевую папку добавьте её каталог с правом записи.
Не создавайте профиль с разрешением «всё везде». Это решает проблему за минуту и открывает серверу дорогу для вредоносного кода.
Перезапуск после изменения
Профили применяются при подключении сеансов. После правки завершите сеансы пользователей базы и войдите заново. Службу сервера перезапускать не нужно.
Способ 4. Если вы разработчик и отлаживаете свой код
В коде проверьте, откуда вы вызываете операцию. Безопасный режим наследуется: если родительский вызов включил его через УстановитьБезопасныйРежим(Истина), дочерний код тоже под ограничением.
Что делать:
- 🔍 проверьте стек вызовов и найдите, где режим включён;
- 🧰 вынесите запрещённую операцию в отдельную серверную функцию, вызываемую вне безопасного контекста;
- 📝 если пишете внешнюю обработку для справочника, запросите разрешения программно при регистрации;
- 🔧 проверяйте текущее состояние функцией
БезопасныйРежим().
Пример проверки:
Если БезопасныйРежим() Тогда
ВызватьИсключение "Операция недоступна в безопасном режиме";
КонецЕсли;
Не пытайтесь снимать безопасный режим вызовом УстановитьБезопасныйРежим(Ложь) из недоверенного кода. Из безопасного режима выйти нельзя, платформа вернёт ту же ошибку.
Какая операция заблокирована: разбор по симптомам
Одна и та же формулировка скрывает разные причины. Сопоставьте, что делала обработка в момент сбоя, и найдите нужное разрешение.
Почему на сервере строже, чем на клиенте
Файловый клиент часто работает на локальном ПК с правами пользователя Windows. В клиент-серверном варианте операция выполняется на сервере под учётной записью службы. Там другие каталоги, другие права и свой профиль безопасности. Обработка, которая спокойно писала файл «на рабочий стол» у бухгалтера, на сервере упрётся в запрет.
Практический вывод: путь для выгрузки должен быть каталогом, доступным серверу. Например, сетевая папка с правом записи для учётной записи службы 1С, а не локальный диск рабочего места.
Что передать разработчику
Если сами вы разрешения выдать не можете, подготовьте для программиста короткое описание:
- Название обработки или расширения и версия.
- Действие пользователя за секунду до ошибки (кнопка, команда, период).
- Текст ошибки и стек из окна «Подробнее».
- Режим работы: файловая база или клиент-сервер, тонкий клиент или веб.
Так он найдёт нужный вызов за минуты, а не за день переписки.
Чем не стоит лечить эту ошибку
В сети советуют несколько приёмов, которые к этой ошибке не относятся:
| Совет | Почему не работает |
|---|---|
Очистить кэш ClearCache | Кэш не хранит признак безопасного режима |
| Править ветки реестра Windows | Признак живёт в логике платформы, не в реестре |
| Восстановить базу из копии | Вернёт ту же обработку и ту же ошибку |
| Переустановить платформу | Режим задан настройками базы и кода |
| «Снять флаг» в базе правкой SQL | Нарушит целостность базы, поддержка снимет базу с гарантии |
Очистка кэша помогает при других сбоях (зависший список, старая форма). Здесь она ничего не изменит.
Быстрая проверка перед тем, как менять настройки
Типичные ошибки при настройке
- ❌ Выдали обработке разрешение на весь диск
C:\, хотя нужна одна папка выгрузки. - ❌ Изменили настройки в карточке, но не завершили сеансы. Пользователь продолжает работать со старыми ограничениями.
- ❌ Заменили файл обработки на новый, и разрешения сбросились: платформа требует подтвердить их заново.
- ❌ Искали причину в сервере, хотя проблема в одной внешней обработке.
- ❌ Скачали «доработанную» обработку без исходников и дали ей все права.
Профилактика
Несколько привычек сильно снижают число таких обращений:
- Держите список используемых внешних обработок и расширений с описанием, зачем им нужен выход за пределы базы.
- Тестируйте новые обработки в копии базы, а не в рабочей.
- Просите у разработчика перечень необходимых разрешений до внедрения.
- Не используйте файлы из непроверенных источников, даже если они обещают «ускорить закрытие месяца ».
- Для серверных баз ведите документированный профиль безопасности и меняйте его через заявку.
Частые вопросы
Можно ли полностью отключить безопасный режим в 1С?
Почему ошибка появилась у одного пользователя, а у остальных нет?
Файл → Открыть. Проверьте, что именно он запускает.