From c139487a69e60611899a85ab13b16ed5595782cc Mon Sep 17 00:00:00 2001 From: Anton Ivanov Date: Sun, 11 Feb 2018 11:02:29 +0300 Subject: [PATCH] =?UTF-8?q?=E2=84=96286=20Servicedesk:=20=D0=BE=D1=82?= =?UTF-8?q?=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B0=20=D1=83=D0=B2=D0=B5=D0=B4?= =?UTF-8?q?=D0=BE=D0=BC=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=B7=D0=B0=D0=BA?= =?UTF-8?q?=D0=B0=D0=B7=D1=87=D0=B8=D0=BA=D1=83,=20=D1=87=D1=82=D0=BE=20?= =?UTF-8?q?=D0=B7=D0=B0=D0=B4=D0=B0=D1=87=D0=B0=20=D0=B2=D1=8B=D0=BF=D0=BE?= =?UTF-8?q?=D0=BB=D0=BD=D0=B5=D0=BD=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Catalogs/узЗадачи/Ext/ManagerModule.bsl | 3 + src/cf/Catalogs/узЗадачи/Ext/ObjectModule.bsl | 194 +++++++++++++++--- src/cf/Enums/узВидыСобытий.xml | 12 ++ 3 files changed, 184 insertions(+), 25 deletions(-) diff --git a/src/cf/Catalogs/узЗадачи/Ext/ManagerModule.bsl b/src/cf/Catalogs/узЗадачи/Ext/ManagerModule.bsl index 26df4ca5c..8a0ed05f2 100644 --- a/src/cf/Catalogs/узЗадачи/Ext/ManagerModule.bsl +++ b/src/cf/Catalogs/узЗадачи/Ext/ManagerModule.bsl @@ -139,6 +139,7 @@ ВидыСобытий_ИзмененоОписаниеЗадачи = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ИзмененоОписаниеЗадачи"); ВидыСобытий_ИзменениеСтатуса = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ИзменениеСтатуса"); ВидыСобытий_ВходящееПисьмо = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ВходящееПисьмо"); + ВидыСобытий_ВыполненаЗадача = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ВыполненаЗадача"); РезультатФункции.Вставить("ВидыСобытий_ДобавленаЗадача",ВидыСобытий_ДобавленаЗадача); РезультатФункции.Вставить("ВидыСобытий_НовыйИсполнитель",ВидыСобытий_НовыйИсполнитель); @@ -147,6 +148,7 @@ РезультатФункции.Вставить("ВидыСобытий_ИзмененоОписаниеЗадачи",ВидыСобытий_ИзмененоОписаниеЗадачи); РезультатФункции.Вставить("ВидыСобытий_ИзменениеСтатуса",ВидыСобытий_ИзменениеСтатуса); РезультатФункции.Вставить("ВидыСобытий_ВходящееПисьмо",ВидыСобытий_ВходящееПисьмо); + РезультатФункции.Вставить("ВидыСобытий_ВыполненаЗадача",ВидыСобытий_ВыполненаЗадача); МассивСобытийДляНаблюдателяКоторыеПодлежатОтправки = Новый Массив(); МассивСобытийДляНаблюдателяКоторыеПодлежатОтправки.Добавить(ВидыСобытий_ИзменениеСтатуса); @@ -172,6 +174,7 @@ МассивСобытийДляКонтрагентовКоторыеПодлежатОтправки = Новый Массив(); МассивСобытийДляКонтрагентовКоторыеПодлежатОтправки.Добавить(ВидыСобытий_ДобавленаЗадача); + МассивСобытийДляКонтрагентовКоторыеПодлежатОтправки.Добавить(ВидыСобытий_ВыполненаЗадача); РезультатФункции.Вставить("МассивСобытийДляКонтрагентовКоторыеПодлежатОтправки",МассивСобытийДляКонтрагентовКоторыеПодлежатОтправки); diff --git a/src/cf/Catalogs/узЗадачи/Ext/ObjectModule.bsl b/src/cf/Catalogs/узЗадачи/Ext/ObjectModule.bsl index e06e23bfc..c5e8bf35b 100644 --- a/src/cf/Catalogs/узЗадачи/Ext/ObjectModule.bsl +++ b/src/cf/Catalogs/узЗадачи/Ext/ObjectModule.bsl @@ -205,6 +205,16 @@ ПараметрыДляИстории.Вставить("ВидСобытия",ВидСобытия); ПараметрыДляИстории.Вставить("Событие",Событие); ДобавитьВИсторию(ПараметрыДляИстории,ТЗСобытияВИсторииДляУведомлений); + + ВидСтатуса_Готово = ПредопределенноеЗначение("Справочник.узВидыСтатусов.Готово"); + Если СтарыйСтатус.ВидСтатуса <> ВидСтатуса_Готово + И Статус.ВидСтатуса = ВидСтатуса_Готово Тогда + + ВидСобытия_ВыполненаЗадача = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ВыполненаЗадача"); + ПараметрыДляИстории.Вставить("ВидСобытия",ВидСобытия_ВыполненаЗадача); + ПараметрыДляИстории.Вставить("Событие","Выполнена задача"); + ДобавитьВИсторию(ПараметрыДляИстории,ТЗСобытияВИсторииДляУведомлений); + Конецесли; Конецесли; @@ -750,10 +760,19 @@ ИЛИ ЭтоОтправкаНаблюдателям Тогда НеобходимоОтправитьУведомление = Истина; ТемаПисьмаСобытие = "Входящее письмо по задаче:"; - Конецесли; + Конецесли; + ИначеЕсли ВидСобытия = НастройкиСобытий.ВидыСобытий_ВыполненаЗадача Тогда + Если ЭтоОтправкаКонтрагентам Тогда + НеобходимоОтправитьУведомление = Истина; + ТемаПисьмаСобытие = "Ваша заявка выполнена:"; + Конецесли; Конецесли; Иначе - Если ТЗСобытияВИсторииДляУведомлений.Найти(НастройкиСобытий.ВидыСобытий_НовыйИсполнитель,"ВидСобытия") <> Неопределено Тогда + Если ЭтоОтправкаКонтрагентам + И ТЗСобытияВИсторииДляУведомлений.Найти(НастройкиСобытий.ВидыСобытий_ВыполненаЗадача,"ВидСобытия") <> Неопределено Тогда + НеобходимоОтправитьУведомление = Истина; + ТемаПисьмаСобытие = "Ваша заявка выполнена:"; + ИначеЕсли ТЗСобытияВИсторииДляУведомлений.Найти(НастройкиСобытий.ВидыСобытий_НовыйИсполнитель,"ВидСобытия") <> Неопределено Тогда Если ЭтоОтправкаИсполнителю Тогда НеобходимоОтправитьУведомление = Истина; ТемаПисьмаСобытие = узОбщийМодульСервер.ПолучитьТекстСообщения("Вам была назначена задача:",31); @@ -781,8 +800,139 @@ Возврат РезультатФункции; КонецФункции - Функция ПолучитьПараметрыПисьма(ДопПараметры) + //МассивКодовСообщений = Новый Массив(); + //МассивКодовСообщений.Добавить(22); //Добрый день + //МассивКодовСообщений.Добавить(23); //Номер задачи + //МассивКодовСообщений.Добавить(24); //Описание задачи + //МассивКодовСообщений.Добавить(25); //Комментарии + //МассивКодовСообщений.Добавить(26); //Реквизиты задачи + //МассивКодовСообщений.Добавить(27); //Исполнитель + //МассивКодовСообщений.Добавить(28); //Статус + //МассивКодовСообщений.Добавить(29); //Важность + //МассивКодовСообщений.Добавить(30); //ОсновнаяЗадача + // + //СтруктураСообщений = узОбщийМодульСервер.ПолучитьСтруктуруСообщений(МассивКодовСообщений); + // + //ТекстВПисьмеДобрыйДень = СтруктураСообщений.Текст22; + //ТекстВПисьмеНомерЗадачи = СтруктураСообщений.Текст23; + //ТекстВПисьмеОписаниеЗадачи = СтруктураСообщений.Текст24; + //ТекстВПисьмеКомментарий = СтруктураСообщений.Текст25; + //ТекстВПисьмеРеквизитыЗадачи = СтруктураСообщений.Текст26; + //ТекстВПисьмеИсполнитель = СтруктураСообщений.Текст27; + //ТекстВПисьмеСтатус = СтруктураСообщений.Текст28; + //ТекстВПисьмеВажность = СтруктураСообщений.Текст29; + //ТекстВПисьмеОсновнаяЗадача = СтруктураСообщений.Текст30; + // + // + //ЭтоОтправкаКонтрагентам = Ложь; + //Если ДопПараметры.Свойство("ЭтоОтправкаКонтрагентам") + // И ДопПараметры.ЭтоОтправкаКонтрагентам Тогда + // ЭтоОтправкаКонтрагентам = Истина; + //Конецесли; + // + //ТемаПисьмаСобытие = ДопПараметры.ТемаПисьмаСобытие; + //МассивИзмененнийПоКомментариям = ДопПараметры.МассивИзмененнийПоКомментариям; + // + //РезультатФункции = Новый Структура(); + // + //НаименованиеЗадачи = СокрЛП(Наименование); + //НомерЗадачи = ""+Формат(Код,"ЧГ=0"); + //ТемаПисьма = "[#"+НомерЗадачи+"] "+ТемаПисьмаСобытие + НаименованиеЗадачи; + //ТекстПисьма = " + //|"+ТекстВПисьмеДобрыйДень+". + //| + //|"+ТемаПисьмаСобытие+" "+НаименованиеЗадачи+" + //|"+ТекстВПисьмеНомерЗадачи+": #"+НомерЗадачи+" + //|"; + // + //Если МассивИзмененнийПоКомментариям.Количество() = 0 Тогда + // Если ЗначениеЗаполнено(ТекстСодержания) Тогда + // ТекстПисьма = ТекстПисьма + " + // | + // |"+ТекстВПисьмеОписаниеЗадачи+": + // |"+ТекстСодержания+" + // |"; + // Конецесли; + //Иначе + // ТекстПисьма = ТекстПисьма + " + // | + // |"+ТекстВПисьмеКомментарий+":"; + // Для каждого ЭлМассивИзмененнийПоКомментариям из МассивИзмененнийПоКомментариям цикл + // ТекстПисьма = ТекстПисьма + Символы.ПС + // + " - "+ЭлМассивИзмененнийПоКомментариям; + // Конеццикла; + //Конецесли; + // + //Если НЕ ЭтоОтправкаКонтрагентам Тогда + // ТекстПисьма = ТекстПисьма + " + // | + // |"+ТекстВПисьмеРеквизитыЗадачи+": + // |- "+ТекстВПисьмеИсполнитель+" ["+Исполнитель+"] + // |- "+ТекстВПисьмеСтатус+" ["+Статус+"] + // |- "+ТекстВПисьмеВажность+" ["+Важность+"] + // |- "+ТекстВПисьмеОсновнаяЗадача+" ["+ОсновнаяЗадача+"] + // |"; + //Конецесли; + + + НаименованиеЗадачи = СокрЛП(Наименование); + ТемаПисьмаСобытие = ДопПараметры.ТемаПисьмаСобытие; + + НомерЗадачи = ""+Формат(Код,"ЧГ=0"); + ТемаПисьма = "[#"+НомерЗадачи+"] "+ТемаПисьмаСобытие + НаименованиеЗадачи; + ДопПараметры.Вставить("ТемаПисьма",ТемаПисьма); + ДопПараметры.Вставить("НомерЗадачи",НомерЗадачи); + + ТекстПисьма = ПолучитьТекстПисьма(ДопПараметры); + + РезультатФункции = Новый Структура(); + РезультатФункции.Вставить("ТемаПисьма",ТемаПисьма); + РезультатФункции.Вставить("ТекстПисьма",ТекстПисьма); + + Возврат РезультатФункции; +КонецФункции + +Функция ПолучитьТекстПисьма(ДопПараметры) + Перем пТекстПисьма; + + ЭтоОтправкаКонтрагентам = Ложь; + Если ДопПараметры.Свойство("ЭтоОтправкаКонтрагентам") + И ДопПараметры.ЭтоОтправкаКонтрагентам Тогда + ЭтоОтправкаКонтрагентам = Истина; + Конецесли; + + Если ЭтоОтправкаКонтрагентам Тогда + пТекстПисьма = ПолучитьТекстПисьма_Контрагентам(ДопПараметры); + Иначе + пТекстПисьма = ПолучитьТекстПисьма_Общее(ДопПараметры); + Конецесли; + + Возврат пТекстПисьма; +КонецФункции + +Функция ПолучитьТекстПисьма_Контрагентам(ДопПараметры) + Перем ТекстПисьма; + + ТемаПисьмаСобытие = ДопПараметры.ТемаПисьмаСобытие; + + ТекстПисьма = " + | Добрый день. + | + | "+ТемаПисьмаСобытие+" + | Номер заявки: " + ДопПараметры.НомерЗадачи + " + | Тема заявки: "+ ДопПараметры.ТемаПисьма + " + | + | Описание задачи: + | "+ТекстСодержания+" + |"; + + + Возврат ТекстПисьма; +КонецФункции + +Функция ПолучитьТекстПисьма_Общее(ДопПараметры) + МассивКодовСообщений = Новый Массив(); МассивКодовСообщений.Добавить(22); //Добрый день МассивКодовСообщений.Добавить(23); //Номер задачи @@ -806,13 +956,6 @@ ТекстВПисьмеВажность = СтруктураСообщений.Текст29; ТекстВПисьмеОсновнаяЗадача = СтруктураСообщений.Текст30; - - ЭтоОтправкаКонтрагентам = Ложь; - Если ДопПараметры.Свойство("ЭтоОтправкаКонтрагентам") - И ДопПараметры.ЭтоОтправкаКонтрагентам Тогда - ЭтоОтправкаКонтрагентам = Истина; - Конецесли; - ТемаПисьмаСобытие = ДопПараметры.ТемаПисьмаСобытие; МассивИзмененнийПоКомментариям = ДопПараметры.МассивИзмененнийПоКомментариям; @@ -820,7 +963,7 @@ НаименованиеЗадачи = СокрЛП(Наименование); НомерЗадачи = ""+Формат(Код,"ЧГ=0"); - ТемаПисьма = "[#"+НомерЗадачи+"] "+ТемаПисьмаСобытие + НаименованиеЗадачи; + //ТемаПисьма = "[#"+НомерЗадачи+"] "+ТемаПисьмаСобытие + НаименованиеЗадачи; ТекстПисьма = " |"+ТекстВПисьмеДобрыйДень+". | @@ -846,23 +989,19 @@ Конеццикла; Конецесли; - Если НЕ ЭтоОтправкаКонтрагентам Тогда - ТекстПисьма = ТекстПисьма + " - | - |"+ТекстВПисьмеРеквизитыЗадачи+": - |- "+ТекстВПисьмеИсполнитель+" ["+Исполнитель+"] - |- "+ТекстВПисьмеСтатус+" ["+Статус+"] - |- "+ТекстВПисьмеВажность+" ["+Важность+"] - |- "+ТекстВПисьмеОсновнаяЗадача+" ["+ОсновнаяЗадача+"] - |"; - Конецесли; + ТекстПисьма = ТекстПисьма + " + | + |"+ТекстВПисьмеРеквизитыЗадачи+": + |- "+ТекстВПисьмеИсполнитель+" ["+Исполнитель+"] + |- "+ТекстВПисьмеСтатус+" ["+Статус+"] + |- "+ТекстВПисьмеВажность+" ["+Важность+"] + |- "+ТекстВПисьмеОсновнаяЗадача+" ["+ОсновнаяЗадача+"] + |"; - РезультатФункции.Вставить("ТемаПисьма",ТемаПисьма); - РезультатФункции.Вставить("ТекстПисьма",ТекстПисьма); - - Возврат РезультатФункции; + Возврат ТекстПисьма; КонецФункции + Функция ЕстьПодчиненныеЗадачи(Задача,ЗадачаРебенок = Неопределено) Экспорт пЕстьПодчиненныеЗадачи = Ложь; Если ЭтоНовый() Тогда @@ -1100,3 +1239,8 @@ МассивСтатусов.Добавить(Выборка.Ссылка); КонецЦикла; КонецПроцедуры + +Процедура ОбработкаЗаполнения(ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка) + +КонецПроцедуры + diff --git a/src/cf/Enums/узВидыСобытий.xml b/src/cf/Enums/узВидыСобытий.xml index 0bea8564d..b1947b820 100644 --- a/src/cf/Enums/узВидыСобытий.xml +++ b/src/cf/Enums/узВидыСобытий.xml @@ -270,6 +270,18 @@ + + + ВыполненаЗадача + + + ru + Выполнена задача + + + + + \ No newline at end of file