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

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

Как убрать безопасный режим у обработки 1С

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

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

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

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

Почему обработка открывается в безопасном режиме

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

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

Определить, что именно мешает обработке, можно по тексту ошибки и контексту: если обработка открывается через «Файл — Открыть» и ругается на COM-объекты или файловые операции — скорее всего, дело в настройке клиента или правах. Если ошибка возникает при выполнении серверного кода в серверной базе — проверяйте профили безопасности кластера.

Ошибка при открытии через Файл — ОткрытьКлиентская настройка или права

Проверьте Сервис — Параметры и роли пользователя

Ошибка на сервере в серверной базеПрофиль безопасности кластера

Проверьте консоль кластера, раздел профилей безопасности

Обработка подключена как дополнительнаяОграничение зашито в БСП

Смотрите настройки подсистемы дополнительных отчётов и обработок

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

Определите, какая операция запрещена, и где включён режим

Способ 1. Отключение через настройки клиентского приложения

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

Снимите флаг «Открывать внешние отчёты и обработки в безопасном режиме» или аналогичный по названию — формулировка зависит от версии платформы и интерфейса (Такси или обычные формы). После изменения параметра закройте обработку и откройте её заново: настройка применяется к новым сеансам открытия файлов.

Обратите внимание: этот параметр может быть недоступен обычному пользователю, если администратор ограничил изменение настроек. В таком случае обращайтесь к администратору базы — либо используйте другие способы из этой статьи.

Порядок действий через настройки клиента
  1. 1
    Откройте базу под пользователем с достаточными правами
  2. 2
    Перейдите в Сервис — Параметры (или Администрирование — Параметры)
  3. 3
    Найдите флаг открытия внешних обработок в безопасном режиме и снимите его
  4. 4
    Закройте и заново откройте обработку через Файл — Открыть
  5. 5
    Проверьте, что ошибки безопасного режима исчезли

Способ 2. Предоставление права интерактивного открытия

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

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

После изменения ролей пользователю нужно перезайти в базу — права применяются при установке сеанса. Проверьте результат: обработка должна открыться без принудительного безопасного режима, и операции с файловой системой или COM-объектами перестанут блокироваться.

Способ 3. Настройка профилей безопасности кластера серверов

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

Откройте консоль управления кластером серверов 1С (оснастка «Центральные серверы 1С»), найдите нужную информационную базу и посмотрите, какой профиль безопасности ей назначен. В свойствах профиля проверьте разрешения: доступ к файловой системе, COM-объектам, внешним компонентам, запуску приложений операционной системы.

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

Способ 4. Программное отключение безопасного режима

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

bsl
// Проверить текущее состояние
Если БезопасныйРежим() Тогда
    Сообщить("Безопасный режим включён");
КонецЕсли;

// Отключить безопасный режим в текущем вызове
УстановитьБезопасныйРежим(Ложь);

// Выполнить обработку с отключением режима
УстановитьБезопасныйРежим(Ложь);
Обработка = ВнешниеОбработки.Создать("C:\Обработки\МояОбработка.epf", Ложь);
Обработка.ВыполнитьОсновноеДействие();

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

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

Особый случай: дополнительные отчёты и обработки в типовых конфигурациях

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

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

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

Сравнение способов отключения

Настройки клиента

Быстро и без прав администратора, но действует только на интерактивное открытие файлов

Права пользователя

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

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

Единственный путь для серверных ограничений, но влияет на всю базу и требует осторожности

Программное отключение

Гибко для разработчика, но бессильно против серверного профиля безопасности

Переработка обработки под безопасный режим

Самый надёжный вариант, но требует времени и навыков разработки

Проверка результата и типичные ошибки

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

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

Типичные ошибки
01
Меняют настройки клиента, хотя ограничение задано профилем кластера — ошибка остаётся
02
Забывают перезайти в базу после выдачи роли — старые права действуют до конца сеанса
03
Передают в ВнешниеОбработки.Создать() параметр безопасного режима Истина и удивляются блокировкам
04
Отключают профиль безопасности на всём кластере вместо точечного расширения разрешений
05
Запускают непроверенную обработку с полными правами на продуктивной базе без копии

FAQ

Как понять, что обработка работает в безопасном режиме?

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

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

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

Почему в файловой базе обработка работает, а в серверной — нет?

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

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

Да. Программно — через параметр метода ВнешниеОбработки.Создать() и метод УстановитьБезопасныйРежим(Ложь) в конкретном вызове. На уровне кластера — через точечные разрешения в профиле безопасности под конкретные каталоги, COM-классы или компоненты, которые использует эта обработка.

Что делать, если настройка безопасного режима в параметрах недоступна?

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

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

Да, это предпочтительный путь. Нужно переработать код обработки: убрать прямые обращения к файловой системе и COM-объектам, передавать данные через параметры и временное хранилище, использовать разрешённые в безопасном режиме механизмы. Тогда обработка будет стабильно работать в любых базах без ослабления защиты.

Итог

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

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