Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

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

Предупреждение безопасности - Модуль выполняет подключение исполнимого бинарного файла
Я
   Stolz
 
14.10.19 - 09:14
Доброго времени суток всем, кто это читает.

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

ОписаниеЗащиты = Новый ОписаниеЗащитыОтОпасныхДействий;
ОписаниеЗащиты.ПредупреждатьОбОпасныхДействиях = Ложь;
ВнешняяОбработка = ВнешниеОбработки.Создать(СтрИмяФайла, Ложь, ОписаниеЗащиты);

Имеется обработка, запускаемая регламентным заданием. На собственно запуск обработки никаких предупреждений не выдаётся, поскольку используется описанный выше код.
Однако в процессе работы запускаемая обработка создаёт COMОбъект. Такое действие также расценивается системой как небезопасное, из-за чего выдаётся предупреждение вида:

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

В итоге, обработка не запускается. Параметром DisableUnsafeActionProtection здесь пользоваться не хотелось бы, так как он отключает механизм защиты для всех пользователей. Можно, конечно же, запускать регламентное задание от имени пользователя, у которого отключена защита от опасных действий. Однако, желательно было бы решить проблему как-то изящнее. Есть у кого-нибудь какие-либо идеи, как обойти выдачу такого предупреждения в описанном случае?
 
 
   Cyberhawk
 
1 - 14.10.19 - 09:24
Разрешения настраивай
   Cyberhawk
 
2 - 14.10.19 - 09:26
Безопасный режим у тебя срабатывает, а не защита от опасных действий
   Cyberhawk
 
3 - 14.10.19 - 09:29
Ну или назначь РЗ пользователя инфобазы, в свойствах которого защита от опасных действий отключена
   Stolz
 
4 - 14.10.19 - 10:16
(1) А вот с этого места, пожалуйста, поподробнее (C).
Под разрешениями что имеется в виду? Вроде бы, официально такое понятие в 1С отсутствует.
   Stolz
 
5 - 14.10.19 - 10:17
(2) Безопасный режим, вроде бы, отключён вторым параметром метода Создать(). Или требуется ещё что-нибудь?
   Stolz
 
6 - 14.10.19 - 10:18
(3) Вот пользователя создавать не хотелось бы, - об этом написано в (0).
   Cyberhawk
 
7 - 14.10.19 - 10:19
(4) Это про то что для подключаемых к БСП обработок требуется. Надстройка, да.
   Cyberhawk
 
8 - 14.10.19 - 10:20
+(7) В твоем случае скорее всего не играет роли, это к профилям безопасности относится
   unenu
 
9 - 14.10.19 - 10:21
(0) я не подаюсь соблазну общеизвестности и пишу так

// Создание экземпляра внешего отчета объекта штатным методом ВнешниеОтчеты.Подключить()

    ОбъектОписанияЗащиты = Новый ОписаниеЗащитыОтОпасныхДействий;
    ОбъектОписанияЗащиты.ПредупреждатьОбОпасныхДействиях = Ложь;  // Отключает предупреждения защиты при работе с COMОбъект и т.д. незавимо от настроек пользователя и информациооной базы

    
    //ОтчетИмя = ВнешниеОтчеты.Подключить(ОтчетАдрес,,Ложь);      // Будет использовано имя, содержащееся в самом отчете

    ОтчетИмя = ИмяОбъекта+"_"+СтрЗаменить(Строка(ТекущаяУниверсальнаяДатаВМиллисекундах()), Символы.НПП,"");// Например, получим строку вида "Отчет...._63636735405379", где число - это количество миллисекунд текущей даты строкой

    ВнешниеОтчеты.Подключить(ОтчетАдрес, ОтчетИмя, ОтчетСсылка.БезопасныйРежим, ОбъектОписанияЗащиты);
    ОтчетОбъект = ВнешниеОтчеты.Создать(ОтчетИмя, ОтчетСсылка.БезопасныйРежим);
   Cyberhawk
 
10 - 14.10.19 - 10:22
(9) Так у него внешняя обработка создается и запускается, не работает запуск из нее еще одного внешнего кода
   Cyberhawk
 
11 - 14.10.19 - 10:23
(6) Проверь хотя бы помогает это или нет и поймешь в чем дело
   unenu
 
12 - 14.10.19 - 10:25
(10) у меня примерная ситуаця, когда "внутри" идет конект в внешнему источнику по ком - никто не жалуются на системны сообщения.

У меня в коде команды и команды 
Подключчить() и 
Создать().
Уникальность имени подключаемой обеспечивается через костыль с миллисекудами.
   Stolz
 
13 - 14.10.19 - 10:27
(11) Это-то как раз помогает. Хотелось бы обойтись без этого.
   maxx079
 
14 - 14.10.19 - 10:28
1С не смогла во внешние печатные формы. У них в одном месте параметр БезопасныйРежим передается, а в другом - нет. Поэтому настройка безопасности у внешних форм не работает.  УТ 11.4.6, но т.к. это часть БСП, то подозреваю, что в других конфигурациях тоже самое.
Так что, если надо отключить это предупреждение - придется лезть в конфигуратор или делать через расширение.
   unenu
 
15 - 14.10.19 - 10:39
(14) Вы не совсем точны, просто ОписаниеЗащитыОтОпасныхДействий можно программно воткнуть только при подключении внешнейо бработки/очтета. Многие не понимают этого и пытаюся "всадить" его при при создании, как тс в (0).
Уникальное имя необходимо чтобы не "нарваться" на уже подключенный типовым БСП экземпляр точно такой обработки/отчета.

В общем, как сделать обходы я показал в корявеньком коде - поймите, причешите и не забудьте чистить за собой после завершения обработки/отчета.
   maxx079
 
16 - 14.10.19 - 10:46
(15) Речь именно про это. 1С в Подключить() передает параметр безопасного режима, а в Создать() - забыли.
   unenu
 
17 - 14.10.19 - 10:52
(16) ой ли? 1С:Предприятие 8.3 (8.3.14.1854)
Подключить(<Путь>, <Имя>, <БезопасныйРежим>, <ЗащитаОтОпасныхДействий>)
Создать(<ПолноеИмяФайла>, <БезопасныйРежим>, <ЗащитаОтОпасныхДействий>)

Если в моем коде избавиться от ссылки БСП-ного отчета примерно так 

ВнешниеОтчеты.Подключить(ОтчетАдрес, ОтчетИмя, Ложь, ОбъектОписанияЗащиты);
ОтчетОбъект = ВнешниеОтчеты.Создать(ОтчетИмя, Ложь);

то задача только в том, чтобы создать уникальное имя обработки.
когда я бился над дилемой автора, то пришел к выводу, что пригроммнном обходе сообщений 
ОбъектОписанияЗащиты необходимо "Втыкать" при подключении.
Если это не так, то я бы уже был завален жалобами а ля "чо за фигню нам 1С сообщает"
   unenu
 
18 - 14.10.19 - 11:02
(16) если вы имеете ввиду, что забыли в БСП-механизмах запуска регламентныых заданий, то тогда да, вероятно будут неполадки. Тогда действительно необходимо "обернуть" типовой вызов по расписанию с в свой с установкой параметров как надо для задачи.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.