Обработка или расширение не работает из-за безопасного режима: как снять ограничение в 1С 8.3

· 10 мин

Содержание

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

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

Почему 1С включает безопасный режим и чем он отличается от защиты от опасных действий

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

МеханизмЧто делаетКогда срабатываетГде отключается
Безопасный режим расширенияКод расширения выполняется с ограничениямиРасширение загружено в режиме 1С:ПредприятиеФлажок в списке расширений
Безопасный режим дополнительной обработкиОграничивает код обработки, подключённой в справочникОбработка подключена через раздел дополнительных отчётов и обработокКарточка обработки
Профиль безопасности базыОграничения для всего кода или для кода в безопасном режимеПрофиль назначен базе в кластере серверовКонсоль кластера
Защита от опасных действийПредупреждение перед открытием внешнего файлаОткрытие внешней обработки, отчёта, расширения из файлаСвойства пользователя или conf.cfg
Программный безопасный режимКод сам включает ограничения перед выполнениемРазработчик вызвал УстановитьБезопасныйРежим(Истина)Только правкой кода

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

💡 Защита от опасных действий — это не безопасный режим. Она только спрашивает «вы уверены?» перед открытием файла. Если обработка открылась и упала на середине, дело не в ней.

Что запрещено коду в защищённом режиме

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

В безопасном режиме коду недоступны:

  • 📁 чтение и запись файлов на диске, кроме временных средств, которые разрешает профиль;
  • 🧩 создание COM-объектов: Excel через COM, V83.COMConnector, Scripting.FileSystemObject;
  • 🔌 подключение внешних компонент, например драйверов торгового оборудования;
  • 🖥️ запуск внешних программ и команд операционной системы;
  • 🌐 обращения к интернет-ресурсам: HTTP-соединения, почта, FTP;
  • 🔑 установка привилегированного режима, то есть обход прав пользователя.

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

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

Как найти причину блокировки в журнале регистрации и отладчике

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

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

  1. Откройте журнал: в БП 3.0, ЗУП 3.1 и УТ 11 — Администрирование → Обслуживание → Журнал регистрации.
  2. Установите отбор по времени: 5-10 минут вокруг момента ошибки.
  3. В отборе по уровню оставьте «Ошибка».
  4. Отберите события по пользователю, у которого возникла проблема.
  5. Откройте запись двойным щелчком и прочитайте комментарий целиком.

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

Отладчик

Журнал покажет строку и модуль, но не покажет, откуда пришёл вызов. Для этого нужен отладчик в Конфигураторе:

  1. Откройте базу в Конфигураторе и запустите Отладка → Начать отладку.
  2. Включите Отладка → Остановка по ошибке.
  3. Повторите действие, на котором падала обработка.
  4. Когда отладчик остановится, откройте стек вызовов и посмотрите всю цепочку.

Удобный приём — вычислить в табло функцию БезопасныйРежим(). Она возвращает Ложь, если ограничений нет, Истина или имя профиля безопасности — если есть. Так за секунду видно, работает ли код в защищённом режиме в этом месте.

Для клиент-серверной базы есть нюанс: чтобы отлаживать серверный код, сервер должен быть запущен с разрешённой отладкой. Если в рабочей базе её нет, воспроизводите ошибку на копии.

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

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

Через список расширений в программе

  1. Откройте Администрирование → Печатные формы, отчеты и обработки → Расширения (путь для БП 3.0, ЗУП 3.1, УТ 11).
  2. Найдите нужное расширение в списке.
  3. Снимите флажок «Безопасный режим». Если колонки не видно, откройте карточку расширения.
  4. Перезапустите программу: изменения подключения расширений применяются при новом сеансе.

Если в форме БСП флажок недоступен, откройте стандартную форму платформы: Главное меню → Все функции → Стандартные → Управление расширениями конфигурации. Пункт «Все функции» включается в Главное меню → Сервис → Параметры флажком «Отображать команду “Все функции”».

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

Через Конфигуратор

В Конфигураторе откройте Конфигурация → Расширения конфигурации. В списке расширений есть свойство «Безопасный режим» — снимите его и обновите конфигурацию базы данных, если программа об этом попросит. Расширения, добавленные через Конфигуратор, разработчики обычно подключают без безопасного режима сразу.

Внешние обработки и защита от опасных действий: настройки клиента и параметры запуска

Дополнительная обработка в справочнике

Обработки, подключённые через Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки, работают по правилам БСП. Обработка сама сообщает, нужен ли ей безопасный режим и какие разрешения она запрашивает: файлы, интернет-адреса, внешние компоненты.

Порядок такой:

  1. Откройте карточку обработки.
  2. Посмотрите, какой режим подключения указан и какие разрешения она запросила.
  3. Если обработке нужен доступ к файлам или COM, а включены профили безопасности, программа предложит подтвердить разрешения. Администратор подтверждает их, и только после этого обработка заработает.
  4. Если профили безопасности не используются, а обработка всё равно падает, проверьте у автора, как она объявляет режим в своих сведениях. Разработчику достаточно поправить одну строку в описании обработки.

Предупреждение при открытии файла

Если 1С при открытии внешней обработки через Файл → Открыть показывает окно предупреждения о безопасности, это защита от опасных действий. Она появилась в ветке платформы 8.3.9 и включается для каждого пользователя.

Отключить её можно двумя способами.

Для конкретного пользователя. В Конфигураторе: Администрирование → Пользователи, откройте пользователя и снимите флажок «Защита от опасных действий». Изменение действует со следующего входа.

Для всех пользователей на компьютере. В файл conf.cfg добавьте строку:

DisableUnsafeActionProtection=.*

Файл лежит в каталоге установленной платформы, обычно C:\Program Files\1cv8\conf\conf.cfg или в папке bin\conf конкретной версии. Значение — регулярное выражение для строки соединения с базой. .* отключает защиту для всех баз. Чтобы отключить только для тестовой базы, укажите часть её имени или пути:

DisableUnsafeActionProtection=.*Test_Buh.*

Несколько шаблонов перечисляют через точку с запятой. Файл правят с правами администратора Windows, затем перезапускают 1С.

💡 На терминальном сервере conf.cfg один на всех. Строка .* отключит защиту для каждого пользователя каждой базы. Указывайте шаблон конкретной базы.

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

Как обновления конфигурации и платформы влияют на защищённый режим

Проблема часто всплывает сразу после обновления. Вчера работало — сегодня ошибка.

Причины, которые встречаются после обновлений:

  • 🔄 Обновили платформу на новую ветку. Новые версии платформы ужесточают правила: появилась защита от опасных действий, расширения из режима 1С:Предприятие стали подключаться безопасно по умолчанию.
  • 📦 Обновили конфигурацию. Новая редакция БСП может по-другому проверять разрешения дополнительных обработок или запрашивать их заново.
  • 🧩 Переустановили расширение. При удалении и повторной загрузке расширения из программы флажок «Безопасный режим» снова включён, хотя раньше его снимали.
  • 🖥️ Перенесли базу на другой сервер. На новом кластере базе может быть назначен профиль безопасности, а на старом его не было.

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

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

Пошаговый порядок действий администратора

Когда пользователь пишет «обработка не работает , ругается на безопасный режим», идите сверху вниз и не перескакивайте.

Где возникает ошибка?

Дальше — общий порядок:

  1. Зафиксируйте ошибку. Точный текст, время, пользователь, какое действие выполнялось.
  2. Найдите запись в журнале регистрации и определите модуль: расширение, внешняя обработка или типовой код.
  3. Определите механизм по таблице из первого раздела.
  4. Проверьте источник кода. Если обработку прислал неизвестный исполнитель, сначала откройте её в Конфигураторе и посмотрите, что она делает с файлами и сетью.
  5. Снимите ограничение точечно: у одного расширения, у одной базы, у одного пользователя. Не отключайте защиту «для всех».
  6. Перезапустите сеансы и проверьте результат под учётной записью пользователя, а не своей.
  7. Запишите, что изменили. Через полгода после переустановки расширения вопрос вернётся, и запись сэкономит время.

Если не помогло

Флажок снят, сеансы перезапущены, а ошибка осталась. Проверьте три вещи:

  • 👤 Права пользователя. Если ошибка звучит как нарушение прав доступа, нужно добавить роль, а не снимать безопасный режим.
  • 🧾 Код включает безопасный режим сам. Найдите в модуле вызов УстановитьБезопасныйРежим или обращение к функции БСП, которая выполняет код в безопасном режиме. Это поведение программы, настройкой его не отменить.
  • 🖥️ Ошибка на стороне сервера. Действие может быть запрещено не 1С, а операционной системой: у пользователя, от имени которого работает служба сервера 1С, нет прав на папку. Текст ошибки в этом случае говорит о доступе к файлу или каталогу.

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

Можно ли отключить безопасный режим для всех расширений сразу?
Общей кнопки нет. Флажок снимают у каждого расширения отдельно, и это правильно: так видно, какому коду вы дали полный доступ.
Безопасный режим замедляет работу 1С?
Нет. Он не влияет на скорость запросов и проведения документов, только запрещает отдельные операции.
Почему в файловой базе расширение работает, а в серверной копии — нет?
Скорее всего, серверной базе назначен профиль безопасности в кластере. В файловой базе профилей кластера нет. Сравните свойства базы в консоли администрирования серверов.
Что безопаснее: снять защиту от опасных действий или безопасный режим расширения?
Защита от опасных действий только предупреждает перед открытием файла. Снятие безопасного режима даёт коду доступ к файлам, сети и программам. Второе требует большей уверенности в авторе кода.
Как узнать, работает ли код сейчас в безопасном режиме?
Вызовите функцию БезопасныйРежим() в отладчике или в самом коде. Ответ Ложь значит, что ограничений нет.