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

#18 При переносе в статус архив не отправлять уведомления (УЗ 120)

This commit is contained in:
Anton Ivanov 2017-01-04 17:28:13 +03:00
parent 60b78077c8
commit b9422703be

View File

@ -81,18 +81,27 @@
СобытияВИстории = Новый Структура(); СобытияВИстории = Новый Структура();
СобытияВИстории.Вставить("СтарыйИсполнитель",СтарыйИсполнитель); СобытияВИстории.Вставить("СтарыйИсполнитель",СтарыйИсполнитель);
ТЗСобытияВИстории = Новый ТаблицаЗначений; ТЗСобытияВИсторииДляУведомлений = Новый ТаблицаЗначений;
ТЗСобытияВИстории.Колонки.Добавить("ВидСобытия",Новый ОписаниеТипов("ПеречислениеСсылка.узВидыСобытий")); ТЗСобытияВИсторииДляУведомлений.Колонки.Добавить("ВидСобытия",Новый ОписаниеТипов("ПеречислениеСсылка.узВидыСобытий"));
ДатаСобытия = ТекущаяДата(); ДатаСобытия = ТекущаяДата();
пАвтор = Пользователи.ТекущийПользователь(); пАвтор = Пользователи.ТекущийПользователь();
ПараметрыДляИстории = Новый Структура();
ПараметрыДляИстории.Вставить("ДатаСобытия",ДатаСобытия);
ПараметрыДляИстории.Вставить("Автор",пАвтор);
ПараметрыДляИстории.Вставить("НовыйСтатус",Статус);
Если ЭтоНовый() Тогда Если ЭтоНовый() Тогда
ВидСобытия = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ДобавленаЗадача"); ВидСобытия = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ДобавленаЗадача");
Событие = "Добавлена задача"; Событие = "Добавлена задача";
ДобавитьВИсторию(ДатаСобытия,пАвтор,ВидСобытия,Событие,ТЗСобытияВИстории);
ПараметрыДляИстории.Вставить("ВидСобытия",ВидСобытия);
ПараметрыДляИстории.Вставить("Событие",Событие);
ДобавитьВИсторию(ПараметрыДляИстории,ТЗСобытияВИсторииДляУведомлений);
ДобавитьВИсториюСтатусов(); ДобавитьВИсториюСтатусов();
СобытияВИстории.Вставить("ТЗСобытияВИстории",ТЗСобытияВИстории); СобытияВИстории.Вставить("ТЗСобытияВИсторииДляУведомлений",ТЗСобытияВИсторииДляУведомлений);
Возврат СобытияВИстории; Возврат СобытияВИстории;
Конецесли; Конецесли;
@ -104,7 +113,11 @@
Иначе Иначе
Событие = "Изменен исполнитель с ["+СтарыйИсполнитель+"] на [" + Исполнитель+"]"; Событие = "Изменен исполнитель с ["+СтарыйИсполнитель+"] на [" + Исполнитель+"]";
Конецесли; Конецесли;
ДобавитьВИсторию(ДатаСобытия,пАвтор,ВидСобытия,Событие,ТЗСобытияВИстории);
ПараметрыДляИстории.Вставить("ВидСобытия",ВидСобытия);
ПараметрыДляИстории.Вставить("Событие",Событие);
ДобавитьВИсторию(ПараметрыДляИстории,ТЗСобытияВИсторииДляУведомлений);
ДобавитьВИсториюСтатусов(); ДобавитьВИсториюСтатусов();
Конецесли; Конецесли;
@ -114,20 +127,31 @@
ВидСобытия = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ИзменениеСтатуса"); ВидСобытия = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ИзменениеСтатуса");
Событие = "Изменен статус с ["+СтарыйСтатус+"] на [" + Статус+"]"; Событие = "Изменен статус с ["+СтарыйСтатус+"] на [" + Статус+"]";
ДобавитьВИсторию(ДатаСобытия,пАвтор,ВидСобытия,Событие,ТЗСобытияВИстории);
ПараметрыДляИстории.Вставить("ВидСобытия",ВидСобытия);
ПараметрыДляИстории.Вставить("Событие",Событие);
ДобавитьВИсторию(ПараметрыДляИстории,ТЗСобытияВИсторииДляУведомлений);
Конецесли; Конецесли;
СтарыеКомментарии = Ссылка.Комментарии; СтарыеКомментарии = Ссылка.Комментарии;
Если Комментарии.Количество() <> СтарыеКомментарии.Количество() Тогда Если Комментарии.Количество() <> СтарыеКомментарии.Количество() Тогда
ВидСобытия = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ДобавленКомментарий"); ВидСобытия = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ДобавленКомментарий");
Событие = "Добавлен новый комментарий"; Событие = "Добавлен новый комментарий";
ДобавитьВИсторию(ДатаСобытия,пАвтор,ВидСобытия,Событие,ТЗСобытияВИстории);
ПараметрыДляИстории.Вставить("ВидСобытия",ВидСобытия);
ПараметрыДляИстории.Вставить("Событие",Событие);
ДобавитьВИсторию(ПараметрыДляИстории,ТЗСобытияВИсторииДляУведомлений);
Иначе Иначе
ИзменилисьЛиКомментарии = ПолучитьИзменилисьЛиКомментарии(); ИзменилисьЛиКомментарии = ПолучитьИзменилисьЛиКомментарии();
Если ИзменилисьЛиКомментарии Тогда Если ИзменилисьЛиКомментарии Тогда
ВидСобытия = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ИзмененКомментарий"); ВидСобытия = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ИзмененКомментарий");
Событие = "Изменили комментарий"; Событие = "Изменили комментарий";
ДобавитьВИсторию(ДатаСобытия,пАвтор,ВидСобытия,Событие,ТЗСобытияВИстории);
ПараметрыДляИстории.Вставить("ВидСобытия",ВидСобытия);
ПараметрыДляИстории.Вставить("Событие",Событие);
ДобавитьВИсторию(ПараметрыДляИстории,ТЗСобытияВИсторииДляУведомлений);
Конецесли; Конецесли;
Конецесли; Конецесли;
@ -138,12 +162,15 @@
ИЛИ СокрЛП(ТекстСодержания) <> СтароеТекстСодержания Тогда ИЛИ СокрЛП(ТекстСодержания) <> СтароеТекстСодержания Тогда
ВидСобытия = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ИзмененоОписаниеЗадачи"); ВидСобытия = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ИзмененоОписаниеЗадачи");
Событие = "Изменено описание задачи"; Событие = "Изменено описание задачи";
ДобавитьВИсторию(ДатаСобытия,пАвтор,ВидСобытия,Событие,ТЗСобытияВИстории);
ПараметрыДляИстории.Вставить("ВидСобытия",ВидСобытия);
ПараметрыДляИстории.Вставить("Событие",Событие);
ДобавитьВИсторию(ПараметрыДляИстории,ТЗСобытияВИсторииДляУведомлений);
Конецесли; Конецесли;
История.Сортировать("ДатаСобытия УБЫВ"); История.Сортировать("ДатаСобытия УБЫВ");
СобытияВИстории.Вставить("ТЗСобытияВИстории",ТЗСобытияВИстории); СобытияВИстории.Вставить("ТЗСобытияВИсторииДляУведомлений",ТЗСобытияВИсторииДляУведомлений);
Возврат СобытияВИстории; Возврат СобытияВИстории;
@ -196,16 +223,20 @@
СтрокаИсторияСтатусов.ДатаОкончания = ТекущаяДата(); СтрокаИсторияСтатусов.ДатаОкончания = ТекущаяДата();
КонецПроцедуры КонецПроцедуры
Процедура ДобавитьВИсторию(ДатаСобытия,пАвтор,ВидСобытия,Событие,ТЗСобытияВИстории) Процедура ДобавитьВИсторию(ПараметрыДляИстории,ТЗСобытияВИсторииДляУведомлений)
СтрокаИстория = История.Добавить(); СтрокаИстория = История.Добавить();
СтрокаИстория.ДатаСобытия = ДатаСобытия; СтрокаИстория.ДатаСобытия = ПараметрыДляИстории.ДатаСобытия;
СтрокаИстория.Автор = пАвтор; СтрокаИстория.Автор = ПараметрыДляИстории.Автор;
СтрокаИстория.ВидСобытия = ВидСобытия; СтрокаИстория.ВидСобытия = ПараметрыДляИстории.ВидСобытия;
СтрокаИстория.Событие = Событие; СтрокаИстория.Событие = ПараметрыДляИстории.Событие;
СтрокаТЗСобытияВИстории = ТЗСобытияВИстории.Добавить(); Если ПараметрыДляИстории.НовыйСтатус = ПредопределенноеЗначение("Справочник.узСтатусыЗадачи.Архив") Тогда
СтрокаТЗСобытияВИстории.ВидСобытия = ВидСобытия; Возврат;
Конецесли;
СтрокаТЗСобытияВИсторииДляУведомлений = ТЗСобытияВИсторииДляУведомлений.Добавить();
СтрокаТЗСобытияВИсторииДляУведомлений.ВидСобытия = ПараметрыДляИстории.ВидСобытия;
КонецПроцедуры КонецПроцедуры
Процедура ОтправитьУведомлениеНаПочту(СобытияВИстории) Процедура ОтправитьУведомлениеНаПочту(СобытияВИстории)
@ -273,8 +304,8 @@
Если ТекПользователь = Исполнитель Тогда Если ТекПользователь = Исполнитель Тогда
Возврат; Возврат;
Конецесли; Конецесли;
ТЗСобытияВИстории = СобытияВИстории.ТЗСобытияВИстории; ТЗСобытияВИсторииДляУведомлений = СобытияВИстории.ТЗСобытияВИсторииДляУведомлений;
ВсегоСобытий = ТЗСобытияВИстории.Количество(); ВсегоСобытий = ТЗСобытияВИсторииДляУведомлений.Количество();
Если ВсегоСобытий = 0 Тогда Если ВсегоСобытий = 0 Тогда
Возврат; Возврат;
Конецесли; Конецесли;
@ -317,8 +348,8 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
ТЗСобытияВИстории = СобытияВИстории.ТЗСобытияВИстории; ТЗСобытияВИсторииДляУведомлений = СобытияВИстории.ТЗСобытияВИсторииДляУведомлений;
ВсегоСобытий = ТЗСобытияВИстории.Количество(); ВсегоСобытий = ТЗСобытияВИсторииДляУведомлений.Количество();
Если ВсегоСобытий = 0 Тогда Если ВсегоСобытий = 0 Тогда
Возврат; Возврат;
Конецесли; Конецесли;
@ -343,8 +374,8 @@
КонецПроцедуры КонецПроцедуры
Процедура ОтправитьУведомлениеНаПочтуНаблюдателям(НастройкиСобытий,СобытияВИстории) Процедура ОтправитьУведомлениеНаПочтуНаблюдателям(НастройкиСобытий,СобытияВИстории)
ТЗСобытияВИстории = СобытияВИстории.ТЗСобытияВИстории; ТЗСобытияВИсторииДляУведомлений = СобытияВИстории.ТЗСобытияВИсторииДляУведомлений;
ВсегоСобытий = ТЗСобытияВИстории.Количество(); ВсегоСобытий = ТЗСобытияВИсторииДляУведомлений.Количество();
Если ВсегоСобытий = 0 Тогда Если ВсегоСобытий = 0 Тогда
Возврат; Возврат;
Конецесли; Конецесли;
@ -399,7 +430,7 @@
Функция ПолучитьТемаПисьмаСобытие(ДопПараметры,СобытияВИстории) Функция ПолучитьТемаПисьмаСобытие(ДопПараметры,СобытияВИстории)
ТЗСобытияВИстории = СобытияВИстории.ТЗСобытияВИстории; ТЗСобытияВИсторииДляУведомлений = СобытияВИстории.ТЗСобытияВИсторииДляУведомлений;
РезультатФункции = Новый Структура(); РезультатФункции = Новый Структура();
НастройкиСобытий = ДопПараметры.НастройкиСобытий; НастройкиСобытий = ДопПараметры.НастройкиСобытий;
@ -425,10 +456,10 @@
НеобходимоОтправитьУведомление = Ложь; НеобходимоОтправитьУведомление = Ложь;
ТемаПисьмаСобытие = ""; ТемаПисьмаСобытие = "";
ВсегоСобытий = ТЗСобытияВИстории.Количество(); ВсегоСобытий = ТЗСобытияВИсторииДляУведомлений.Количество();
Если ВсегоСобытий = 1 Тогда Если ВсегоСобытий = 1 Тогда
СтрокаТЗСобытияВИстории = ТЗСобытияВИстории[0]; СтрокаТЗСобытияВИсторииДляУведомлений = ТЗСобытияВИсторииДляУведомлений[0];
ВидСобытия = СтрокаТЗСобытияВИстории.ВидСобытия; ВидСобытия = СтрокаТЗСобытияВИсторииДляУведомлений.ВидСобытия;
Если ВидСобытия = НастройкиСобытий.ВидыСобытий_ДобавленаЗадача Тогда Если ВидСобытия = НастройкиСобытий.ВидыСобытий_ДобавленаЗадача Тогда
Если ЭтоОтправкаИсполнителю Тогда Если ЭтоОтправкаИсполнителю Тогда
НеобходимоОтправитьУведомление = Истина; НеобходимоОтправитьУведомление = Истина;
@ -463,7 +494,7 @@
Конецесли; Конецесли;
Конецесли; Конецесли;
Иначе Иначе
Если ТЗСобытияВИстории.Найти(НастройкиСобытий.ВидыСобытий_НовыйИсполнитель,"ВидСобытия") <> Неопределено Тогда Если ТЗСобытияВИсторииДляУведомлений.Найти(НастройкиСобытий.ВидыСобытий_НовыйИсполнитель,"ВидСобытия") <> Неопределено Тогда
Если ЭтоОтправкаИсполнителю Тогда Если ЭтоОтправкаИсполнителю Тогда
НеобходимоОтправитьУведомление = Истина; НеобходимоОтправитьУведомление = Истина;
ТемаПисьмаСобытие = "Вам была назначена задача: "; ТемаПисьмаСобытие = "Вам была назначена задача: ";
@ -474,8 +505,8 @@
ТемаПисьмаСобытие = "Изменился исполнитель у задачи:"; ТемаПисьмаСобытие = "Изменился исполнитель у задачи:";
Конецесли; Конецесли;
Иначе Иначе
Для каждого СтрокаТЗСобытияВИстории из ТЗСобытияВИстории цикл Для каждого СтрокаТЗСобытияВИсторииДляУведомлений из ТЗСобытияВИсторииДляУведомлений цикл
ВидСобытия = СтрокаТЗСобытияВИстории.ВидСобытия; ВидСобытия = СтрокаТЗСобытияВИсторииДляУведомлений.ВидСобытия;
Если МассивСобытийКоторыеПодлежатОтправки.Найти(ВидСобытия) <> Неопределено Тогда Если МассивСобытийКоторыеПодлежатОтправки.Найти(ВидСобытия) <> Неопределено Тогда
НеобходимоОтправитьУведомление = Истина; НеобходимоОтправитьУведомление = Истина;
ТемаПисьмаСобытие = "Изменена задача: "; ТемаПисьмаСобытие = "Изменена задача: ";