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

Программист 1С v8.3 (Управляемые формы) 1С:Зарплата и Управление Персоналом IT и автоматизация бизнеса
← На главную

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

Особенно часто эта проблема проявляется в конфигурациях, построенных на базе Библиотеки стандартных подсистем (БСП), таких как 1С:Зарплата и управление персоналом (ЗУП 3.1), 1С:ERP, 1С:Комплексная автоматизация или 1С:Управление торговлей.

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

Почему возникает ошибка при добавлении новых объектов?

Давайте разберем ситуацию изнутри. Когда мы разрабатываем простое расширение, которое лишь перехватывает методы существующих документов или справочников с помощью аннотаций &Вместо, &Перед или &После, платформа относится к такому коду лояльно. Но все кардинально меняется, когда в расширение добавляется новый собственный объект метаданных (например, новый справочник, документ, регистр сведений или регистр накопления).

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

Рассмотрим несколько эффективных способов решения этой проблемы.

Решение 1. Изменение назначения расширения в Конфигураторе

По умолчанию при создании нового расширения в Конфигураторе ему присваивается назначение «Адаптация» или «Исправление» (предназначено для патчей). В этих режимах действуют жесткие ограничения на создание собственных таблиц БД.

Для исправления ситуации выполним следующие шаги:

  1. Откроем базу в режиме Конфигуратор.
  2. Перейдем в меню: Конфигурация — Расширения конфигурации.
  3. В открывшемся списке найдем наше расширение и откроем его свойства (правой кнопкой мыши — Свойства).
  4. В палитре свойств найдем строку «Назначение».
  5. Изменим значение с «Адаптация» или «Исправление» на «Дополнение».
  6. Сохраним изменения и обновим конфигурацию базы данных (клавиша F7).

Тип назначения Дополнение сообщает платформе, что данное расширение создано специально для расширения функционала и добавления новых объектов метаданных, что снижает строгость проверок при реструктуризации.

Решение 2. Отключение константы БСП «Использовать профили безопасности»

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

Чтобы отключить этот контроль, выполним следующие действия в режиме Предприятия:

  1. Запустим 1С:Предприятие под пользователем с Административными (полными) правами.
  2. Перейдем в главное меню, выберем пункт «Функции для технического специалиста» (в старых версиях платформы этот пункт назывался «Все функции»). Если этот пункт недоступен, его нужно предварительно включить в настройках параметров системы.
  3. В строке поиска введем слово «профили» и найдем раздел Константы.
  4. Откроем константу «Использовать профили безопасности» (или «Используются профили безопасности»).
  5. Снимем флаг (установим значение в Ложь), запишем изменения.
  6. Перезапустим сеанс 1С и попробуем подключить расширение снова.

Решение 3. Загрузка расширения напрямую через Конфигуратор

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

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

  1. В режиме Предприятия временно удалим проблемное расширение, если оно отображается со статусом ошибки.
  2. Откроем базу в режиме Конфигуратор.
  3. Перейдем в список расширений (Конфигурация — Расширения конфигурации).
  4. Добавим новое пустое расширение (или выберем существующее) и загрузим в него наш файл .cfe через меню Конфигурация — Загрузить конфигурацию из файла....
  5. В свойствах загруженного расширения снимем галочки «Безопасный режим» и «Защита от опасных действий».
  6. Выполним обновление конфигурации базы данных (клавиша F7). Примем изменения структуры базы данных.

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

Решение 4. Отключение защиты от опасных действий

Начиная с версии платформы 8.3.9, в 1С встроен механизм защиты от выполнения потенциально опасных действий (открытие внешних обработок, подключение расширений, запуск внешних приложений). Этот механизм также может неявно вызывать блокировку расширения.

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

  1. В свойствах расширения: В окне «Расширения конфигурации» в Конфигураторе найдем колонку «Защита от опасных действий» и снимем этот флаг для нашего расширения.
  2. В свойствах пользователя: Откроем список пользователей в Конфигураторе (Администрирование — Пользователи). Найдем пользователя, под которым мы запускаем систему. На вкладке «Основные» найдем свойство «Защита от опасных действий» и снимем этот флаг.

Решение 5. Настройка профилей безопасности в кластере серверов (для клиент-серверного варианта)

Если ваша база данных развернута на сервере (SQL-вариант), жесткие ограничения могут быть наложены на уровне самого кластера серверов 1С:Предприятия.

Если для информационной базы в консоли администрирования кластера задан конкретный профиль безопасности, то любые попытки расширения создать новые таблицы СУБД будут пресекаться службой кластера.

Выясним, как это проверить:

  1. Откроем утилиту «Администрирование серверов 1С:Предприятия».
  2. Найдем наш кластер, перейдем в ветку «Информационные базы» и найдем нашу базу.
  3. Откроем свойства информационной базы.
  4. Найдем поле «Профиль безопасности». Если там выбрано определенное имя профиля, то это означает, что в системе действует политика ограничений.
  5. Для проверки гипотезы можно временно очистить это поле (сделать его пустым), перезапустить службу сервера 1С и проверить подключение расширения.

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

Таким образом, мы рассмотрели пять надежных и проверенных способов преодоления ошибки безопасного режима. Рекомендуется начинать решение с изменения назначения расширения на Дополнение и загрузки через Конфигуратор, так как в 90% случаев это решает проблему добавления новых объектов метаданных.

← На главную