Добрый день все! Есть задача: написать обработку для БП3.0, которая собирает кое-какие данные из базы, формирует несколько электронных писем для контрагентов и отправляет эти письма этим самым контрагентам.
Я всё сделал, на обычной базе (делал на файловой) всё работает как надо. Формирую структуру с параметрами письма и дальше использую типовую функцию общего модуля "РаботаСПочтовымиСообщениями.ОтправитьПочтовоеСообщение(Объект.УчетнаяЗапись, ПараметрыПисьма)".
Беда в том, что эту обработку нужно загрузить во фреш. А там при аудите мне её возвращают с ошибкой:
-----------------
1. Если в дополнительной обработке выполняется передача (получение) любых данных за пределы сервиса, эти операции должны подтверждаться пользователем.
Если на этапе разработки дополнительной обработки существует возможность определить ресурсы сети Интернет, к которым будет выполняться обращение, необходимо реализовать запрос разрешений в программном интерфейсе дополнительной обработки. Такой запрос должен дать возможность пользователю еще перед установкой обработки ознакомиться, к каким ресурсам будет выполняться передача данных этой обработкой.
Если определить ресурсы сети Интернет, к которым будет выполняться обращение, невозможно, то:
для дополнительных обработок, содержащих формы, перед выполнением операции следует запрашивать разрешение у пользователя (возможно, с сохранением полученного ответа). При запросе разрешения следует явно указывать, к каким ресурсам сети Интернет будет осуществляться обращение;
для дополнительных обработок, не содержащих форм (например, предназначенных для использования в качестве регламентного задания), рекомендуется:
по умолчанию не выполнять операцию в коде серверной команды;
создавать дополнительную команду с типом вызова Открытие формы, в которой реализовывать запрос подтверждения;
начинать выполнение операции в серверном коде только после подтверждения пользователем выполнений операций.
https://1cfresh.com/articles/so_addprocess_req#outflow2 Примечание: в серверном контексте в безопасном режиме запрещено обращение к сторонним интернет ресурсам.
Вы можете:
1. Добавить Разрешение = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеИнтернетРесурса(<Протокол>, <Адрес>, <Порт>, <Причина, по которой требуется подключение>);
2. Либо вынести эту операцию на сторону клиента.
Для отправки электронного письма требуется разрешение на использование протокола интернет почты.
-----------------
Народ, объясните, кто в теме, чего эти аудиторы от меня хотят? И как это сделать?
в последних БСП есть уже возможность делать рассылки - для этого вы создаете свой внешний отчет и настраиваете рассылку (смотри скрин). Или при публикации обработки во фреш, укажите разрешение на доступ
(2) Публикуют во фреш другие люди. Я сделал и отдал им. А они мне обработку возвращают и говорят, что она не прошла аудит по выше обозначенной ошибке. Говорят, надо исправить...
Т.е., мне в самой обработке исправлять ничего не надо, получается? или как?...
(3) как публикается происходит, знаю не по наслышке. Я вам предложил 2 варианта
1. сделать как вам советуют - в описании обработки добавить разрешение
Разрешение = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеИнтернетРесурса(<Протокол>, <Адрес>, <Порт>, <Причина, по которой требуется подключение>);
2. сделать по другому -данные, которые вы собираете вывести в новый внешний отчет, добавить его в рассылку и предложить пользователю отправлять отчет, но уже средствами БСП
В общем, может кому надо будет:
В модуле объекта в функции СведенияОВнешнейОбработке() добавил две строки:
Разрешение = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеИнтернетРесурса("SMTP","mail.ru",,"Отправка электронной почты");
ПараметрыРегистрации.Разрешения.Добавить(Разрешение);
Правда идиотами они не перестают быть - куски кода картинками выкладывают.
Меня вообще картинки бесят. У Борланда текстовка описания и ниже РАБОЧИЙ(!!!) код с примером.
А тут трахешься, трахаешься, а оказывается либо устарело, либо не рекомендуют, либо параметры меняют местами или добавляют...
Хотел написать дальше, но лучше уж промолчу