|
Предупреждение безопасности - Модуль выполняет подключение исполнимого бинарного файла | ☑ | ||
---|---|---|---|---|
0
Stolz
14.10.19
✎
09:14
|
Доброго времени суток всем, кто это читает.
Общеизвестно, что для того чтобы программно запустить внешнюю обработку и отменить выдачу предупреждения безопасности, нужно написать что-то вроде: ОписаниеЗащиты = Новый ОписаниеЗащитыОтОпасныхДействий; ОписаниеЗащиты.ПредупреждатьОбОпасныхДействиях = Ложь; ВнешняяОбработка = ВнешниеОбработки.Создать(СтрИмяФайла, Ложь, ОписаниеЗащиты); Имеется обработка, запускаемая регламентным заданием. На собственно запуск обработки никаких предупреждений не выдаётся, поскольку используется описанный выше код. Однако в процессе работы запускаемая обработка создаёт COMОбъект. Такое действие также расценивается системой как небезопасное, из-за чего выдаётся предупреждение вида: Модуль <...> загруженный из <...> выполняет подключение исполнимого бинарного файла <...>. Рекомендуется обращать внимание на источник, из которого был получен данный файл. Если с источником нет договоренности о разработке дополнительных модулей, или есть сомнения в содержимом файла, то его не рекомендуется открывать, поскольку это может нанести вред компьютеру и данным. Разрешить подключать исполнимые бинарные файлы для данного модуля? В итоге, обработка не запускается. Параметром DisableUnsafeActionProtection здесь пользоваться не хотелось бы, так как он отключает механизм защиты для всех пользователей. Можно, конечно же, запускать регламентное задание от имени пользователя, у которого отключена защита от опасных действий. Однако, желательно было бы решить проблему как-то изящнее. Есть у кого-нибудь какие-либо идеи, как обойти выдачу такого предупреждения в описанном случае? |
|||
1
Cyberhawk
14.10.19
✎
09:24
|
Разрешения настраивай
|
|||
2
Cyberhawk
14.10.19
✎
09:26
|
Безопасный режим у тебя срабатывает, а не защита от опасных действий
|
|||
3
Cyberhawk
14.10.19
✎
09:29
|
Ну или назначь РЗ пользователя инфобазы, в свойствах которого защита от опасных действий отключена
|
|||
4
Stolz
14.10.19
✎
10:16
|
(1) А вот с этого места, пожалуйста, поподробнее (C).
Под разрешениями что имеется в виду? Вроде бы, официально такое понятие в 1С отсутствует. |
|||
5
Stolz
14.10.19
✎
10:17
|
(2) Безопасный режим, вроде бы, отключён вторым параметром метода Создать(). Или требуется ещё что-нибудь?
|
|||
6
Stolz
14.10.19
✎
10:18
|
(3) Вот пользователя создавать не хотелось бы, - об этом написано в (0).
|
|||
7
Cyberhawk
14.10.19
✎
10:19
|
(4) Это про то что для подключаемых к БСП обработок требуется. Надстройка, да.
|
|||
8
Cyberhawk
14.10.19
✎
10:20
|
+(7) В твоем случае скорее всего не играет роли, это к профилям безопасности относится
|
|||
9
unenu
14.10.19
✎
10:21
|
(0) я не подаюсь соблазну общеизвестности и пишу так
// Создание экземпляра внешего отчета объекта штатным методом ВнешниеОтчеты.Подключить() ОбъектОписанияЗащиты = Новый ОписаниеЗащитыОтОпасныхДействий; ОбъектОписанияЗащиты.ПредупреждатьОбОпасныхДействиях = Ложь; // Отключает предупреждения защиты при работе с COMОбъект и т.д. незавимо от настроек пользователя и информациооной базы //ОтчетИмя = ВнешниеОтчеты.Подключить(ОтчетАдрес,,Ложь); // Будет использовано имя, содержащееся в самом отчете ОтчетИмя = ИмяОбъекта+"_"+СтрЗаменить(Строка(ТекущаяУниверсальнаяДатаВМиллисекундах()), Символы.НПП,""); // Например, получим строку вида "Отчет...._63636735405379", где число - это количество миллисекунд текущей даты строкой ВнешниеОтчеты.Подключить(ОтчетАдрес, ОтчетИмя, ОтчетСсылка.БезопасныйРежим, ОбъектОписанияЗащиты); ОтчетОбъект = ВнешниеОтчеты.Создать(ОтчетИмя, ОтчетСсылка.БезопасныйРежим); |
|||
10
Cyberhawk
14.10.19
✎
10:22
|
(9) Так у него внешняя обработка создается и запускается, не работает запуск из нее еще одного внешнего кода
|
|||
11
Cyberhawk
14.10.19
✎
10:23
|
(6) Проверь хотя бы помогает это или нет и поймешь в чем дело
|
|||
12
unenu
14.10.19
✎
10:25
|
(10) у меня примерная ситуаця, когда "внутри" идет конект в внешнему источнику по ком - никто не жалуются на системны сообщения.
У меня в коде команды и команды Подключчить() и Создать(). Уникальность имени подключаемой обеспечивается через костыль с миллисекудами. |
|||
13
Stolz
14.10.19
✎
10:27
|
(11) Это-то как раз помогает. Хотелось бы обойтись без этого.
|
|||
14
maxx079
14.10.19
✎
10:28
|
1С не смогла во внешние печатные формы. У них в одном месте параметр БезопасныйРежим передается, а в другом - нет. Поэтому настройка безопасности у внешних форм не работает. УТ 11.4.6, но т.к. это часть БСП, то подозреваю, что в других конфигурациях тоже самое.
Так что, если надо отключить это предупреждение - придется лезть в конфигуратор или делать через расширение. |
|||
15
unenu
14.10.19
✎
10:39
|
(14) Вы не совсем точны, просто ОписаниеЗащитыОтОпасныхДействий можно программно воткнуть только при подключении внешнейо бработки/очтета. Многие не понимают этого и пытаюся "всадить" его при при создании, как тс в (0).
Уникальное имя необходимо чтобы не "нарваться" на уже подключенный типовым БСП экземпляр точно такой обработки/отчета. В общем, как сделать обходы я показал в корявеньком коде - поймите, причешите и не забудьте чистить за собой после завершения обработки/отчета. |
|||
16
maxx079
14.10.19
✎
10:46
|
(15) Речь именно про это. 1С в Подключить() передает параметр безопасного режима, а в Создать() - забыли.
|
|||
17
unenu
14.10.19
✎
10:52
|
(16) ой ли? 1С:Предприятие 8.3 (8.3.14.1854)
Подключить(<Путь>, <Имя>, <БезопасныйРежим>, <ЗащитаОтОпасныхДействий>) Создать(<ПолноеИмяФайла>, <БезопасныйРежим>, <ЗащитаОтОпасныхДействий>) Если в моем коде избавиться от ссылки БСП-ного отчета примерно так ВнешниеОтчеты.Подключить(ОтчетАдрес, ОтчетИмя, Ложь, ОбъектОписанияЗащиты); ОтчетОбъект = ВнешниеОтчеты.Создать(ОтчетИмя, Ложь); то задача только в том, чтобы создать уникальное имя обработки. когда я бился над дилемой автора, то пришел к выводу, что пригроммнном обходе сообщений ОбъектОписанияЗащиты необходимо "Втыкать" при подключении. Если это не так, то я бы уже был завален жалобами а ля "чо за фигню нам 1С сообщает" |
|||
18
unenu
14.10.19
✎
11:02
|
(16) если вы имеете ввиду, что забыли в БСП-механизмах запуска регламентныых заданий, то тогда да, вероятно будут неполадки. Тогда действительно необходимо "обернуть" типовой вызов по расписанию с в свой с установкой параметров как надо для задачи.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |