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

Merge pull request #244 from GenVP/task238

#238 Подключение механизма шаблонов к рассылке уведомлений
This commit is contained in:
Anton Ivanov 2020-08-25 09:10:36 +03:00 committed by GitHub
commit 98c21f5fe7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 74 additions and 142 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:" + Вложение.Значение;
ПрисоединенныйФайлОбъект.Записать();
КонецЕсли;
КонецЦикла;
КонецПроцедуры
//-ГЕНА

View File

@ -46,7 +46,7 @@
<Comment/>
<UseStandardCommands>true</UseStandardCommands>
<EditType>InDialog</EditType>
<DefaultRecordForm>InformationRegister.узТекущиеШаблоныСообщений.Form.ФормаЗаписи</DefaultRecordForm>
<DefaultRecordForm/>
<DefaultListForm/>
<AuxiliaryRecordForm/>
<AuxiliaryListForm/>
@ -255,7 +255,6 @@
<DataHistory>Use</DataHistory>
</Properties>
</Dimension>
<Form>ФормаЗаписи</Form>
</ChildObjects>
</InformationRegister>
</MetaDataObject>

View File

@ -1,21 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.10">
<Form uuid="2708b0b8-9f8a-4773-b287-8ae28c7b8571">
<Properties>
<Name>ФормаЗаписи</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Форма записи</v8:content>
</v8:item>
</Synonym>
<Comment/>
<FormType>Managed</FormType>
<IncludeHelpInContents>false</IncludeHelpInContents>
<UsePurposes>
<v8:Value xsi:type="app:ApplicationUsePurpose">PlatformApplication</v8:Value>
<v8:Value xsi:type="app:ApplicationUsePurpose">MobilePlatformApplication</v8:Value>
</UsePurposes>
</Properties>
</Form>
</MetaDataObject>

View File

@ -1,84 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Form xmlns="http://v8.1c.ru/8.3/xcf/logform" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.10">
<WindowOpeningMode>LockOwnerWindow</WindowOpeningMode>
<AutoCommandBar name="ФормаКоманднаяПанель" id="-1"/>
<ChildItems>
<InputField name="ВидШаблона" id="1">
<DataPath>Запись.ВидШаблона</DataPath>
<ContextMenu name="ВидШаблонаКонтекстноеМеню" id="2"/>
<ExtendedTooltip name="ВидШаблонаРасширеннаяПодсказка" id="3"/>
</InputField>
<InputField name="КодЯзыка" id="4">
<ListChoiceMode>true</ListChoiceMode>
<ChoiceList>
<xr:Item>
<xr:Presentation/>
<xr:CheckState>0</xr:CheckState>
<xr:Value xsi:type="FormChoiceListDesTimeValue">
<Presentation>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Русский</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Russian</v8:content>
</v8:item>
</Presentation>
<Value xsi:type="xs:string">ru</Value>
</xr:Value>
</xr:Item>
<xr:Item>
<xr:Presentation/>
<xr:CheckState>0</xr:CheckState>
<xr:Value xsi:type="FormChoiceListDesTimeValue">
<Presentation>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Английский</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>English</v8:content>
</v8:item>
</Presentation>
<Value xsi:type="xs:string">en</Value>
</xr:Value>
</xr:Item>
<xr:Item>
<xr:Presentation/>
<xr:CheckState>0</xr:CheckState>
<xr:Value xsi:type="FormChoiceListDesTimeValue">
<Presentation>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>&lt; все &gt;</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>&lt; all &gt;</v8:content>
</v8:item>
</Presentation>
<Value xsi:type="xs:string"/>
</xr:Value>
</xr:Item>
</ChoiceList>
<ContextMenu name="КодЯзыкаКонтекстноеМеню" id="5"/>
<ExtendedTooltip name="КодЯзыкаРасширеннаяПодсказка" id="6"/>
</InputField>
<InputField name="ШаблонСообщения" id="7">
<DataPath>Запись.ШаблонСообщения</DataPath>
<ContextMenu name="ШаблонСообщенияКонтекстноеМеню" id="8"/>
<ExtendedTooltip name="ШаблонСообщенияРасширеннаяПодсказка" id="9"/>
</InputField>
</ChildItems>
<Attributes>
<Attribute name="Запись" id="1">
<Type>
<v8:Type>cfg:InformationRegisterRecordManager.узТекущиеШаблоныСообщений</v8:Type>
</Type>
<MainAttribute>true</MainAttribute>
<SavedData>true</SavedData>
</Attribute>
</Attributes>
</Form>