1
0
mirror of https://github.com/BlizD/Tasks.git synced 2025-03-19 21:07:53 +02:00

#238 Передача картинок из шаблона задач

This commit is contained in:
GenVP 2020-08-24 19:16:18 +03:00
parent e52e04bef8
commit 2cd0f447d6
2 changed files with 73 additions and 35 deletions

View File

@ -507,15 +507,11 @@
Возврат;
КонецЕсли;
ПараметрыПисьма = ПолучитьПараметрыПисьма(РезультатФункции);
//+ГЕНА
ДопПараметры = Новый Структура();
ДопПараметры.Вставить("ВажностьЗадачи",Важность);
ДопПараметры.Вставить("ТекстПисьма",ПараметрыПисьма.ТекстПисьма);
ДопПараметры.Вставить("ТемаПисьма",ПараметрыПисьма.ТемаПисьма);
ДопПараметры.Вставить("ПользовательКому",Исполнитель);
//+ГЕНА
ДопПараметры.Вставить("ТипТекста", ПараметрыПисьма.ТипТекста);
ДопПараметры.Вставить("ТекстПисьмаHTML", ПараметрыПисьма.ТекстПисьмаHTML);
ПолучитьПараметрыПисьма(РезультатФункции, ДопПараметры);
//-ГЕНА
//+ #190 SZ 16.03.2020
@ -580,15 +576,11 @@
Возврат;
КонецЕсли;
ПараметрыПисьма = ПолучитьПараметрыПисьма(РезультатФункции);
//+ГЕНА
ДопПараметры = Новый Структура();
ДопПараметры.Вставить("ВажностьЗадачи",Важность);
ДопПараметры.Вставить("ТекстПисьма",ПараметрыПисьма.ТекстПисьма);
ДопПараметры.Вставить("ТемаПисьма",ПараметрыПисьма.ТемаПисьма);
ДопПараметры.Вставить("ПользовательКому",СтарыйИсполнитель);
//+ГЕНА
ДопПараметры.Вставить("ТипТекста", ПараметрыПисьма.ТипТекста);
ДопПараметры.Вставить("ТекстПисьмаHTML", ПараметрыПисьма.ТекстПисьмаHTML);
ПолучитьПараметрыПисьма(РезультатФункции, ДопПараметры);
//-ГЕНА
//+ #190 SZ 16.03.2020
@ -629,17 +621,12 @@
Возврат;
КонецЕсли;
ПараметрыПисьма = ПолучитьПараметрыПисьма(РезультатФункции);
//+ГЕНА
ДопПараметры = Новый Структура();
ДопПараметры.Вставить("ВажностьЗадачи",Важность);
ДопПараметры.Вставить("ТекстПисьма",ПараметрыПисьма.ТекстПисьма);
ДопПараметры.Вставить("ТемаПисьма",ПараметрыПисьма.ТемаПисьма);
ДопПараметры.Вставить("Статус",Статус);
ДопПараметры.Вставить("МассивПользователейКому",МассивНаблюдателей);
//+ГЕНА
ДопПараметры.Вставить("ТипТекста", ПараметрыПисьма.ТипТекста);
ДопПараметры.Вставить("ТекстПисьмаHTML", ПараметрыПисьма.ТекстПисьмаHTML);
ПолучитьПараметрыПисьма(РезультатФункции, ДопПараметры);
//-ГЕНА
узОбщийМодульСервер.ОтправитьПисьмо(ДопПараметры);
@ -684,24 +671,19 @@
КонецЕсли;
//-ГЕНА
ПараметрыПисьма = ПолучитьПараметрыПисьма(РезультатФункции);
МассивКонтрагентов = Новый Массив();
МассивКонтрагентов.Добавить(Контрагент);
ТЗАдресаЭлектроннойПочты = узОбщийМодульСервер.ПолучитьТЗАдресаЭлектроннойПочтыПоМассивуКонтрагентов(
МассивКонтрагентов);
//+ГЕНА
ДопПараметры = Новый Структура();
ДопПараметры.Вставить("ВажностьЗадачи",Важность);
ДопПараметры.Вставить("ТекстПисьма",ПараметрыПисьма.ТекстПисьма);
ДопПараметры.Вставить("ТемаПисьма",ПараметрыПисьма.ТемаПисьма);
ДопПараметры.Вставить("ТЗАдресаЭлектроннойПочты",ТЗАдресаЭлектроннойПочты);
ДопПараметры.Вставить("ЭтоОтправкаКонтрагентам",ЭтоОтправкаКонтрагентам);
ДопПараметры.Вставить("Задача",Ссылка);
//+ГЕНА
ДопПараметры.Вставить("ТипТекста", ПараметрыПисьма.ТипТекста);
ДопПараметры.Вставить("ТекстПисьмаHTML", ПараметрыПисьма.ТекстПисьмаHTML);
ПолучитьПараметрыПисьма(РезультатФункции, ДопПараметры);
//-ГЕНА
пУчетнаяЗапись = ПолучитьУчетнуюЗаписьДляОтправкиУведомленийДляКонтрагентов();
@ -942,7 +924,7 @@
Возврат РезультатФункции;
КонецФункции
Функция ПолучитьПараметрыПисьма(ДопПараметры)
Процедура ПолучитьПараметрыПисьма(ДопПараметры, РезультатФункции)
//МассивКодовСообщений = Новый Массив();
//МассивКодовСообщений.Добавить(22); //Добрый день
//МассивКодовСообщений.Добавить(23); //Номер задачи
@ -1027,14 +1009,12 @@
ДопПараметры.Вставить("НомерЗадачи",НомерЗадачи);
//ГЕНА
РезультатФункции = Новый Структура();
РезультатФункции.Вставить("ТемаПисьма",ТемаПисьма);
РезультатФункции.Вставить("ТипТекста", ПредопределенноеЗначение("Перечисление.ТипыТекстовЭлектронныхПисем.ПростойТекст"));
ПолучитьТекстПисьма(ДопПараметры, РезультатФункции);
//-ГЕНА
Возврат РезультатФункции;
КонецФункции
КонецПроцедуры
Процедура ПолучитьТекстПисьма(ДопПараметры, РезультатФункции) // ГЕНА
@ -1059,12 +1039,12 @@
пТекстПисьма = ПолучитьТекстПисьма_Общее(ДопПараметры);
Конецесли;
РезультатФункции.Вставить("ТекстПисьма", пТекстПисьма);
РезультатФункции.Вставить("ТекстПисьмаHTML", "");
Иначе
РезультатФункции.Вставить("ТипТекста", ТекстИТемаПисьма.ТипТекста);
РезультатФункции.Вставить("ТемаПисьма", ТекстИТемаПисьма.Тема);
РезультатФункции.Вставить("ТекстПисьма", ТекстИТемаПисьма.Текст);
РезультатФункции.Вставить("ТекстПисьмаHTML", ТекстИТемаПисьма.ТекстHTML);
РезультатФункции.Вставить("ВложенияКартинки", ТекстИТемаПисьма.ВложенияКартинки);
КонецЕсли;
//-ГЕНА
@ -1556,10 +1536,41 @@
ТипТекста = ПредопределенноеЗначение("Перечисление.ТипыТекстовЭлектронныхПисем.HTML");
ТекстHTML = ДанныеСообщения.Текст;
// Получение простого текста из письма HTML
СтруктураВложений = Новый Структура;
ДокHTML = Новый ФорматированныйДокумент;
ДокHTML.УстановитьHTML(ДанныеСообщения.Текст, Новый Структура);
ДокHTML.УстановитьHTML(ДанныеСообщения.Текст, СтруктураВложений);
Текст = ДокHTML.ПолучитьТекст();
// Преобразования картинок во вложения и передача для прикрепления к документу письма
Если ТипЗнч(ДанныеСообщения.Вложения) <> Неопределено Тогда
СписокКартинок = Новый СписокЗначений;
Для каждого Вложение Из ДанныеСообщения.Вложения Цикл
Если ЗначениеЗаполнено(Вложение.Идентификатор) Тогда
ДвоичныеДанные = ПолучитьИзВременногоХранилища(Вложение.АдресВоВременномХранилище);
Изображение = Новый Картинка(ДвоичныеДанные);
Если Изображение.Формат() = ФорматКартинки.PNG Тогда
РасширениеКартинки = "png";
ИначеЕсли Изображение.Формат() = ФорматКартинки.JPEG Тогда
РасширениеКартинки = "jpeg";
ИначеЕсли Изображение.Формат() = ФорматКартинки.GIF Тогда
РасширениеКартинки = "gif";
ИначеЕсли Изображение.Формат() = ФорматКартинки.SVG Тогда
РасширениеКартинки = "svg";
ИначеЕсли Изображение.Формат() = ФорматКартинки.TIFF Тогда
РасширениеКартинки = "tiff";
Иначе
РасширениеКартинки = "";
КонецЕсли;
// Добавление расширения к представлению чтобы было понятно в каком формате сохранять файл
ПредставлениеКартинки = Вложение.Представление + ?(ПустаяСтрока(РасширениеКартинки), "", "." + РасширениеКартинки);
СписокКартинок.Добавить(Вложение.Идентификатор, ПредставлениеКартинки,, Изображение);
КонецЕсли;
КонецЦикла;
ТекстИТемаПисьма.Вставить("ВложенияКартинки", СписокКартинок);
КонецЕсли;
Иначе
ТипТекста = ПредопределенноеЗначение("Перечисление.ТипыТекстовЭлектронныхПисем.ПростойТекст");
ТекстHTML = "";
@ -1574,4 +1585,3 @@
КонецФункции
//-ГЕНА

View File

@ -30,9 +30,8 @@
Если ДокОбъект.ТипТекста = ПредопределенноеЗначение("Перечисление.ТипыТекстовЭлектронныхПисем.HTML")
ИЛИ ДокОбъект.ТипТекста = ПредопределенноеЗначение("Перечисление.ТипыТекстовЭлектронныхПисем.HTMLСКартинками") Тогда
ДокОбъект.ТекстHTML = ДопПараметры.ТекстПисьмаHTML;
Иначе
ДокОбъект.Текст = ТекстПисьма;
КонецЕсли;
ДокОбъект.Текст = ТекстПисьма; // Обычный текст сохраняется всегда
//-ГЕНА
ДокОбъект.УчетнаяЗапись = ПредопределенноеЗначение("Справочник.УчетныеЗаписиЭлектроннойПочты.СистемнаяУчетнаяЗаписьЭлектроннойПочты");
@ -79,6 +78,14 @@
ДокОбъект.Записать();
//+ГЕНА
// Сохранения вложенных картинок в присоединенных файлах документа
Если ДокОбъект.ТипТекста = ПредопределенноеЗначение("Перечисление.ТипыТекстовЭлектронныхПисем.HTML")
И ДопПараметры.ВложенияКартинки.Количество() > 0 Тогда
СохранитьКартинкиФорматированногоДокументаКакПрисоединенныеФайлы(ДокОбъект.Ссылка, ДопПараметры.ВложенияКартинки);
КонецЕсли;
//-ГЕНА
Если ДопПараметры.Свойство("Задача") Тогда
Взаимодействия.УстановитьПредмет(ДокОбъект.Ссылка, ДопПараметры.Задача);
КонецЕсли;
@ -1270,3 +1277,24 @@
КонецЕсли;
КонецПроцедуры
//+ГЕНА
Процедура СохранитьКартинкиФорматированногоДокументаКакПрисоединенныеФайлы(Ссылка, СписокКартинок)
Для каждого Вложение Из СписокКартинок Цикл
ДвоичныеДанныеКартинки = Вложение.Картинка.ПолучитьДвоичныеДанные();
АдресКартинкиВоВременномХранилище = ПоместитьВоВременноеХранилище(ДвоичныеДанныеКартинки);
ПрисоединенныйФайл = УправлениеЭлектроннойПочтой.ЗаписатьВложениеЭлектронногоПисьмаИзВременногоХранилища(
Ссылка, АдресКартинкиВоВременномХранилище,
"_" + СтрЗаменить(Вложение.Представление, "-", "_"), ДвоичныеДанныеКартинки.Размер());
Если ПрисоединенныйФайл <> Неопределено Тогда
ПрисоединенныйФайлОбъект = ПрисоединенныйФайл.ПолучитьОбъект();
ПрисоединенныйФайлОбъект.ИДФайлаЭлектронногоПисьма = "cid:" + Вложение.Значение;
ПрисоединенныйФайлОбъект.Записать();
КонецЕсли;
КонецЦикла;
КонецПроцедуры
//-ГЕНА