Программное создание исходящих писем в ЗУП 3.1 с изображением в теле письма.

1. WalterFOX 24 12.03.21 15:22 Сейчас в теме
Коллеги, добрый день!

Вопрос не новый, но гугл не дает корректных ответов.

Если делаю и отправляю письмо из ЗУП 3.1, не программным способом, а по-пользовательски - руками, то изображения в теле письма пересылаются и открываются в outlook корректно.
НО! Если делаю письмо программным способом, то в документе 1С все отображается корректно, но в outllook после получения письма изображение не открывается.


ТемаПисьма            = "Тест форматированное письмо ";
			   ПолноеИмяФайла        = СокрЛП(Объект.ФайлДляОтправки);
			   ИдентификаторВложения = Новый уникальныйИдентификатор;
			   МакетПисьма           = РеквизитФормыВЗначение("Объект").ПолучитьМакет("Макет").ПолучитьТекст();
			  
			   ТекстПисьма           = СтрЗаменить(МакетПисьма,"$ИдентификаторКартинки",ИдентификаторВложения);
			   ФайлВложение          = Новый Файл(СокрЛП(Объект.ФайлДляОтправки));
			   СоздатьИОтправитьПисьмо(Объект.Сотрудник,ТекстПисьма,ТемаПисьма,ПолноеИмяФайла,ИдентификаторВложения);	

			
Показать



Макет

<!DO CTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><ht ml><head><met a http-equiv="Content-Type" content="text/html; charset=utf-8"></meta><met a http-equiv="X-UA-Compatible" content="IE=Edge"></meta><met a name="format-detection" content="telephone=no"></meta><st yle type="text/css">
body{margin:0;padding:8px;}
p{line-height:1.15;margin:0;white-space:pre-wrap;}
ol,ul{margin-top:0;margin-bottom:0;}
img{border:none;}
li>p{display:inline;}
</style></head><body>
<h2>Пример текста 1</h2>

<h3>Пример текста 2</h3>

<h4>Пример текста 3</h4>



это первая ссылка
это вторая ссылка
<p><img height="346" src="$ИдентификаторКартинки" style="border:none;" width="365"></img></p>
</body></html>


ЭлектронноеПисьмо = Документы.ЭлектронноеПисьмоИсходящее.СоздатьДокумент();
	
	
	ЭлектронноеПисьмо.Важность                 = Перечисления.ВариантыВажностиВзаимодействия.Обычная;
	ЭлектронноеПисьмо.ЕстьВложения             = Истина;
	ЭлектронноеПисьмо.ОтправительПредставление = "";
	ЭлектронноеПисьмо.УчетнаяЗапись            = УчетнаяЗапись;
	
	ЭлектронноеПисьмо.Дата                     = ТекущаяДата();
	ЭлектронноеПисьмо.ДатаОтправления          = ТекущаяДата();
	ЭлектронноеПисьмо.ДатаКогдаОтправить       = ТекущаяДата();
	
	ЭлектронноеПисьмо.Автор         = ПараметрыСеанса.ТекущийПользователь;
	ЭлектронноеПисьмо.Ответственный = ПараметрыСеанса.ТекущийПользователь;
	
	ЭлектронноеПисьмо.Кодировка = "utf-8";
	ЭлектронноеПисьмо.ТипТекста = Перечисления.ТипыТекстовЭлектронныхПисем.HTML;
	ЭлектронноеПисьмо.Тема      = СтруктураПисьма.Тема; 
	ЭлектронноеПисьмо.ТекстHTML = СтруктураПисьма.ТекстПисьма;
	
	ЭлектронноеПисьмо.СписокПолучателейПисьма = СокрЛП(СтруктураПисьма.АдресКому);
	СтрокаТЧ = ЭлектронноеПисьмо.ПолучателиПисьма.Добавить();								
	СтрокаТЧ.Адрес = СокрЛП(СтруктураПисьма.АдресКому);
	СтрокаТЧ.Представление = СокрЛП(СтруктураПисьма.ПредставлениеКому);
	

	
	ЭлектронноеПисьмо.СтатусПисьма           = Перечисления.СтатусыИсходящегоЭлектронногоПисьма.Исходящее;
	ЭлектронноеПисьмо.УдалятьПослеОтправки   = ИСТИНА;
	
	ЭлектронноеПисьмо.Записать();
	ЗафиксироватьТранзакцию();
	
	//// Формируем вложение 
	
	ПолученныйФайл    = Новый Файл(СтруктураПисьма.ПолученноеИмяФайла);
	//
	Спр                = Справочники.ЭлектронноеПисьмоИсходящееПрисоединенныеФайлы.СоздатьЭлемент();
	Спр.ВладелецФайла  = ЭлектронноеПисьмо.Ссылка;
	Спр.Наименование   = "_"+СтруктураПисьма.ИндексКартинки;
	Спр.ПутьКФайлу     = ПолученныйФайл.ПолноеИмя;
	Спр.Расширение                = "";
	Спр.ИДФайлаЭлектронногоПисьма = ""+СтруктураПисьма.ИндексКартинки;
	Спр.ТипХраненияФайла          = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе;
	Спр.Размер                    = ПолученныйФайл.Размер();
	
	Попытка
		Данные            = Новый ДвоичныеДанные(ПолученныйФайл.ПолноеИмя);
		Спр.ФайлХранилище = Новый ХранилищеЗначения(Данные, Новый СжатиеДанных());
		Спр.Записать();
         Исключение
		Сообщить(ОписаниеОшибки());
	КонецПопытки;
		
		НабЗап                     = РегистрыСведений.ДвоичныеДанныеФайлов.СоздатьНаборЗаписей();
        НабЗап.Отбор.Файл.Установить(Спр.Ссылка);
        НабЗап.Прочитать();
		
		НовЗап                     = НабЗап.Добавить();
        НовЗап.Файл                = Спр.Ссылка;
        НовЗап.ДвоичныеДанныеФайла = Новый ХранилищеЗначения(Данные, Новый СжатиеДанных());
        НабЗап.Записать();
		
		



Показать
Прикрепленные файлы:
unknow_user; +1 Ответить
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Nigmatul 14.03.21 11:47 Сейчас в теме
По-моему Письмо.ОбработатьТексты(). На форуме уже поднимали тему
3. AlexeyKovylov 14.09.23 00:50 Сейчас в теме
Не раньше ли у тебя отправляется письмо, чем прикрепляется вложение к нему?
4. AlexeyKovylov 14.09.23 00:55 Сейчас в теме
Если рег. задание отправки писем включено, то в момент между записью письма и добавлением вложения оно может быть уже отправлено
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот