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

· 9 мин

Содержание

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

Режим общий для платформы 1С:Предприятие 8.3. Поэтому он одинаково работает в Бухгалтерии 3.0, ЗУП 3.1, УТ 11 и других типовых конфигурациях. Разница только в том, где в конкретной программе лежит список расширений и дополнительных обработок.

«Безопасный режим 1С» часто путают с безопасным режимом Windows или с монопольным режимом базы. Это три разных механизма. Ниже разобраны все три, чтобы было понятно, какой из них нужен в вашей ситуации.

Зачем платформа ограничивает запуск стороннего кода

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

Режим включается в нескольких случаях:

  • 📄 Дополнительная обработка или отчёт. При регистрации в справочнике дополнительных отчётов и обработок типовые конфигурации на БСП по умолчанию выполняют такой код в безопасном режиме.
  • 🧩 Расширение конфигурации . У каждого расширения есть свойство «Безопасный режим». Расширения, загруженные из пользовательского режима, обычно получают его включённым.
  • 🔧 Программный вызов. Разработчик сам включает режим перед выполнением произвольного алгоритма, например текста из справочника.
  • 🖥️ Профиль безопасности кластера. В клиент-серверном варианте администратор назначает базе профиль безопасности безопасного режима, и тогда ограничения задаёт кластер.

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

Что запрещено в безопасном режиме, а что работает как обычно

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

ДействиеОбычный режимБезопасный режим
Чтение и запись данных базыпо правам пользователяпо правам пользователя
Привилегированный режимразрешёнзапрещён
Работа с файлами на дискеразрешеназапрещена
Запуск внешних программ (ЗапуститьПриложение)разрешёнзапрещён
COM-объекты (Excel, Word, ADO)разрешенызапрещены
Внешние компонентыразрешенызапрещены
HTTP, FTP, почтаразрешенызапрещены
Вычисление формул, выполнение алгоритмовразрешеноразрешено, но с теми же запретами

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

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

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

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

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

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

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

В пользовательском режиме типовых конфигураций на БСП:

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

В Конфигураторе то же свойство видно в окне Конфигурация → Расширения конфигурации: у каждого расширения есть колонка «Безопасный режим». Там же есть свойство «Защита от опасных действий».

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

Для дополнительной обработки или отчёта

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

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

Программно, в коде

Разработчик включает режим перед выполнением алгоритма, которому не доверяет полностью:

УстановитьБезопасныйРежим(Истина);
Выполнить(ТекстАлгоритма);

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

Защита от опасных действий: предупреждение при открытии файлов

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

Предупреждение включается свойством пользователя «Защита от опасных действий». Где его найти:

  1. В Конфигураторе откройте Администрирование → Пользователи.
  2. Откройте нужного пользователя и перейдите на вкладку «Прочие».
  3. Флажок «Защита от опасных действий» включает или выключает предупреждения.

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

DisableUnsafeActionProtection=.*test.*;.*copy.*

В этом примере защита снимается для баз, в строке соединения которых встречается test или copy. Рабочие базы под такой шаблон попадать не должны.

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

Безопасный запуск 1С для поиска причины сбоя

У платформы нет кнопки «запустить в безопасном режиме», как у Windows. Но если программа падает при входе или ведёт себя странно, можно запустить её в «очищенном» виде и отсечь лишнее. Действуйте по очереди, от самого безобидного шага.

  1. Сбросьте кэш. Добавьте к ярлыку или к строке запуска параметр /ClearCache. Платформа удалит локальный кэш конфигурации и загрузит его заново. Пользователи на других компьютерах этого не заметят.
  2. Войдите под другим пользователем. Если под ним сбоя нет, дело в настройках конкретного пользователя или в его правах.
  3. Отключите расширения. В списке расширений снимите флажок «Активно» у подозрительных, по одному. Это быстро показывает, виновато ли доработанное расширение.
  4. Отключите стартовые окна. Параметры /DisableStartupMessages и /DisableStartupDialogs убирают предупреждения и диалоги при старте, если программа зависает на них.
  5. Проверьте другим клиентом. Если сбой только в тонком клиенте, а в веб-клиенте его нет, ищите проблему на рабочем месте: кэш, версия платформы, антивирус.
  6. Посмотрите журнал регистрации. В разделе Администрирование → Обслуживание откройте журнал регистрации и отфильтруйте события по пользователю и времени сбоя. Ошибки безопасного режима и отказы в доступе видны там с текстом и именем модуля, в котором они возникли.

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

Пример строки запуска с очисткой кэша:

"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F"D:\Bases\Buh" /ClearCache

Для серверной базы вместо /F используется /S"сервер\имябазы".

Диагностика: выберите симптом

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

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

Монопольный доступ нужен для нескольких операций:

  • 🔄 обновление конфигурации с изменением структуры базы;
  • 📦 загрузка информационной базы из файла .dt;
  • 🛠️ тестирование и исправление базы;
  • 🗂️ некоторые операции свёртки и перегруппировки данных.

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

Как освободить базу

В типовых конфигурациях на БСП для этого есть встроенная команда:

  1. Откройте Администрирование → Обслуживание.
  2. Найдите команду «Блокировка работы пользователей».
  3. Задайте время начала блокировки, текст сообщения для пользователей и код разрешения.
  4. Нажмите «Установить блокировку». Пользователям покажется предупреждение, затем их сеансы будут завершены.

Блокировка обрывает работу всех пользователей. Несохранённые документы потеряются. Ставьте её на вечер или предупредите коллег заранее, хотя бы за 10–15 минут.

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

Как войти в заблокированную базу

Администратору, который выполняет обновление, нужен код разрешения. Его передают в параметре запуска:

"C:\Program Files\1cv8\common\1cestart.exe" DESIGNER /S"srv01\buh" /UC123456

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

После обновления блокировку обязательно снимите той же командой или в консоли. Иначе утром никто не сможет войти.

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

Отключение снимает защиту полностью, поэтому его стоит избегать, если есть путь мягче:

  • 📁 обработке нужна одна папка для выгрузки — в клиент-серверной базе разрешите только эту папку через профиль безопасности или через запрос разрешений;
  • 🧾 расширение меняет только печатную форму — режим ему не мешает, ошибка в другом;
  • ✉️ файл пришёл от незнакомого отправителя «для исправления ошибок» — не открывайте его в рабочей базе вовсе, проверьте сначала на копии;
  • 🔍 ошибка появилась после обновления конфигурации — сначала проверьте, совместима ли обработка с новым релизом, а уже потом трогайте режим.

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

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

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