Безопасный режим расширения 1с что это

от admin

Расширения конфигурации и ошибка «Установлен безопасный режим. Выполнение операции запрещено»

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

Безопасный режим и привилегированный режим исполнения кода

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

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

Начиная с версии 8.2 в глобальном контексте реализован метод УстановитьБезопасныйРежим(<БезопасныйРежим>), позволяющий включить (истина) или выключить (ложь) безопасный режим, и метод БезопасныйРежим(), позволяющий проверить, включен или выключен безопасный режим.

В безопасном режиме ( значение истина) действуют следующие ограничения:

  • привилегированный режим отменяется, если он был установлен,
  • попытки перейти в привилегированный режим игнорируются,
  • запрещены операции с COM-объектами,
  • запрещена загрузка и подключение внешних компонентов,
  • запрещен доступ к файловой системе, кроме временных файлов,
  • запрещен доступ к Интернету.

Работа расширения в безопасном режиме

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

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

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

Стандартно расширение создается с установленным флажком Безопасный режим :

Рис 1. Установка безопасного
режима в свойствах расширения

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

Рис 2 Сообщение об ошибке расширения модуля объекта в режиме «1С:Предприятие»

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

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

Если же ваше прикладное решение работает в клиент-серверном варианте, то возможность расширения серверных модулей регулируется профилем безопасности. Имя профиля безопасности задается здесь же, в списке расширений, в колонке Безопасный режим, имя профиля безопасности (см. рис.1). В самом профиле безопасности вы можете или разрешить расширение для всех серверных модулей, а исключения перечислить в свойстве Недоступные для расширения модули, или просто перечислить все разрешенные расширения модулей в свойстве Доступные для расширения модули.

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

1. Рекомендации по подготовке расширений конфигурации

1.1. Основные причины отказа

Большинство расширений конфигурации не проходят аудит по следующим причинам:

  • Расширение не предназначено для выполнения в безопасном режиме.
  • Расширение не подготовлено к использованию в сервисе.
  • Не задана версия расширения.
1.2. Особенности расширений конфигурации
  • У расширения должны быть заданы уникальное имя и версия расширения.
  • Разработка должна выполняться на той же версии платформы.
  • Необходима адаптация к безопасному режиму и режиму разделения данных.
1.3. Полезная информация
  • Необходимо выполнять требования, указанные в Руководстве разработчика «1С:Предприятия 8.3»: глава «Расширение конфигурации» (см. по ссылке).
  • Если расширение содержит формы, разработчик должен обеспечить их работоспособность в веб-клиенте под всеми веб-браузерами, поддерживаемыми технологической платформой «1С:Предприятие 8».

2. Рекомендации по подготовке дополнительных отчетов и обработок

2.1. Основные причины отказа

90% дополнительных отчетов и обработок не проходят аудит по следующим причинам:

  1. Неправильное подключение дополнительного отчета/обработки к БСП.
  2. Дополнительный отчет или обработка не предназначены для выполнения в безопасном режиме.
  3. Дополнительный отчет или обработка не подготовлены к использованию в сервисе.
  4. Неверное обращение к дополнительному отчету/обработке из кода.
2.2. Подключение дополнительного отчета/обработки к БСП

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

Описание полей структуры параметров регистрации приведено в документации БСП по ссылке.

Параметры регистрации включают таблицу команд, поставляемых дополнительным отчетом (дополнительной обработкой):

  • для глобальных дополнительных отчетов/обработок эти команды размещаются в глобальном командном интерфейсе;
  • для назначаемых дополнительных отчетов/обработок эти команды размещаются в контексте тех объектов, для которых они предназначаются, при этом в параметрах регистрации дополнительного отчета/обработки должны быть указаны объекты назначения (массив строк имен объектов метаданных).

Вид дополнительного отчета/обработки, тип использования поставляемых команд должен соответствовать замыслу дополнительного отчета/обработки.

2.3. Обращение к дополнительному отчету/обработке из кода

Следует учесть, что нельзя обращаться к дополнительному отчету/обработке по имени, например:

Дополнительный отчет/обработка подключается информационной базе с другим именем (уникальным идентификатором). Поэтому для формирования обращения к дополнительному отчету/обработке следует в обработчике ПриСозданииНаСервере определить полное имя подключенного отчета/обработки следующим образом:

И далее обращаться к дополнительному отчету/обработке следующим образом:

2.4. Отладка дополнительного отчета/обработки

При отладке дополнительного отчета или обработки открывайте его не через главное меню: Файл — Открыть , а через интерфейс подсистемы дополнительных отчетов и обработок БСП.

Открывайте и проверяйте обработку не c правами администратора, а с набором прав тех пользователей, которые будут использовать обработку.

3. Как использовать методы, запрещенные в безопасном режиме

3.1. Безопасный режим

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

В безопасном режиме запрещены следующие операции:

  • Выполнение методов Выполнить() и Вычислить()
  • Привилегированный режим
  • Работа с внешними компонентами
  • Работа с файловой системой, кроме временных файлов
  • Работа с приложениями операционной системы
  • COM-объекты (серверный код может выполняться на Linux, мы не можем гарантировать наличие COM-объектов на сервере)
  • Доступ к Интернету и др.
Читать:
Как включить wi fi direct на ноутбуке

Подробнее о безопасном режиме можно прочесть в документации по «1С:Предприятию» по ссылке.

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

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

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

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

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

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

3.3. Какие небезопасные методы можно, и какие нельзя использовать

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

  • доступ к каталогу временных файлов (на чтение и/или на запись);
  • доступ к интернет-ресурсам;
  • привилегированный режим;
  • доступ к внешним компонентам, входящим в состав конфигурации, для которой разработаны расширение конфигурации, дополнительный отчет или обработка.
  • доступ к файловой системе (кроме доступа к каталогу временных файлов);
  • доступ к COM-объектам (поскольку серверный код может выполняться на Linux, мы не можем гарантировать наличие COM-объектов на сервере);
  • доступ к внешним компонентам, не входящим в состав конфигурации, для которой разработаны расширение конфигурации, дополнительный отчет или обработка;
  • приложения операционной системы;
  • средства криптографии на стороне сервера.

Учтите, что небезопасные операции запрещены только на сервере!

3.4. Запрос разрешений для расширений конфигурации

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

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

3.5. Запрос разрешений для дополнительных отчетов и обработок

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

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

4. Вопросы производительности

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

Особое внимание следует уделить оптимизации:

  • соединений с виртуальными таблицами, подзапросами (они могут привести к значительному замедлению запроса);
  • отборов с «ИЛИ»;
  • запросов с получением данных через точку от полей составного ссылочного типа (при выполнении такого запроса будет выполняться соединение со всеми таблицами объектов, входящими в составной тип).

Частые формулировки отказа: “Запрос построен неоптимально. Необходимо руководствоваться рекомендациями https://its.1c.ru/db/metod8dev/content/5842/hdoc”

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

5. Универсальные обработки и расширения

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

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

Частые формулировки отказа: “Мы не можем разрешить использование универсальных обработок, так как их применение предполагает высокий уровень квалификации пользователей, а гарантировать эту квалификацию невозможно”

6. Использование временных файлов

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

  • гарантируется уникальность имени временного файла;
  • выполняется автоматическая очистка при рестарте рабочего процесса.

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

Частые формулировки отказа: “Для получения имени временного файла необходимо использовать метод ПолучитьИмяВременногоФайла(); Необходимо удалять временные файлы после использования”.

7. Прочие вопросы

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

  1. Длительные операции необходимо выполнять в фоновом режиме.
  2. Если пользовательские данные покидают сервис, то пользователь должен дать на это согласие.
  3. Не должна нарушаться штатная логика работы прикладных решений (конфигураций). Не следует отключать штатные механизмы и проверки, например с помощью конструкций вида:

Как подключить расширение конфигурации

Установка расширений выполняется пользователем с полными правами (с правами администратора).

Необходимо скачать и распаковать архив с расширением.

Расширение можно установить двумя способами:

  • В пользовательском режиме.
  • Через конфигуратор.

Установка расширений в пользовательском режиме

Пункт меню НСИ и администрирование -> Печатные формы, отчеты и обработки -> Расширения :

нси и администрирование в 1с

расширения

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

список расширений в 1с

Нажать кнопку Добавить из файла -> Предупреждение безопасности_ Продолжить:

предупреждение безопасности

В открывшемся окне выбрать файл, соответствующий конфигурации базы:

выбор файла расширения

  • УТ – Управление торговлей
  • КА – Комплексная автоматизация
  • ERP – Управление предприятием
  • УНФ – Управление нашей фирмой
  • БП – Бухгалтерия предприятия

В скобках может быть указана версия конфигурации:

версия конфигурации 1С

После загрузки файла открывается окно:

безопасный режим

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

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

расширение подключено

Установка расширений через конфигуратор

Необходимо скачать и распаковать архив с расширением.

Конфигурация –> Расширения конфигурации –> Создать –> Ок:

установка расширения

создание пустого расширения

Создано пустое расширение. Выделить его:

пустое расширение

Конфигурация –> Загрузить конфигурацию из файла:

загрузка расширения из файла

Выбрать нужный файл:

подбор файла расширения

предупреждение конфигурация не пустая

выполнена полная загрузка конфигурации

Снять галки Безопасный режим и Защита от опасных действий. Запустить отладку. Программа откроется в пользовательском режиме.

отключение галок безопасный режим и защиты от опасных действий

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

В видеоуроке показано, как подключать расширения в типовых конфигурациях 1С 8.3 на примере подключения обработки отключения рекламы при старте пользовательского сеанса в Бухгалтерии предприятия 3.0

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

Вас интересуют дополнительные функции,
модули, индивидуальные разработки?

Похожие статьи