Администрирование · 11 мин
Безопасный режим в 1С: что это и как с ним работать
Что такое безопасный режим в 1С, как он ограничивает внешние обработки и расширения, когда его отключать и как проверить, что конфигурация работает корректно.
Безопасный режим — один из базовых механизмов защиты платформы 1С:Предприятие. Он включается автоматически, когда пользователь открывает внешнюю обработку или отчёт, и ограничивает набор действий, которые этот код может выполнить на компьютере или сервере. Благодаря этому скачанный из интернета файл обработки не сможет молча удалить данные, прочитать пароли или запустить произвольную программу.
Механизм действует на уровне платформы, а не конфигурации, поэтому работает одинаково в «Бухгалтерии», «Управлении торговлей», «Зарплате и управлении персоналом» и любых самописных решениях. Понимать его устройство нужно и пользователям, которые открывают внешние файлы, и разработчикам, чей код внезапно перестаёт работать с ошибкой «Операция не разрешена в безопасном режиме».
Ниже разобрано, какие именно операции блокируются, где встречается безопасный режим, как легально отключить его для доверенного кода и какие ошибки при этом допускают чаще всего.
Что такое безопасный режим и зачем он нужен
Безопасный режим — это состояние исполнения кода, при котором платформа запрещает потенциально опасные операции. Режим включается, когда источник кода не является частью конфигурации базы: внешние обработки и отчёты (файлы .epf и .erf), расширения конфигурации, а также код, выполняемый через методы Выполнить() и Вычислить() в ряде сценариев.
Логика проста: код, встроенный в конфигурацию, прошёл через руки разработчика или внедренца и считается доверенным. Внешний файл мог написать кто угодно, поэтому платформа по умолчанию не даёт ему полного доступа к системе. Это похоже на «песочницу» в браузере: страница работает, но не может читать файлы на диске.
Важно понимать границу: безопасный режим не ограничивает доступ к данным информационной базы. Внешняя обработка в безопасном режиме по-прежнему может читать и изменять документы, справочники и регистры в рамках прав пользователя. Защита данных — задача системы ролей, а безопасный режим отвечает за защиту операционной системы и окружения.
Какие операции блокируются
Перечень ограничений зафиксирован в платформе и не зависит от конфигурации. В безопасном режиме запрещены:
- доступ к файловой системе (чтение, запись, удаление файлов вне временного каталога);
- запуск внешних приложений и команд операционной системы;
- работа с COM-объектами и OLE-технологиями;
- подключение внешних компонент (DLL, AddIn);
- доступ к интернету через некоторые механизмы, требующие небезопасных вызовов;
- загрузка и выполнение произвольного внешнего кода;
- операции с реестром Windows и системными ресурсами.
При попытке выполнить запрещённую операцию платформа вызывает исключение с текстом вида «Операция не разрешена в безопасном режиме» или «Нарушение прав доступа». Именно эта ошибка чаще всего становится поводом для поиска информации о безопасном режиме: обработка, которая «вчера работала», после обновления платформы или переноса на другой сервер вдруг падает.
Внешняя обработка пытается выполнить запрещённую операцию — режим работает штатно
Код пишет на диск напрямую, а не через диалог выбора файла
Обмен через COM в безопасном режиме невозможен — нужен доверенный запуск
Где встречается безопасный режим на практике
Внешние обработки и отчёты
Самый частый сценарий. Когда пользователь открывает файл .epf через «Файл — Открыть» или через типовой механизм «Дополнительные отчёты и обработки» (подсистема БСП), код выполняется в безопасном режиме. В типовых конфигурациях при подключении обработки можно явно указать, требуется ли ей отключение безопасного режима, — и платформа покажет это администратору.
Расширения конфигурации
Расширения тоже исполняются с ограничениями: у каждого расширения есть свойство «Безопасный режим», по умолчанию включённое. Если расширение должно обращаться к внешним компонентам или файлам, администратор вручную снимает этот флаг в списке расширений — и платформа запрашивает подтверждение, поскольку это осознанное понижение защиты.
Код на сервере и фоновые задания
Разработчик может программно управлять режимом: установить безопасный режим перед выполнением непроверенного кода через УстановитьБезопасныйРежим(Истина). Это стандартная практика при выполнении произвольных выражений, заданных пользователем в настройках, — например, формул в произвольных алгоритмах.
Как проверить и отключить безопасный режим
Узнать текущее состояние можно программно: функция БезопасныйРежим() возвращает Истина, если режим активен. Это полезно в отладке, когда непонятно, почему код ведёт себя по-разному в конфигурации и во внешней обработке.
Для внешних обработок в типовых конфигурациях порядок отключения такой: открыть список «Дополнительные отчёты и обработки», найти нужную обработку и в её карточке снять использование безопасного режима (в ряде версий — через команду «Быстрый доступ» или параметры подключения). Для расширений: «Все функции — Стандартные — Управление расширениями конфигурации», снять флаг «Безопасный режим» у нужного расширения и перезапустить сеанс.
- 1Убедитесь, что источник обработки надёжен: проверьте автора, код, отсутствие подозрительных вызовов
- 2Подключите обработку через «Дополнительные отчёты и обработки» с правами администратора
- 3Отключите безопасный режим для этой конкретной обработки, а не глобально
- 4Проверьте работу на тестовой копии базы
- 5Задокументируйте, кому и зачем выдано исключение
На уровне кластера серверов 1С существует параметр «Безопасный режим» для сервисов и отдельные настройки профилей безопасности в консоли кластера. Профили безопасности — более гранулярный механизм: вместо полного запрета администратор разрешает конкретные каталоги, COM-объекты и внешние компоненты. Это правильный путь для серверных решений, где обработкам объективно нужен доступ к файлам обмена.
Безопасный режим против профилей безопасности: что выбрать
Эти два механизма часто путают. Безопасный режим — бинарный переключатель «разрешено/запрещено», встроенный в платформу. Профили безопасности настраиваются в консоли кластера и позволяют тонко описать, какие ресурсы доступны конкретной базе: отдельные каталоги файловой системы, конкретные COM-классы, разрешённые внешние компоненты.
Сравнение подходов
Подходит для клиентских сценариев и внешних обработок. Включён по умолчанию, не требует настройки, но не гибкий: либо всё запрещено, либо всё разрешено.
Подходят для серверных баз, где нужен контролируемый доступ к файлам обмена, FTP, компонентам. Требуют настройки в консоли кластера, но сохраняют защиту от всего остального.
Допустимо только для доверенного кода в изолированной среде. В рабочих базах создаёт риск утечки и порчи данных.
Типичные ошибки и как их избежать
Отдельная частая ситуация — обработка падает только у части пользователей. Причина обычно не в безопасном режиме, а в правах: у одних пользователей есть право «Интерактивное открытие внешних отчётов и обработок» и административные права, у других нет. Диагностику стоит начинать с текста ошибки: «нарушение прав доступа» указывает на роли, а явное упоминание безопасного режима — на ограничения платформы.
Ещё одна ошибка — попытка обойти ограничение, обернув опасный вызов в Выполнить() или вынеся его в общий модуль конфигурации. Платформа отслеживает стек вызовов: если цепочка началась из небезопасного контекста, ограничение сохраняется. Единственный корректный путь — легально отключить режим для доверенного кода или использовать профили безопасности.
Проверка результата после настройки
После отключения безопасного режима для обработки или расширения проверьте три вещи: обработка выполняет свою функцию без ошибок; остальные внешние файлы по-прежнему открываются в безопасном режиме; в журнале регистрации нет новых ошибок доступа. Перезапуск сеанса обязателен для расширений — изменения флага применяются не мгновенно.
Как проверить результат
Выполняется без ошибок, файл сохраняется/загружается
Та же ошибка о безопасном режиме — флаг не применился или сеанс не перезапущен
Открываются с ограничениями, опасные операции блокируются
Защита отключена глобально — верните настройку
Нет массовых ошибок доступа
Повторяющиеся отказы — код требует операций вне выданных разрешений
Если внешняя обработка требует отключения безопасного режима только ради сохранения файла, часто достаточно переписать её с использованием диалога выбора файла: когда пользователь сам указывает путь через диалог, платформа разрешает запись даже в безопасном режиме. Это избавляет от понижения защиты.
Частые вопросы
Безопасный режим защищает данные в базе?
Нет. Он защищает операционную систему, файловую систему и окружение от опасных действий кода. Доступ к документам и справочникам регулируется ролями и правами пользователей — это отдельный механизм.
Почему обработка работала, а после обновления платформы перестала?
В новых версиях платформы перечень ограничиваемых операций может расширяться, а настройки безопасного режима — сбрасываться или ужесточаться. Проверьте флаг безопасного режима у обработки или расширения и текст ошибки: обычно достаточно повторно подтвердить доверие к коду.
Можно ли отключить безопасный режим для всей базы сразу?
Технически для файловой базы и отдельных сценариев это возможно, но делать так не рекомендуется: любая внешняя обработка получит полный доступ к системе. Правильный подход — точечное отключение для доверенных объектов или профили безопасности в кластере.
Чем безопасный режим отличается от защиты от опасных действий?
Защита от опасных действий — отдельный механизм, который при открытии внешних файлов предупреждает пользователя о потенциально опасных операциях и требует подтверждения. Безопасный режим просто запрещает операции без запроса. Оба механизма работают совместно.
Как разработчику выполнить непроверенный код без риска?
Перед вызовом Выполнить() или Вычислить() установите безопасный режим программно: УстановитьБезопасныйРежим(Истина). Тогда даже если в выражении, заданном пользователем, окажется опасный вызов, платформа его заблокирует.
Что важно запомнить
Безопасный режим — встроенная защита платформы 1С, блокирующая опасные операции внешнего кода. Он не заменяет права доступа к данным. Отключать его нужно точечно и только для проверенного кода, а для серверных баз предпочтительны профили безопасности. Ошибка «операция не разрешена в безопасном режиме» — сигнал пересмотреть либо код, либо настройки доверия.