From 161a8a7fc767a4955abb86f4588d4c4de4e4a059 Mon Sep 17 00:00:00 2001 From: wakadakawaka Date: Thu, 28 Aug 2025 19:38:21 +0500 Subject: [PATCH] add --- .../Отправка по шаблону на произвольный адрес ЭП.md | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 src/content/docs/knowledge-base/Общие/Шаблоны сообщений/Отправка по шаблону на произвольный адрес ЭП.md diff --git a/src/content/docs/knowledge-base/Общие/Шаблоны сообщений/Отправка по шаблону на произвольный адрес ЭП.md b/src/content/docs/knowledge-base/Общие/Шаблоны сообщений/Отправка по шаблону на произвольный адрес ЭП.md new file mode 100644 index 0000000..cebbfef --- /dev/null +++ b/src/content/docs/knowledge-base/Общие/Шаблоны сообщений/Отправка по шаблону на произвольный адрес ЭП.md @@ -0,0 +1,67 @@ +--- +title: Отправка по шаблону на произвольный адрес ЭП +slug: общие-шаблоны-сообщений/отправка-по-шаблону-на-произвольный-адрес-эп +--- + +Реальных получателей передаем в функцию формирования и отправки сообщения через доп. параметры в том виде, в каком нам это удобно делать. +**ВАЖНО!** Этот код будет выполняться для любых шаблонов, поэтому нужно осознанно подходить к этому методу +Пример: +```bsl +Для Каждого Строка Из Объект.СписокКонтрагентов Цикл + + Если ОбщегоНазначенияКлиентСервер.АдресЭлектроннойПочтыСоответствуетТребованиям(Строка.АдресЭП) Тогда + + ДополнительныеПараметры = Новый Структура; + ДополнительныеПараметры.Вставить("АдресЭП", Строка.АдресЭП); + + Результат = ШаблоныСообщений.СформироватьСообщениеИОтправить(Объект.ШаблонСообщения, + Строка.Контрагент, + УникальныйИдентификатор, + ДополнительныеПараметры); + + Иначе + ТекстСообщения = СтрШаблон("Адрес ЭП контрагента %1 не соответствует требованиям", Строка.Контрагент); + ОбщегоНазначения.СообщитьПользователю(ТекстСообщения); + КонецЕсли; + + КонецЦикла; +``` + +И эти данные мы можем поймать в процедуре `ШаблоныСообщенийПереопределяемый.ПриЗаполненииПочтыПолучателейВСообщении()` в структуре `ПредметСообщения.ПараметрыСообщения`: + +```bsl +// Заполняет список получателей почты при отправке сообщения сформированного по шаблону. +// +// Параметры: +// ПолучателиПисьма - ТаблицаЗначений - список получается письма: +// * ВариантОтправки - Строка - вариант отправки для получателя письма: Кому, Копия, СкрытаяКопия, ОбратныйАдрес; +// * Адрес - Строка - адрес электронной почты получателя; +// * Представление - Строка - представление получателя письма; +// * Контакт - Произвольный - контакт, которому принадлежит адрес электронной почты. +// НазначениеШаблона - Строка - идентификатор назначения шаблона. +// ПредметСообщения - ЛюбаяСсылка - ссылка на объект, являющийся источником данных. +// - Структура - структура описывающая параметры шаблона: +// * Предмет - ЛюбаяСсылка - ссылка на объект, являющийся источником данных; +// * ВидСообщения - Строка - вид формируемого сообщения: "ЭлектроннаяПочта" или "СообщениеSMS"; +// * ПроизвольныеПараметры - Соответствие - заполненный список произвольных параметров; +// * ОтправитьСразу - Булево - признак мгновенной отправки письма; +// * ПараметрыСообщения - Структура - дополнительные параметры сообщения; +// * ПреобразовыватьHTMLДляФорматированногоДокумента - Булево - признак преобразование HTML текста +// сообщения содержащего картинки в тексте письма из-за особенностей вывода изображений +// в форматированном документе; +// * УчетнаяЗапись - СправочникСсылка.УчетныеЗаписиЭлектроннойПочты - учетная запись для отправки письма. +// +Процедура ПриЗаполненииПочтыПолучателейВСообщении(ПолучателиПисьма, НазначениеШаблона, ПредметСообщения) Экспорт + + АдресЭП = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ПредметСообщения.ПараметрыСообщения, "АдресЭП", ""); + + Если Не ЗначениеЗаполнено(АдресЭП) Тогда + ВызватьИсключение "Не заполнен адрес ЭП"; + КонецЕсли; + + СтрокаПолучателей = ПолучателиПисьма.Добавить(); + СтрокаПолучателей.ВариантОтправки = "Кому"; + СтрокаПолучателей.Адрес = АдресЭП; + +КонецПроцедуры +```