Отправка почты с вложением БСП



Пример использования функции отправки почты из БСП и преобразования табличного документа в pdf без использования временных файлов. Требуется заполненная системная учетная запись в справочнике УчетныеЗаписиЭлектроннойПочты



Функция ОтправитьТабличныйДокументЭлектроннойПочтойКакPDF(УчетнаяЗаписьПочтыОтправителя, ПочтаПолучателя, ТекстПисьма, ТемаПисьма, АдресТабличногоДокументаВоВременномХранилище)



Отправлено = Ложь;



Если УчетнаяЗаписьПочтыОтправителя = Неопределено Или УчетнаяЗаписьПочтыОтправителя.Пустая() Тогда



Возврат Отправлено;



КонецЕсли;



ТабДок = ПолучитьИзВременногоХранилища(АдресФайлаВоВременномХранилище);



ПотокФайла = Новый ПотокВПамяти();

ТабДок.Записать(ПотокФайла, ТипФайлаТабличногоДокумента.PDF);



ДвоичныеДанныеФайла = ПотокФайла.ЗакрытьИПолучитьДвоичныеДанные();



ВременноеХранилищеФайла = ПоместитьВоВременноеХранилище(ДвоичныеДанныеФайла, Новый УникальныйИдентификатор);



Вложения = Новый Массив;



ОписаниеВложения = Новый Структура("Представление, АдресВоВременномХранилище", ТекстПисьма + ".pdf", ВременноеХранилищеФайла);



Вложения.Добавить(ОписаниеВложения);



ПараметрыПисьма = Новый Структура;

ПараметрыПисьма.Вставить("Кому", ПочтаПолучателя);

ПараметрыПисьма.Вставить("Тема", ТемаПисьма);

ПараметрыПисьма.Вставить("Тело", ТекстПисьма);

ПараметрыПисьма.Вставить("ТипТекста", "ПростойТекст");

ПараметрыПисьма.Вставить("Вложения", Вложения);



Попытка



Идентификатор = РаботаСПочтовымиСообщениями.ОтправитьПочтовоеСообщение(УчетнаяЗаписьПочтыОтправителя, ПараметрыПисьма);



Если ЗначениеЗаполнено(Идентификатор) Тогда



Отправлено = Истина;



КонецЕсли;



Исключение



ЗаписьЖурналаРегистрации("Отправка письма " + ПочтаПолучателя, УровеньЖурналаРегистрации.Ошибка,,,ОписаниеОшибки());



КонецПопытки;



Возврат Отправлено;



КонецФункции



✍️ @odin1C_rus