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