Рисунок 1 — Ошибка «Установлен безопасный режим. Выполнение операции запрещено»
- Интерактивное открытие внешних отчетов и обработок;
- Использование дополнительных отчетов и обработок.
Рисунок 2 — Ввод наименования группы
После в меню Пользователи (раздел Администрирование – Настройки пользователей и прав) из списка сотрудников нужно выбрать тех, кто будет использовать сервис и через кнопку Права доступа предоставить доступ на использование дополнительных отчетов и обработок.
Видеоурок 1С БСП: Дополнительные отчеты и обработки (Часть 3: Сведения о внешней обработке)
Рисунок 3 — Доступ на использование дополнительных отчетов и обработок
Для запуска обработки рекомендуется добавить Fasta к списку внешних обработок. Для этого в меню Администрирование / Печатные формы и обработки / Дополнительные отчеты и обработки создайте новую обработку. Укажите путь к файлу «Fasta.epf» и присвойте имя. Укажите размещение обработки в меню, откуда пользователь сможет запустить ее в дальнейшем, например, раздел Покупки и продажи.
Рисунок 4 — Размещение обработки в меню
Для того, чтобы указать кому из пользователей будет доступна обработка можно использовать Быстрый доступ.
Рисунок 5 — Использование быстрого доступа
Иногда, все описанное выше не помогает решить вопрос, тогда необходимо выполнить еще одну настройку.
Откройте Меню — Все функции и найдите в списке параметр Используются профили безопасности.
Рисунок 6 — Профили безопасности
Достаточно снять флаг с опции «Используются профили безопасности».
Рисунок 7 — Отключение чекбокса «Используются профили безопасности»
Для запуска обработки пользователям достаточно будет выполнить перезапуск базы, после чего открытие обработки будет доступно из раздела Покупки или Продажи – Дополнительные отчеты или Дополнительные обработки. Для запуска выбираем обработку и нажимаем кнопку Выполнить.
Безопасный режим Windows 10. Как запустить безопасный режим?
После этого программа будет запускаться успешно.
Источник: efsol.ru
Исправляем Установлен безопасный режим. Выполнение операции запрещено для внешней обработки
1С с выходом новых платформ и типовых конфигураций добавляет все новые механизмы для обеспечения безопасности в работе пользователей. Разработчикам, в свою очередь, требуется принять новые правила безопасности и доработать свои типовые решения. В этой записи мы разберем причины предупреждения «Установлен безопасный режим. Выполнение операции запрещено» и возможные пути по исправлению поведения.
- Отключение безопасного режима в интерфейсе
- Отключение безопасного режима при проектировании внешней обработки (печатной формы)
Отключение безопасного режима в интерфейсе
Если у Вас перестала запускаться внешняя обработка с сообщением о безопасном режиме, в первую очередь проверьте свойство «Защита от опасных действий» для пользователя, под которым выполняется запуск внешней обработки:
Если Вы доверяете поставщику внешней обработки — Вы можете отключить защиту от опасных действий. Дело в том, что определенный функционал внешней обработки или отчета может требовать отключения безопасного режима (подключение через Com-соединение к Excel, получение данных из сети). Именно поэтому возможна ситуация, когда необходимо будет отключить защиту для определенного пользователя.
Еще одна возможная ситуация — внешняя обработка перестала запускаться по расписанию с сообщениями об установленном безопасном режиме. Чтобы дать возможность нормально работать такой обработке — для регламентного задания нужно выбрать пользователя с полными правами (и отключенной защитой от опасных действий). Для этого переходим в регламентные задания (Администрирование => Обслуживание => Регламентные и фоновые задания). В списке регламентных заданий находим нужное регламентное задание по шаблону: Дополнительная обработка: Имя обработки.
Для этого регламентного задания указываете пользователя с полными правами, под которым будет это задание выполняться:
Обычно, этих действий достаточно для нормальной работы с внешней обработкой или для корректного запуска регламентного задания с использованием внешней обработки.
Отключение безопасного режима при проектировании внешней обработки (печатной формы)
Раньше можно было без особых проблем отключить безопасный режим при регистрации обработки или при ее выполнении. Фиксируем, что сейчас не работает:
- Отключение безопасного режима при регистрации обработки. Если Вы добавите строку «ПараметрыРегистрации.Вставить(«БезопасныйРежим», Ложь);» в метод СведенияОВнешнейОбработке() — это не отключит безопасный режим при выполнении обработки. Особенно, с учетом включенной защиты от опасных действий в настройках пользователя.
- Создание копии внешней обработки не в безопасном режиме. Раньше можно было при выполнении внешней обработки создать ее копию с отключением безопасного режима и таким образом реализовать необходимый функционал.
На данный момент при регистрации внешней обработки необходимо описывать возможные разрешения для внешней обработки. Для этого используется параметр регистрации «Разрешения» (тип Массив). В качестве примера рассмотрим добавление разрешения на создание Com-объекта «Excel.Application»:
Функция СведенияОВнешнейОбработке() Экспорт ПараметрыРегистрации = Новый Структура; МассивНазначений = Новый Массив; ПараметрыРегистрации.Вставить(«Вид», «ДополнительнаяОбработка»); //может быть — ПечатнаяФорма, ЗаполнениеОбъекта, ДополнительныйОтчет, СозданиеСвязанныхОбъектов.
ПараметрыРегистрации.Вставить(«Назначение», МассивНазначений); ПараметрыРегистрации.
Вставить(«Наименование», «Пример обработки»); //имя под которым обработка будет зарегестрирована в справочнике внешних обработок ПараметрыРегистрации.Вставить(«БезопасныйРежим», Ложь); ПараметрыРегистрации.
Вставить(«Версия», «1.0»); ПараметрыРегистрации.Вставить(«Информация», «Пример обработки»); ПараметрыРегистрации.
Вставить(«Разрешения», Новый Массив); ТаблицаКоманд = ПолучитьТаблицуКоманд(); ДобавитьКоманду(ТаблицаКоманд, «Выполнить обработку», «ВыполнитьОбработку», «ВызовСерверногоМетода», , «ВыполнитьОбработку»); ПараметрыРегистрации.Вставить(«Команды», ТаблицаКоманд); ПараметрыРегистрации.
Разрешения.Добавить(РаботаВБезопасномРежиме.РазрешениеНаСозданиеCOMКласса(«Excel.Application» , «00024500-0000-0000-C000-000000000046»)); Возврат ПараметрыРегистрации; КонецФункции
Для «Word.Application» CLSID будет «000209FF-0000-0000-C000-000000000046». При регистрации внешней обработки с описанием разрешения в форме внешней печатной формы добавится страница «Разрешения»:
Источник: tnsoft.ru
Отключить безопасный режим 1с 8.3. Безопасный режим работы
На примере «Управление торговлей 11.3» рассмотрим простой процесс подключения внешней печатной формы. Также рассмотрим особенности новой системы безопасности.
Предварительные действия
Для начала следует включить функционал
или проверить его доступность
1. Заходим под полными правами в информационную базу.
2. Заходим в меню «НСИ и администрирование»/Блок «Администрирование»/ Команда «Печатные формы,отчеты и обработки».
Добавление
В открывшемся разделе:
Добавляем обработку по кнопке «Создать» (это важно) или же «Обновляем!» существующую:
- Выделить ее в списке (если не выделено или пусто, команда не сработает, но ничего не скажет).
- Нажать кнопку «Загрузить из файла».
После появления для 1С во внешней обработки в новых конфигурациях появились проверки безопасности.
Следует устанавливать только обработки созданные самостоятельно или полученные по известным каналам связи (не из почты, только с сайта с действующим сертификатом, или предоставленным работниками разработчика, подтвержденным им по телефону).
Если в обработке все прописано разработчиком, то будут установлено «Размещение» — объекты в которых обработка будет задействована, появится команда(ы).
Для работы достаточно будет нажать «Записать и закрыть».
Проверка
Сразу после этого в зависимости от вида обработки:
- Печатная форма становится доступной при открытии документа или из его списка(для уже открытой при повторном открытии) по кнопке «Печать».
- Обработки доступны в разделах «Дополнительные обработки» в каждой подсистеме
- Обработки заполнения по кнопке «Заполнить» списка или главной командной панели формы объекта.
Для выше указанной обработки запуск будет выглядеть вот так:
Если документ новый, его следует записать, механизм внешних обработок вас предупредит об этом:
Дальнейшее поведение зависит от заложенного функционала: возможно открытие формы или же простая обработка данных.
Предупреждения безопасности в 1С
В новых релизах платформы и конфигурациях усилилась защита от запуска зловредных программ.
В обработке может вызваться запуск Excel для загрузки, в этом случае новая подсистема безопасности также предупредит вас:
При этом код обработчика прерывается.
В случае, если вы нажмете «Да», то система попросит вас повторно вызвать команду:
Для пользователя информационной базы возможно отключить защиту от опасных действий через «Конфигуратор»:
Из режима «Предприятие» изменить это нельзя, возможно так сделано специально, возможно появится после обновления.
Также следует обратить внимание, что если обработка использует Excel, она должна запускать в небезопасном режиме (так было и до введения новой системы, это работает параллельно):
«Невозможно загрузить MS EXCEL. » «Установлен безопасный режим. Выполнение операции запрещено»
Во внешних обработках это выглядит вот так:
Разработчику следует во внутреннем описании обработки установить его в «Ложь», тогда все будет нормально:
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = Новый Структура;
ПараметрыРегистрации.Вставить(«БезопасныйРежим», Ложь);
При обновлении конфигурации также появился предупреждающий текст об источнике, из которого был получен файл конфигурации:
С выходом платформы 8.3.9.2033 появился новый механизм «Защита от опасных действий»
.
Благодаря этому новшеству 1С –ка теперь на открытие обработки (и не только) стала ругаться:
Предупреждение безопасности
Открывается «Моя внешняя обработка» из файла «Моя_Внешняя_Обработка.epf»
Рекомендуется обращать внимание на источник, из которого получен данный файл. Если с источником нет договоренности о разработке дополнительных модулей, или есть сомнения в содержимом файла, то его не рекомендуется открывать, поскольку это может нанести вред компьютеру и данным.
Разрешить открывать данный файл?
Так 1С решила бороться с вредоносным кодом!
Откуда будет браться этот «вредоносный код» на предприятии пока загадка)
К потенциально опасным действиям отнесли:
- Загрузка внешнего отчета, обработки или расширения конфигурации.
- Загрузка или обновление конфигурации/расширения.
- Доступ из внешнего отчета/обработки или расширения к следующим возможностям:
- Исполнение команды операционной системы.
- Управление пользователями (запись или удаление информации о пользователе информационной базы).
- Вызов метода Подключить() менеджера внешних обработок (отчетов).
- Вызов метода РасширениеКонфигурации.Записать().
- Работа с COM-объектами.
Как же это «чудо» отключить?
Для этого необходимо запустить 1С Предприятие в режиме конфигуратора.
Выбрать меню «Администрирование» — «Пользователи».
В открывшемся окне наших пользователей, нужно открыть окно настройки пользователя и на закладке «Основные» убрать птичку «Защита от опасных действий»
Есть и другие способы отключить это:
Реализована возможность указать список информационных баз, при работе с которыми защита от опасных действий будет отключаться.
За данную функцию отвечает параметр DisableUnsafeActionProtection в файле conf.cfg, который позволяет отключить механизм защиты от опасных действий для всех пользователей определенных информационных баз, строки соединения которых удовлетворяют маскам указанным в параметре DisableUnsafeActionProtection.
В данном параметр можно указать несколько масок разделяемых символом «;», например:
DisableUnsafeActionProtection=test_.*;stage_.*;
Кроме этого защиту от опасных действий пользователя можно отключить программно, для чего имеются следующие параметры и свойства:
- Параметр ЗащитаОтОпасныхДействий методов Подключить() менеджеров внешних обработок (отчетов)
- Свойство ЗащитаОтОпасныхДействий объекта РасширениеКонфигурации перед вызовом метода Записать() этого объекта.
Проверка необходимости использования защиты от опасных действий выполняется в следующем порядке:
1. Если у текущего пользователя сброшен флажок «Защита от опасных действий», то защита считается отключенной.
2. Если строка соединения с информационной базой удовлетворяет одному из шаблонов, указанных в параметре DisableUnsafeActionProtection файла conf.cfg, то защита считается отключенной.
3. Если защита явным образом отключена с помощью параметра ЗащитаОтОпасныхДействий внешней обработки или отчета.
4. Если защита явным образом отключена с помощью свойства расширения ЗащитаОтОпасныхДействий.
Программное открытие внешней обработки осуществляется с помощью объекта глобального контекста ВнешниеОбработки, который имеет тип ВнешниеОбработкиМенеджер
. Для каждого режима работы платформы 1С (режим обычного приложения и режим управляемого приложения) используются различные методы объекта для работы с внешними обработками.
Запуск внешней обработки в режиме обычного приложения
В обычном приложении необходимо использовать метод Создать() объекта ВнешниеОбработки, в который передается полное имя файла внешней обработки. Метод возвращает объект типа ВнешняяОбработка
, этот объект и есть открываемая внешняя обработка. Если требуется открыть форму внешней обработки, то у полученного объекта вызываем метод ПолучитьФорму(), который вернет основную форму, а затем вызываем метод Открыть() для её открытия.
Обработка = ВнешниеОбработки.Создать(ПолноеИмяФайла);
Обработка.ПолучитьФорму().Открыть();
Во внешних обработках основной формой всегда должна быть обычная, а управляемая дополнительной, иначе не будет работать метод ПолучитьФорму() в режиме обычном приложения.
Запуск внешней обработки в режиме управляемого приложения
В режиме управляемых форм появляется разделение алгоритма по контексту выполнения. На клиенте получаем двоичные данные по полному имени файла внешней обработки. Передаем полученные двоичные данные на сервер и помещаем их во временное хранилище. Далее необходимо вызвать метод Подключить() объекта ВнешниеОбработки, в который передается адрес на временное хранилище.
Метод возвращает имя подключенной внешней обработки. Возвращаем имя внешней обработки на клиент, формируем строковый путь к форме обработки и с помощью метода ОткрытьФорму() открываем форму внешней обработки.
// Полное имя файла внешней обработки.
ДанныеФайла = Новый ДвоичныеДанные(ПолноеИмяФайла);
ИмяВнешнейОбработки = ПолучитьИмяВнешнейОбработки(ДанныеФайла);
ОткрытьФорму(«ВнешняяОбработка.» + ИмяВнешнейОбработки + «.Форма»);
Безопасный режим для внешних обработок
Методы Создать() и Подключить() объекта ВнешниеОбработки имеют входящий параметр БезопасныйРежим — признак подключения внешней обработки в безопасном режиме. Если параметр не указан, подключение будет осуществлено в безопасном режиме.
Безопасный режим работы предназначен для защиты системы от выполнения на сервере «ненадежного» программного кода. Потенциальную опасность представляют внешние обработки или программный код, вводимый пользователем для использования в методах Выполнить() и Вычислить().
В безопасном режиме накладываются следующие ограничения:
- привилегированный режим отменяется, если он был установлен;
- попытки перехода в привилегированный режим игнорируются;
- запрещены операции с COM-объектами;
- запрещена загрузка и подключение внешних компонентов;
- запрещен доступ к файловой системе (кроме временных файлов);
- запрещен доступ к Интернету.
Обработки, открытые интерактивно, выполняются не в безопасном режиме, поэтому рекомендуется реализация механизма открытия внешних обработок в безопасном режиме, а так же на уровне прав запретить пользователю интерактивное открытие внешних обработок.
Для запрета интерактивного открытия обработок, во всех ролях, назначенных пользователю, необходимо снять право «Интерактивное открытие внешних обработок» (см. рисунок 1).
Рисунок 1. Права интерактивного открытия внешних обработок/отчетов |
Право «Интерактивное открытие внешних обработок» никак не влияет на объект ВнешниеОбработки.
Программное открытие внешних отчетов, аналогично внешним обработкам, только следует использовать объект глобального контекста ВнешниеОтчеты, который имеет тип ВнешниеОтчетыМенеджер
.
При запуске программы Загрузка документов под обычным пользователем возникает ошибка «Установлен безопасный режим. Выполнение операции запрещено».
Эта сложность возникает т.к. для запуска внешней обработки недостаточно прав. Для настройки прав доступа зайдите в базу в режиме 1С Предприятие от имени Администратора
и перейдите в раздел Настройки пользователей и прав / Профили групп доступа,
нажмите Создать группу.
Введите название группы и отметьте галочками доступные пользователям этой группы роли —
- Интерактивное открытие внешних отчетов и обработок
- Использование дополнительных отчетов и обработок
Нажмите Записать и закрыть
Вернитесь в меню Пользователи и выберите из списка сотрудника, который будет работать с программой Загрузка документов. Нажмите Права доступа. В списке профилей отметьте созданный ранее профиль. Нажмите Записать
.
Чтобы пользователи могли запустить обработку рекомендуется добавить Загрузку документов к списку внешних обработок. Для этого в меню Администрирование / Печатные формы и обработки / Дополнительные отчеты и обработки
создайте новую обработку. Укажите путь к файлу «ЗагрузкаДокументов.epf» и присвойте имя. Укажите размещение обработки в меню, откуда пользователь сможет запустить ее в дальнейшем, например выберите меню Справочники
Нажав на пункт Быстрый доступ вы указываете, кому из пользователей доступна обработка:
После настройки нажмите Записать и закрыть
. Для запуска обработки пользователям достаточно будет заново зайти в базу и открыть ее из меню доступа (в примере — Справочники) и нажать Выполнить
.
Откройте Меню — Все функции..
. и найдите в списке параметр «Используются профили безопасности» .
Достаточно снять флаг с опции «Используются профили безопасности».
После этого программа будет запускаться успешно.
Дело в том что при использовании клиент-серверного варианта работы 1С внешние обработки/отчеты открываются в безопасном режиме, в котором запрещено использование привилегированного режима. А привилегированный режим используется очень часто в типовых конфигурациях: формирование печатных форм, различные служебные проверки (регистрация обменов) и т.д. В результате, даже используя обычный отчет на СКД без формы (по умолчанию используется общая форма «ФормаОтчета») и сохраняя пользовательские настройки отчета (в соответствующий справочник), вы получите ошибку о недостаточности прав доступа на различные константы и параметры сеанса, используемые в служебных целях после строки
УстановитьПривилегированныйРежим(Истина)
;
«Правильным» решением будет подключение внешних обработок и отчетов через механизмы БСП «Дополнительные отчеты и обработки» с отключением безопасного режима либо добавлением разрешений (по-моему, с версии БСП 2.2.2.1). Но если по каким-то причинам необходимо использование именно внешних файлов отчетов/обработок, то можно настроить профиль безопасности кластера, используемого в качестве профиля безопасности безопасного режима для конкретной информационной базы.
Хотел бы сразу заметить, что такой вариант не является предпочтительным, но в силу разных обстоятельств можно его использовать в таком упрощенном виде. Например, у меня несколько баз в разных городах, общая локальная сесть с жёстко ограниченными правами, закрытыми USB и т.п., где-то используется Бухгалтерия 2.0, а где-то 3.0, почти все отчеты делаю средствами СКД без форм, что бы они открывались в обоих версиях. Обслуживать все эти отчеты для разных версий и разных баз дело трудоёмкое и бесперспективное, т.к. в планах есть переход на единую конфигурацию и базу…
Создаем профиль.
В консоли кластера создаём профиль безопасности, в котором устанавливаем флаги «Может использоваться как профиль безопасности безопасного режима»
и » в разделе «Разрешен полный доступ:» «к привилегированному режиму».
Во многих случаях использования отчетов и простых обработок данный метод будет применим. Для более сложных ситуаций описывать процесс нет смысла, т.к. он изложен в документации (возможность в настраивать профили безопасности для конкретных внешних файлов через указание его хеш-суммы и т.п.).
P.S. Думал что профили безопасности функционируют только при использовании лицензий на платформу и сервер уровня КОРП, но данный функционал отрабатывает и на платформе 1С:Предприятие 8.3 (условно можно назвать ПРОФ по аналогии с типовыми конфигурациями Базовая/ПРОФ/КОРП)
Источник: interweber.ru