Обработка или расширение не работает из-за безопасного режима: как снять ограничение в 1С 8.3
Содержание
Чтобы выйти из безопасного режима в 1С 8.3, снимите флажок «Безопасный режим» у того объекта, который попал под ограничение: у расширения — в списке расширений конфигурации, у дополнительной обработки — в её карточке, у всей базы — уберите профиль безопасности в свойствах информационной базы на сервере. Предупреждение при открытии внешнего файла отключается отдельно: флажком «Защита от опасных действий» в свойствах пользователя или строкой DisableUnsafeActionProtection в файле conf.cfg.
Типичная ситуация: программист прислал расширение для обмена с сайтом, бухгалтер загрузил его, а при первой выгрузке получил ошибку со словами «безопасный режим». Код верный, просто платформа запустила его с урезанными правами. Блокировку безопасного режима 1С снимают за пару минут, если понять, какой из механизмов защиты сработал. Их несколько, и путают их постоянно.
Почему 1С включает безопасный режим и чем он отличается от защиты от опасных действий
Под словами «безопасный режим» в 1С скрываются разные механизмы. От того, какой сработал, зависит, где его выключать.
| Механизм | Что делает | Когда срабатывает | Где отключается |
|---|---|---|---|
| Безопасный режим расширения | Код расширения выполняется с ограничениями | Расширение загружено в режиме 1С:Предприятие | Флажок в списке расширений |
| Безопасный режим дополнительной обработки | Ограничивает код обработки, подключённой в справочник | Обработка подключена через раздел дополнительных отчётов и обработок | Карточка обработки |
| Профиль безопасности базы | Ограничения для всего кода или для кода в безопасном режиме | Профиль назначен базе в кластере серверов | Консоль кластера |
| Защита от опасных действий | Предупреждение перед открытием внешнего файла | Открытие внешней обработки, отчёта, расширения из файла | Свойства пользователя или conf.cfg |
| Программный безопасный режим | Код сам включает ограничения перед выполнением | Разработчик вызвал УстановитьБезопасныйРежим(Истина) | Только правкой кода |
Первые четыре варианта решаются настройкой. Пятый — это решение разработчика. Например, механизмы на базе БСП выполняют произвольные формулы и алгоритмы в безопасном режиме намеренно, чтобы пользовательский код не получил доступ к файлам сервера.
💡 Защита от опасных действий — это не безопасный режим. Она только спрашивает «вы уверены?» перед открытием файла. Если обработка открылась и упала на середине, дело не в ней.
Что запрещено коду в защищённом режиме
Понять, что ошибка связана с безопасным режимом, проще всего по набору запрещённых действий. Если обработка падает ровно в момент, когда обращается к чему-то из списка, — причина почти наверняка здесь.
В безопасном режиме коду недоступны:
- 📁 чтение и запись файлов на диске, кроме временных средств, которые разрешает профиль;
- 🧩 создание COM-объектов: Excel через COM,
V83.COMConnector,Scripting.FileSystemObject; - 🔌 подключение внешних компонент, например драйверов торгового оборудования;
- 🖥️ запуск внешних программ и команд операционной системы;
- 🌐 обращения к интернет-ресурсам: HTTP-соединения, почта, FTP;
- 🔑 установка привилегированного режима, то есть обход прав пользователя.
Обычные операции работают как раньше: запросы к базе, запись документов, формирование отчётов, расчёты. Поэтому расширение, которое только меняет печатную форму или добавляет реквизит, в безопасном режиме живёт спокойно. Ломается то, что общается с внешним миром: обмены, загрузка из Excel , выгрузка на сайт, отправка писем, работа с оборудованием.
Безопасный режим придуман как защита от вредоносного кода. Внешняя обработка без ограничений может прочитать файлы на сервере, отправить их наружу или удалить. Отключайте его только для кода, автору которого доверяете и который вы видели.
Как найти причину блокировки в журнале регистрации и отладчике
Прежде чем снимать флажки, убедитесь, что ошибку вызывает именно безопасный режим, а не права пользователя или ошибка в коде.
Журнал регистрации
- Откройте журнал: в БП 3.0, ЗУП 3.1 и УТ 11 —
Администрирование → Обслуживание → Журнал регистрации. - Установите отбор по времени: 5-10 минут вокруг момента ошибки.
- В отборе по уровню оставьте «Ошибка».
- Отберите события по пользователю, у которого возникла проблема.
- Откройте запись двойным щелчком и прочитайте комментарий целиком.
Признак безопасного режима — в тексте упоминается безопасный режим или запрет операции, а в стеке вызовов стоит модуль расширения или внешней обработки. Если же в тексте «Нарушение прав доступа!», дело в ролях пользователя. Безопасный режим тут ни при чём, и снимать его бесполезно.
Отладчик
Журнал покажет строку и модуль, но не покажет, откуда пришёл вызов. Для этого нужен отладчик в Конфигураторе:
- Откройте базу в Конфигураторе и запустите
Отладка → Начать отладку. - Включите
Отладка → Остановка по ошибке. - Повторите действие, на котором падала обработка.
- Когда отладчик остановится, откройте стек вызовов и посмотрите всю цепочку.
Удобный приём — вычислить в табло функцию БезопасныйРежим(). Она возвращает Ложь, если ограничений нет, Истина или имя профиля безопасности — если есть. Так за секунду видно, работает ли код в защищённом режиме в этом месте.
Для клиент-серверной базы есть нюанс: чтобы отлаживать серверный код, сервер должен быть запущен с разрешённой отладкой. Если в рабочей базе её нет, воспроизводите ошибку на копии.
Как отключить безопасный режим для расширения конфигурации
Это самая частая ситуация. Расширение, загруженное пользователем в режиме 1С:Предприятие, платформа по умолчанию подключает в безопасном режиме.
Через список расширений в программе
- Откройте
Администрирование → Печатные формы, отчеты и обработки → Расширения(путь для БП 3.0, ЗУП 3.1, УТ 11). - Найдите нужное расширение в списке.
- Снимите флажок «Безопасный режим». Если колонки не видно, откройте карточку расширения.
- Перезапустите программу: изменения подключения расширений применяются при новом сеансе.
Если в форме БСП флажок недоступен, откройте стандартную форму платформы: Главное меню → Все функции → Стандартные → Управление расширениями конфигурации. Пункт «Все функции» включается в Главное меню → Сервис → Параметры флажком «Отображать команду “Все функции”».
Снимать флажок может только пользователь с административными правами. Перезапуск нужен всем, кто сейчас работает в базе: пока сеанс открыт, у него действует старая настройка. Предупредите коллег или сделайте это вне рабочего времени.
Через Конфигуратор
В Конфигураторе откройте Конфигурация → Расширения конфигурации. В списке расширений есть свойство «Безопасный режим» — снимите его и обновите конфигурацию базы данных, если программа об этом попросит. Расширения, добавленные через Конфигуратор, разработчики обычно подключают без безопасного режима сразу.
Внешние обработки и защита от опасных действий: настройки клиента и параметры запуска
Дополнительная обработка в справочнике
Обработки, подключённые через Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки, работают по правилам БСП. Обработка сама сообщает, нужен ли ей безопасный режим и какие разрешения она запрашивает: файлы, интернет-адреса, внешние компоненты.
Порядок такой:
- Откройте карточку обработки.
- Посмотрите, какой режим подключения указан и какие разрешения она запросила.
- Если обработке нужен доступ к файлам или COM, а включены профили безопасности, программа предложит подтвердить разрешения. Администратор подтверждает их, и только после этого обработка заработает.
- Если профили безопасности не используются, а обработка всё равно падает, проверьте у автора, как она объявляет режим в своих сведениях. Разработчику достаточно поправить одну строку в описании обработки.
Предупреждение при открытии файла
Если 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С, а операционной системой: у пользователя, от имени которого работает служба сервера 1С, нет прав на папку. Текст ошибки в этом случае говорит о доступе к файлу или каталогу.
Частые вопросы
Можно ли отключить безопасный режим для всех расширений сразу?
Безопасный режим замедляет работу 1С?
Почему в файловой базе расширение работает, а в серверной копии — нет?
Что безопаснее: снять защиту от опасных действий или безопасный режим расширения?
Как узнать, работает ли код сейчас в безопасном режиме?
БезопасныйРежим() в отладчике или в самом коде. Ответ Ложь значит, что ограничений нет.