1
0
mirror of https://github.com/BlizD/Tasks.git synced 2025-01-26 03:52:19 +02:00

В справочник "Статусы задачи" добавлена ТЧ: Наблюдатели, для указанных пользователей будут приходить уведомления, если задача приходит в этот статус.

This commit is contained in:
Anton Ivanov 2017-04-20 09:19:18 +03:00
parent c878f2af8a
commit 9ab72b5391
2 changed files with 46 additions and 27 deletions
src/cf/Catalogs/узЗадачи/Ext

@ -16,4 +16,4 @@
//Реквизиты.Добавить("ИмяРеквизита"); // реквизит объекта
//Реквизиты.Добавить("ИмяТабличнойЧасти.*"); // табличная часть объекта
КонецПроцедуры
// Конец СтандартныеПодсистемы.ВерсионированиеОбъектов
// Конец СтандартныеПодсистемы.ВерсионированиеОбъектов

@ -515,6 +515,35 @@
Возврат;
Конецесли;
МассивНаблюдателей = ПолучитьМассивНаблюдателей();
Если МассивНаблюдателей.Количество() = 0 Тогда
Возврат;
Конецесли;
ВТДопПараметры = Новый Структура();
ВТДопПараметры.Вставить("ЭтоОтправкаНаблюдателям",Истина);
ВТДопПараметры.Вставить("НастройкиСобытий",НастройкиСобытий);
РезультатФункции = ПолучитьТемаПисьмаСобытие(ВТДопПараметры,СобытияВИстории);
Если НЕ РезультатФункции.НеобходимоОтправитьУведомление Тогда
Возврат;
КонецЕсли;
ПараметрыПисьма = ПолучитьПараметрыПисьма(РезультатФункции);
ДопПараметры = Новый Структура();
ДопПараметры.Вставить("ВажностьЗадачи",Важность);
ДопПараметры.Вставить("ТекстПисьма",ПараметрыПисьма.ТекстПисьма);
ДопПараметры.Вставить("ТемаПисьма",ПараметрыПисьма.ТемаПисьма);
ДопПараметры.Вставить("МассивПользователейКому",МассивНаблюдателей);
узОбщийМодульСервер.ОтправитьПисьмо(ДопПараметры);
КонецПроцедуры
Функция ПолучитьМассивНаблюдателей()
МассивНаблюдателей = Новый Массив();
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
@ -533,35 +562,25 @@
Запрос.УстановитьПараметр("Задача", Ссылка);
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
Возврат;
Если НЕ РезультатЗапроса.Пустой() Тогда
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
МассивНаблюдателей.Добавить(Выборка.Пользователь);
КонецЦикла;
Конецесли;
Выборка = РезультатЗапроса.Выбрать();
МассивПользователейКому = Новый Массив();
Пока Выборка.Следующий() Цикл
МассивПользователейКому.Добавить(Выборка.Пользователь);
КонецЦикла;
ВТДопПараметры = Новый Структура();
ВТДопПараметры.Вставить("ЭтоОтправкаНаблюдателям",Истина);
ВТДопПараметры.Вставить("НастройкиСобытий",НастройкиСобытий);
РезультатФункции = ПолучитьТемаПисьмаСобытие(ВТДопПараметры,СобытияВИстории);
Если НЕ РезультатФункции.НеобходимоОтправитьУведомление Тогда
Возврат;
КонецЕсли;
Для каждого СтрокаНаблюдатели из Статус.Наблюдатели цикл
Если МассивНаблюдателей.Найти(СтрокаНаблюдатели.Пользователь) <> Неопределено Тогда
Продолжить;
Конецесли;
Если СтрокаНаблюдатели.Пользователь = ПараметрыСеанса.ТекущийПользователь Тогда
Продолжить;
Конецесли;
МассивНаблюдателей.Добавить(СтрокаНаблюдатели.Пользователь);
Конеццикла;
ПараметрыПисьма = ПолучитьПараметрыПисьма(РезультатФункции);
ДопПараметры = Новый Структура();
ДопПараметры.Вставить("ВажностьЗадачи",Важность);
ДопПараметры.Вставить("ТекстПисьма",ПараметрыПисьма.ТекстПисьма);
ДопПараметры.Вставить("ТемаПисьма",ПараметрыПисьма.ТемаПисьма);
ДопПараметры.Вставить("МассивПользователейКому",МассивПользователейКому);
узОбщийМодульСервер.ОтправитьПисьмо(ДопПараметры);
КонецПроцедуры
Возврат МассивНаблюдателей;
КонецФункции
Функция ПолучитьТемаПисьмаСобытие(ДопПараметры,СобытияВИстории)