Отключение предупреждения безопасности при запуске внешних обработок для платформы 8.3 (Управляемые формы)

После обновления платформы на 8.3.9.*, при открытии внешних отчетов и обработок (в том числе и подключенных), получаем «Предупреждение безопасности «. Ничего страшного в этом нет, если бы это предупреждение было однократным и после подтверждения обработка/отчет открывалась бы…

На текущий момент предупреждение может вызываться неоднократно, обработка/отчет может не открываться, приходится ждать 3-5 минут и пробовать еще раз. Итог — жалобы пользователей.

На ресурсе есть обработка //infostart.ru/public/581260/. Но эта обработка для обычных форм.

Текущая обработка — для управляемых форм.

Тестировалось на платформе 8.3.10.2252, конфигурация ЗУП 3.0 и 3.1.

Должна работать в типовых конфигурациях при наличии справочника «Пользователи».

З.Ы. Как всегда добавлен код для подключения.

24 Comments

  1. fenixnow

    наверное лучше обратиться к документации https://its.1c.ru/db/v8310doc#bookmark:adm:TI000000750

    и воспользоваться параметром DisableUnsafeActionProtection

    Reply
  2. dock

    Вот насчет «лучше»…

    Это два пути

    1) правим параметр DisableUnsafeActionProtection в файле conf.cfg

    2) изменяем настройки пользователей в конфигураторе

    Какой из них лучше — решать конечному «потребителю».

    Но… изменив параметр вы отключите безопасность для всех пользователей, а при изменении настроек пользователей — выборочно.

    Reply
  3. Volchock

    Доброго времени суток, уважаемые!

    Дополнительный вопрос по теме.

    Сформировал в УТ 11 дополнительную обработку, которая запускается по регламентному заданию…

    Но она не запускается, т.к. выдает ошибку безопасности и ждет какого-то ответа в диалоге:

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

    Открывается «Снятие регистрации».

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

    Разрешить открывать данный файл?

    Естественно, никакого ответа дать нет возможности — это же регламентное..

    Подскажите, как обойти эту защиту?

    Reply
  4. dock

    (3) Хм…

    Сообщение как раз похоже…

    ваши действия:

    1) правим параметр DisableUnsafeActionProtection в файле conf.cfg

    пример: DisableUnsafeActionProtection=test_.*;stage_.*; (Информационные базы определяются набором регулярных выражений, разделяемых символом «;». Если строка соединения с информационной базой будет удовлетворять какому-либо регулярному выражению, перечисленному в данном параметре, для такой информационной базы защита от опасных действий будет отключена.)

    или

    2) используем обработку из публикации, и отключаем проверку безопасности

    или

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

    кстати, если обработка добавлена через расширение, это не поможет 🙂

    Reply
  5. Volchock

    (4)

    Спасибо!

    Если можно, пару уточнений..

    1. Не хотелось бы отключать защиту для всех пользователей..

    2. Подскажите, обработка из публикации отключает проверку безопасности и для подключенных внешних обработок ?

    Отключение проверки проводится до или после интеграции внешней обработки в предприятие?

    Если приходится обновлять внешнюю обработку, то отключение безопасности нужно проводить повторно?

    3. Фоновое (регламентное) задание, глядя в ЖР выполняется под пользователем «неопределено», которого, соотв. нет в конфигураторе.

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

    🙁

    Reply
  6. dock

    (5)

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

    1) Если у текущего пользователя сброшен флажок «Защита от опасных действий», то защита считается отключенной.

    2) Если строка соединения с информационной базой удовлетворяет одному из шаблонов, указанных в параметре DisableUnsafeActionProtection файла conf.cfg, то защита считается отключенной.

    3) Если защита явным образом отключена с помощью параметра ЗащитаОтОпасныхДействий внешней обработки или отчета.

    4) Если защита явным образом отключена с помощью свойства расширения ЗащитаОтОпасныхДействий.

    В Вашем случае нужно смотреть в сторону п3. В параметрах регистрации внешней обработки используйте

    Функция СведенияОВнешнейОбработке() Экспорт
    
    ПараметрыРегистрации= Новый Структура;
    . . . .
    РегистрационныеДанные.Вставить(«БезопасныйРежим», Истина);
    . . . .
    
    Возврат ПараметрыРегистрации;
    КонецФункции

    Показать

    ИТС. Создание нового отчета или обработки

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

    . . . .

    Ключ: БезопасныйРежим

    Содержание:

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

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

    Reply
  7. dock

    (5)

    2. Подскажите, обработка из публикации отключает проверку безопасности и для подключенных внешних обработок ?

    Отключение проверки проводится до или после интеграции внешней обработки в предприятие?

    Отключение производится по пользователю!

    Для изменения для обработок используйте описание параметров в самой обработке 🙂

    Reply
  8. veiuper

    (6)

    БезопасныйРежим

    В третьем пункте явное указание на параметр регистрации внешней обработки «ЗащитаОтОпасныхДействий». Далее приводите код для другого параметра «БезопасныйРежим». Что-то я запутался…

    Reply
  9. dock

    (8)

    «ЗащитаОтОпасныхДействий» — это параметр в базе (конфигурации). Управляется этот параметр через ключ «»БезопасныйРежим» в структуре ПараметрыРегистрации

    🙂

    Т.е. в базе — это параметр, а в коде внешней обработки — ключ

    ну вот как-то так.

    З.Ы. а в коде то у меня ошибка…

    Функция СведенияОВнешнейОбработке() Экспорт
    
    ПараметрыРегистрации= Новый Структура;
    . . . .
    ПараметрыРегистрации.Вставить(«БезопасныйРежим», Истина);
    . . . .
    
    Возврат ПараметрыРегистрации;
    КонецФункции

    Показать

    Reply
  10. veiuper

    (9) Ясно

    Reply
  11. veiuper

    (7) В догонку… Может быть сталкивались: в параметрах регистрации внешней обработки для параметра БезопасныйРежим ставил и Истина, и Ложь. Ни в какую не запускается внешняя обработка, для которой установлен запуск по расписанию: все та же ошибка (вопрос на разрешение запуска).

    Reply
  12. dock

    (11) Я не сталкивался с такой проблемой. Судя по комментариям, подобная проблема у Руслан Т (Volchock) — обратись к нему 🙂

    Куда смотреть — постарался описать. На текущий момент нет задачи с регламентными заданиями (выполнение по расписанию).

    Reply
  13. veiuper

    (12) Благодарю за оперативность ответов.

    Reply
  14. veiuper

    (5) Подскажите пожалуйста как вы решили свою задачу?

    Reply
  15. Volchock

    (14)

    Доброго здравия.

    Как смог, поборол :).

    В последних БСП немного другой принцип, но алгоритм должен подойти.

    Reply
  16. dock

    Кстати, проверь вообще настройки своих внешних отчетов/обработок. может и вправду неверный ключ/параметр в коде подключения обработки.

    Просмотри с помощью консоли содержание справочника «ДополнительныеОтчетыИОбработки», и табличную часть «Разрешения»

    можешь поиграться с этими значениями.

    Универсальный редактор реквизитов — либо пиши свою обработочку 🙂

    Reply
  17. kassbar
    ИдентификаторПользователяИБ = Пользователи.ТекущийПользователь().ИдентификаторПользователяИБ;
    ПользовательИБ =  ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(ИдентификаторПользователяИБ);
    ЗащитаОтОпасныхДействий = ПользовательИБ .ЗащитаОтОпасныхДействий;
    ЗащитаОтОпасныхДействий.ПредупреждатьОбОпасныхДействиях = ЛОЖЬ;
    Reply
  18. dock

    (17) Процитировали справку по ссылке из первого комментария ? 🙂

    Ценность данной обработки не в коде, а в интерфейсе 🙂

    А ценность публикации в комментариях!

    Reply
  19. 028

    (17) куда нужно вставить этот код?

    Reply
  20. dock

    (19) В собственную обработку 🙂

    Reply
  21. 028

    (20) не работает

    у меня при выполнении этих строк

    WSH=Новый COMobject(«wscript.shell»);
    ИмяПути = «C:» + WSH.ExpandEnvironmentStrings(«%HomePath%») + «Desktop»;

    делает предупреждение вот хочу чтобы не было)

    Reply
  22. dock

    (21) какое предупреждение ?

    Reply
  23. 028

    (22) вот такое

    Reply
  24. dock

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

    Читай комментарии: 6, 9, 15, 16.

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

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *