К статье
Практический материал

Администрирование · 11 мин

Безопасный режим в 1С: что это и как с ним работать

Что такое безопасный режим в 1С, как он ограничивает внешние обработки и расширения, когда его отключать и как проверить, что конфигурация работает корректно.

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

Механизм действует на уровне платформы, а не конфигурации, поэтому работает одинаково в «Бухгалтерии», «Управлении торговлей», «Зарплате и управлении персоналом» и любых самописных решениях. Понимать его устройство нужно и пользователям, которые открывают внешние файлы, и разработчикам, чей код внезапно перестаёт работать с ошибкой «Операция не разрешена в безопасном режиме».

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

Что такое безопасный режим и зачем он нужен

Безопасный режим — это состояние исполнения кода, при котором платформа запрещает потенциально опасные операции. Режим включается, когда источник кода не является частью конфигурации базы: внешние обработки и отчёты (файлы .epf и .erf), расширения конфигурации, а также код, выполняемый через методы Выполнить() и Вычислить() в ряде сценариев.

Логика проста: код, встроенный в конфигурацию, прошёл через руки разработчика или внедренца и считается доверенным. Внешний файл мог написать кто угодно, поэтому платформа по умолчанию не даёт ему полного доступа к системе. Это похоже на «песочницу» в браузере: страница работает, но не может читать файлы на диске.

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

Какие операции блокируются

Перечень ограничений зафиксирован в платформе и не зависит от конфигурации. В безопасном режиме запрещены:

  • доступ к файловой системе (чтение, запись, удаление файлов вне временного каталога);
  • запуск внешних приложений и команд операционной системы;
  • работа с COM-объектами и OLE-технологиями;
  • подключение внешних компонент (DLL, AddIn);
  • доступ к интернету через некоторые механизмы, требующие небезопасных вызовов;
  • загрузка и выполнение произвольного внешнего кода;
  • операции с реестром Windows и системными ресурсами.

При попытке выполнить запрещённую операцию платформа вызывает исключение с текстом вида «Операция не разрешена в безопасном режиме» или «Нарушение прав доступа». Именно эта ошибка чаще всего становится поводом для поиска информации о безопасном режиме: обработка, которая «вчера работала», после обновления платформы или переноса на другой сервер вдруг падает.

Ошибка при открытии файла«Операция не разрешена в безопасном режиме»

Внешняя обработка пытается выполнить запрещённую операцию — режим работает штатно

Обработка не сохраняет файлНет доступа к диску

Код пишет на диск напрямую, а не через диалог выбора файла

Сбой COM-подключенияНе создаётся COMConnector

Обмен через COM в безопасном режиме невозможен — нужен доверенный запуск

Где встречается безопасный режим на практике

Внешние обработки и отчёты

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

Расширения конфигурации

Расширения тоже исполняются с ограничениями: у каждого расширения есть свойство «Безопасный режим», по умолчанию включённое. Если расширение должно обращаться к внешним компонентам или файлам, администратор вручную снимает этот флаг в списке расширений — и платформа запрашивает подтверждение, поскольку это осознанное понижение защиты.

Код на сервере и фоновые задания

Разработчик может программно управлять режимом: установить безопасный режим перед выполнением непроверенного кода через УстановитьБезопасныйРежим(Истина). Это стандартная практика при выполнении произвольных выражений, заданных пользователем в настройках, — например, формул в произвольных алгоритмах.

Как проверить и отключить безопасный режим

Узнать текущее состояние можно программно: функция БезопасныйРежим() возвращает Истина, если режим активен. Это полезно в отладке, когда непонятно, почему код ведёт себя по-разному в конфигурации и во внешней обработке.

Для внешних обработок в типовых конфигурациях порядок отключения такой: открыть список «Дополнительные отчёты и обработки», найти нужную обработку и в её карточке снять использование безопасного режима (в ряде версий — через команду «Быстрый доступ» или параметры подключения). Для расширений: «Все функции — Стандартные — Управление расширениями конфигурации», снять флаг «Безопасный режим» у нужного расширения и перезапустить сеанс.

Порядок действий для доверенной обработки
  1. 1
    Убедитесь, что источник обработки надёжен: проверьте автора, код, отсутствие подозрительных вызовов
  2. 2
    Подключите обработку через «Дополнительные отчёты и обработки» с правами администратора
  3. 3
    Отключите безопасный режим для этой конкретной обработки, а не глобально
  4. 4
    Проверьте работу на тестовой копии базы
  5. 5
    Задокументируйте, кому и зачем выдано исключение

На уровне кластера серверов 1С существует параметр «Безопасный режим» для сервисов и отдельные настройки профилей безопасности в консоли кластера. Профили безопасности — более гранулярный механизм: вместо полного запрета администратор разрешает конкретные каталоги, COM-объекты и внешние компоненты. Это правильный путь для серверных решений, где обработкам объективно нужен доступ к файлам обмена.

Безопасный режим против профилей безопасности: что выбрать

Эти два механизма часто путают. Безопасный режим — бинарный переключатель «разрешено/запрещено», встроенный в платформу. Профили безопасности настраиваются в консоли кластера и позволяют тонко описать, какие ресурсы доступны конкретной базе: отдельные каталоги файловой системы, конкретные COM-классы, разрешённые внешние компоненты.

Сравнение подходов

Безопасный режим

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

Профили безопасности кластера

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

Полное отключение защиты

Допустимо только для доверенного кода в изолированной среде. В рабочих базах создаёт риск утечки и порчи данных.

Типичные ошибки и как их избежать

Типичные ошибки
01
Отключение безопасного режима глобально ради одной обработки — под удар попадает вся база
02
Добавление обработки в доверенные без просмотра кода — внутри может быть выгрузка данных или вредоносный вызов
03
Игнорирование ошибки «операция не разрешена» и поиск способа обойти защиту вместо переработки кода — правильнее переписать обработку через разрешённые механизмы (диалоги выбора файла, временные файлы)
04
Путаница между безопасным режимом и правами пользователя — это разные механизмы, и отключение одного не решает проблемы другого

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

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

Проверка результата после настройки

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

Контрольные точки

Как проверить результат

Работа целевой обработки
Норма

Выполняется без ошибок, файл сохраняется/загружается

Тревожный признак

Та же ошибка о безопасном режиме — флаг не применился или сеанс не перезапущен

Остальные внешние файлы
Норма

Открываются с ограничениями, опасные операции блокируются

Тревожный признак

Защита отключена глобально — верните настройку

Журнал регистрации
Норма

Нет массовых ошибок доступа

Тревожный признак

Повторяющиеся отказы — код требует операций вне выданных разрешений

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

Частые вопросы

Безопасный режим защищает данные в базе?

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

Почему обработка работала, а после обновления платформы перестала?

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

Можно ли отключить безопасный режим для всей базы сразу?

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

Чем безопасный режим отличается от защиты от опасных действий?

Защита от опасных действий — отдельный механизм, который при открытии внешних файлов предупреждает пользователя о потенциально опасных операциях и требует подтверждения. Безопасный режим просто запрещает операции без запроса. Оба механизма работают совместно.

Как разработчику выполнить непроверенный код без риска?

Перед вызовом Выполнить() или Вычислить() установите безопасный режим программно: УстановитьБезопасныйРежим(Истина). Тогда даже если в выражении, заданном пользователем, окажется опасный вызов, платформа его заблокирует.

Итог

Что важно запомнить

Безопасный режим — встроенная защита платформы 1С, блокирующая опасные операции внешнего кода. Он не заменяет права доступа к данным. Отключать его нужно точечно и только для проверенного кода, а для серверных баз предпочтительны профили безопасности. Ошибка «операция не разрешена в безопасном режиме» — сигнал пересмотреть либо код, либо настройки доверия.