mirror of
https://github.com/BlizD/Tasks.git
synced 2025-03-29 21:46:54 +02:00
#179 Подключить вопросы-ответы к уведомлению
Добавил еще событие "Изменен вопрос". Добавил отправку наблюдателям по задаче.
This commit is contained in:
parent
22f0e4b45a
commit
2346e30c48
@ -2,6 +2,8 @@
|
||||
|
||||
* Вставить инфу что теперь проект проверяется Sonar
|
||||
* Вставить инфу, что отработанны ошибки найденные по Sonar теперь ошибок равно 0
|
||||

|
||||
|
||||
* Обновить в файле настроек сонара новую версию релиза sonar.projectVersion=1.0.5.001
|
||||
|
||||
Вставка картинки из буфера
|
||||
@ -24,9 +26,10 @@ Wiki изменения:
|
||||
|
||||
| Вид события| Отправка исполнителю| Отправка наблюдателям | Отправка старому исполнителю| Отправка заказчику| Автор вопроса| Кто может решить вопрос|
|
||||
| ------------- |:-------------:| :-------------:|:-------------:|:-------------:|:-------------:|:-------------:|
|
||||
| Добавлен вопрос| V | X |X|X|V|V|
|
||||
| Изменен ответ| V | X |X|X|V|V|
|
||||
| Вопрос закрыт| V | X |X|X|V|V|
|
||||
| Добавлен вопрос| V | V |X|X|V|V|
|
||||
| Изменен вопрос| V | V |X|X|V|V|
|
||||
| Изменен ответ| V | V |X|X|V|V|
|
||||
| Вопрос закрыт| V | V |X|X|V|V|
|
||||
|
||||
|
||||
**Выпущена версия 1.0.5.001 (Обновление от 02.05.2020)**
|
||||
|
@ -38,6 +38,11 @@
|
||||
СтрокаТЗСобытия.ВидСобытия = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ИзмененОтвет");
|
||||
КонецЕсли;
|
||||
|
||||
Если ИзмененВопрос() Тогда
|
||||
СтрокаТЗСобытия = ТЗСобытия.Добавить();
|
||||
СтрокаТЗСобытия.ВидСобытия = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ИзмененВопрос");
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ТЗСобытия;
|
||||
КонецФункции
|
||||
|
||||
@ -51,6 +56,16 @@
|
||||
Возврат пИзмененОтвет;
|
||||
КонецФункции
|
||||
|
||||
Функция ИзмененВопрос()
|
||||
пИзмененВопрос = Ложь;
|
||||
|
||||
Если Ссылка.Вопрос <> Вопрос Тогда
|
||||
пИзмененВопрос = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат пИзмененВопрос;
|
||||
КонецФункции
|
||||
|
||||
Процедура ПриЗаписи(Отказ)
|
||||
|
||||
Если ОбменДанными.Загрузка Тогда
|
||||
@ -104,12 +119,21 @@
|
||||
ДопПараметры.Вставить("ВажностьЗадачи",ПараметрыПисьма.ВажностьЗадачи);
|
||||
|
||||
ТекПользователь = Пользователи.ТекущийПользователь();
|
||||
Исполнитель = Задача.Исполнитель;
|
||||
Исполнитель = ПредопределенноеЗначение("Справочник.Пользователи.ПустаяСсылка");
|
||||
|
||||
МассивНаблюдателей = Новый Массив();
|
||||
Если ЗначениеЗаполнено(Задача) Тогда
|
||||
МассивНаблюдателей = РегистрыСведений.узНаблюдателиЗаЗадачами.ПолучитьМассивНаблюдателей(Задача);
|
||||
Исполнитель = Задача.Исполнитель;
|
||||
КонецЕсли;
|
||||
|
||||
МассивПользователейКомуПредварительный = Новый Массив();
|
||||
МассивПользователейКомуПредварительный.Добавить(Автор);
|
||||
МассивПользователейКомуПредварительный.Добавить(Исполнитель);
|
||||
МассивПользователейКомуПредварительный.Добавить(КтоМожетОтветить);
|
||||
Для каждого пНаблюдатель из МассивНаблюдателей Цикл
|
||||
МассивПользователейКомуПредварительный.Добавить(пНаблюдатель);
|
||||
КонецЦикла;
|
||||
|
||||
МассивПользователейКому = Новый Массив();
|
||||
|
||||
@ -149,10 +173,13 @@
|
||||
ПараметрыПисьма.Вставить("ВажностьЗадачи",ВажностьЗадачи);
|
||||
|
||||
ЗаполненаЗадача = Ложь;
|
||||
НомерЗадачи = "";
|
||||
ПредставлениеЗадачи = "";
|
||||
Если ЗначениеЗаполнено(Задача) Тогда
|
||||
ЗаполненаЗадача = Истина;
|
||||
ВажностьЗадачи = Задача.Важность;
|
||||
НомерЗадачи = ""+Формат(Задача.Код,"ЧГ=0");
|
||||
ПредставлениеЗадачи = "#" + НомерЗадачи + " " + Задача.Наименование;
|
||||
КонецЕсли;
|
||||
|
||||
ТемаПисьма = "Изменения по вопросу";
|
||||
@ -169,9 +196,9 @@
|
||||
|
||||
Если ЗаполненаЗадача Тогда
|
||||
|
||||
ТемаПисьма = "Новый вопрос к задаче #" + НомерЗадачи;
|
||||
ТемаПисьма = "Новый вопрос к задаче " + ПредставлениеЗадачи;
|
||||
|
||||
ТекстПисьма = "К задаче #" + НомерЗадачи + " " + Автор + " задал вопрос " + КтоМожетОтветить;
|
||||
ТекстПисьма = "К задаче " + ПредставлениеЗадачи + " " + Автор + " задал вопрос " + КтоМожетОтветить;
|
||||
ДобавитьВТекстПисьмаВопрос(ТекстПисьма);
|
||||
|
||||
КонецЕсли
|
||||
@ -186,13 +213,31 @@
|
||||
|
||||
Если ЗаполненаЗадача Тогда
|
||||
|
||||
ТемаПисьма = "Изменен ответ по вопросу к задаче #" + НомерЗадачи;
|
||||
ТемаПисьма = "Изменен ответ по вопросу к задаче " + ПредставлениеЗадачи;
|
||||
|
||||
ТекстПисьма = "Изменен ответ по вопросу к задаче #" + НомерЗадачи;
|
||||
ТекстПисьма = "Изменен ответ по вопросу к задаче " + ПредставлениеЗадачи;
|
||||
ДобавитьВТекстПисьмаВопрос(ТекстПисьма);
|
||||
ДобавитьВТекстПисьмаОтвет(ТекстПисьма);
|
||||
|
||||
КонецЕсли
|
||||
КонецЕсли
|
||||
|
||||
ИначеЕсли ВидСобытия = Перечисления.узВидыСобытий.ИзмененВопрос Тогда
|
||||
|
||||
ТемаПисьма = "Изменен вопрос ";
|
||||
|
||||
ТекстПисьма = "Изменен вопрос ";
|
||||
ДобавитьВТекстПисьмаВопрос(ТекстПисьма);
|
||||
ДобавитьВТекстПисьмаОтвет(ТекстПисьма);
|
||||
|
||||
Если ЗаполненаЗадача Тогда
|
||||
|
||||
ТемаПисьма = "Изменен вопрос к задаче " + ПредставлениеЗадачи;
|
||||
|
||||
ТекстПисьма = "Изменен вопрос к задаче " + ПредставлениеЗадачи;
|
||||
ДобавитьВТекстПисьмаВопрос(ТекстПисьма);
|
||||
ДобавитьВТекстПисьмаОтвет(ТекстПисьма);
|
||||
|
||||
КонецЕсли
|
||||
|
||||
ИначеЕсли ВидСобытия = Перечисления.узВидыСобытий.ЗакрытВопрос Тогда
|
||||
|
||||
@ -204,8 +249,8 @@
|
||||
|
||||
Если ЗаполненаЗадача Тогда
|
||||
|
||||
ТемаПисьма = "Вопрос закрыт к задаче #" + НомерЗадачи;
|
||||
ТекстПисьма = "Вопрос закрыт к задаче #" + НомерЗадачи;
|
||||
ТемаПисьма = "Вопрос закрыт к задаче " + ПредставлениеЗадачи;
|
||||
ТекстПисьма = "Вопрос закрыт к задаче " + ПредставлениеЗадачи;
|
||||
|
||||
ДобавитьВТекстПисьмаВопрос(ТекстПисьма);
|
||||
ДобавитьВТекстПисьмаОтвет(ТекстПисьма);
|
||||
|
@ -693,95 +693,98 @@
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьМассивНаблюдателей()
|
||||
пЗадача = Ссылка;
|
||||
|
||||
МассивНаблюдателей = Новый Массив();
|
||||
Возврат РегистрыСведений.узНаблюдателиЗаЗадачами.ПолучитьМассивНаблюдателей(Ссылка);
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст =
|
||||
"ВЫБРАТЬ
|
||||
| узНаблюдателиЗаЗадачами.Пользователь
|
||||
|ИЗ
|
||||
| РегистрСведений.узНаблюдателиЗаЗадачами КАК узНаблюдателиЗаЗадачами
|
||||
|ГДЕ
|
||||
| узНаблюдателиЗаЗадачами.Задача = &Задача
|
||||
| И узНаблюдателиЗаЗадачами.Пользователь.узНеОтправлятьУведомленияНаПочту = ЛОЖЬ
|
||||
| И узНаблюдателиЗаЗадачами.Пользователь <> &Исполнитель";
|
||||
|
||||
|
||||
//+ #190 SZ 16.03.2020
|
||||
// Убираем из запроса проверку на Текущего пользователя.
|
||||
// Проверку сделаем в обработке результата запроса
|
||||
//пЗадача = Ссылка;
|
||||
//
|
||||
// | И узНаблюдателиЗаЗадачами.Пользователь <> &ТекущийПользователь
|
||||
//МассивНаблюдателей = Новый Массив();
|
||||
//
|
||||
//- #190 SZ 16.03.2020
|
||||
|
||||
|
||||
ТекущийПользователь = Пользователи.ТекущийПользователь();
|
||||
//+ #190 SZ 16.03.2020
|
||||
// Убираем из запроса проверку на Текущего пользователя.
|
||||
//Запрос = Новый Запрос;
|
||||
//Запрос.Текст =
|
||||
//"ВЫБРАТЬ
|
||||
//| узНаблюдателиЗаЗадачами.Пользователь
|
||||
//|ИЗ
|
||||
//| РегистрСведений.узНаблюдателиЗаЗадачами КАК узНаблюдателиЗаЗадачами
|
||||
//|ГДЕ
|
||||
//| узНаблюдателиЗаЗадачами.Задача = &Задача
|
||||
//| И узНаблюдателиЗаЗадачами.Пользователь.узНеОтправлятьУведомленияНаПочту = ЛОЖЬ
|
||||
//| И узНаблюдателиЗаЗадачами.Пользователь <> &Исполнитель";
|
||||
//
|
||||
//Запрос.УстановитьПараметр("ТекущийПользователь", ТекущийПользователь);
|
||||
//
|
||||
// Проверку сделаем в обработке результата запроса
|
||||
//- #190 SZ 16.03.2020
|
||||
|
||||
Запрос.УстановитьПараметр("Исполнитель", Исполнитель);
|
||||
Запрос.УстановитьПараметр("Задача", пЗадача);
|
||||
|
||||
РезультатЗапроса = Запрос.Выполнить();
|
||||
Если НЕ РезультатЗапроса.Пустой() Тогда
|
||||
Выборка = РезультатЗапроса.Выбрать();
|
||||
Пока Выборка.Следующий() Цикл
|
||||
МассивНаблюдателей.Добавить(Выборка.Пользователь);
|
||||
КонецЦикла;
|
||||
Конецесли;
|
||||
|
||||
Для каждого СтрокаНаблюдатели из Статус.Наблюдатели цикл
|
||||
Если МассивНаблюдателей.Найти(СтрокаНаблюдатели.Пользователь) <> Неопределено Тогда
|
||||
Продолжить;
|
||||
Конецесли;
|
||||
|
||||
//+ #190 SZ 16.03.2020
|
||||
//Если СтрокаНаблюдатели.Пользователь = Пользователи.ТекущийПользователь() Тогда
|
||||
// Продолжить;
|
||||
//Конецесли;
|
||||
Если СтрокаНаблюдатели.Пользователь = ТекущийПользователь
|
||||
И НЕ СтрокаНаблюдатели.Пользователь.узОтправлятьУведомленияОДействияхПользователяЕмуНаПочту Тогда
|
||||
Продолжить;
|
||||
Конецесли;
|
||||
//- #190 SZ 16.03.2020
|
||||
|
||||
//Павлюков - отсеем ненужных наблюдателей, у которых явно задано, за кем наблюдать
|
||||
Если Не СтрокаНаблюдатели.Контрагент.Пустая()
|
||||
И Не пЗадача.Контрагент.Пустая()
|
||||
И Не СтрокаНаблюдатели.Контрагент = пЗадача.Контрагент Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
МассивНаблюдателей.Добавить(СтрокаНаблюдатели.Пользователь);
|
||||
Конеццикла;
|
||||
|
||||
пНаблюдателиЗаОснЗадачей = пЗадача.ОсновнаяЗадача.НаблюдателиЗаОсновнойЗадачей;
|
||||
Для каждого СтрокапНаблюдателиЗаОснЗадачей из пНаблюдателиЗаОснЗадачей цикл
|
||||
пНаблюдатель = СтрокапНаблюдателиЗаОснЗадачей.Пользователь;
|
||||
Если МассивНаблюдателей.Найти(пНаблюдатель) <> Неопределено Тогда
|
||||
Продолжить;
|
||||
Конецесли;
|
||||
//+ #190 SZ 16.03.2020
|
||||
//Если пНаблюдатель = Пользователи.ТекущийПользователь() Тогда
|
||||
// Продолжить;
|
||||
//Конецесли;
|
||||
Если пНаблюдатель = ТекущийПользователь
|
||||
И НЕ пНаблюдатель.узОтправлятьУведомленияОДействияхПользователяЕмуНаПочту Тогда
|
||||
Продолжить;
|
||||
Конецесли;
|
||||
//- #190 SZ 16.03.2020
|
||||
|
||||
МассивНаблюдателей.Добавить(пНаблюдатель);
|
||||
Конеццикла;
|
||||
|
||||
Возврат МассивНаблюдателей;
|
||||
////+ #190 SZ 16.03.2020
|
||||
//// Убираем из запроса проверку на Текущего пользователя.
|
||||
//// Проверку сделаем в обработке результата запроса
|
||||
////
|
||||
//// | И узНаблюдателиЗаЗадачами.Пользователь <> &ТекущийПользователь
|
||||
////
|
||||
////- #190 SZ 16.03.2020
|
||||
//
|
||||
//
|
||||
//ТекущийПользователь = Пользователи.ТекущийПользователь();
|
||||
////+ #190 SZ 16.03.2020
|
||||
//// Убираем из запроса проверку на Текущего пользователя.
|
||||
////
|
||||
////Запрос.УстановитьПараметр("ТекущийПользователь", ТекущийПользователь);
|
||||
////
|
||||
//// Проверку сделаем в обработке результата запроса
|
||||
////- #190 SZ 16.03.2020
|
||||
//
|
||||
//Запрос.УстановитьПараметр("Исполнитель", Исполнитель);
|
||||
//Запрос.УстановитьПараметр("Задача", пЗадача);
|
||||
//
|
||||
//РезультатЗапроса = Запрос.Выполнить();
|
||||
//Если НЕ РезультатЗапроса.Пустой() Тогда
|
||||
// Выборка = РезультатЗапроса.Выбрать();
|
||||
// Пока Выборка.Следующий() Цикл
|
||||
// МассивНаблюдателей.Добавить(Выборка.Пользователь);
|
||||
// КонецЦикла;
|
||||
//Конецесли;
|
||||
//
|
||||
//Для каждого СтрокаНаблюдатели из Статус.Наблюдатели цикл
|
||||
// Если МассивНаблюдателей.Найти(СтрокаНаблюдатели.Пользователь) <> Неопределено Тогда
|
||||
// Продолжить;
|
||||
// Конецесли;
|
||||
//
|
||||
// //+ #190 SZ 16.03.2020
|
||||
// //Если СтрокаНаблюдатели.Пользователь = Пользователи.ТекущийПользователь() Тогда
|
||||
// // Продолжить;
|
||||
// //Конецесли;
|
||||
// Если СтрокаНаблюдатели.Пользователь = ТекущийПользователь
|
||||
// И НЕ СтрокаНаблюдатели.Пользователь.узОтправлятьУведомленияОДействияхПользователяЕмуНаПочту Тогда
|
||||
// Продолжить;
|
||||
// Конецесли;
|
||||
// //- #190 SZ 16.03.2020
|
||||
//
|
||||
// //Павлюков - отсеем ненужных наблюдателей, у которых явно задано, за кем наблюдать
|
||||
// Если Не СтрокаНаблюдатели.Контрагент.Пустая()
|
||||
// И Не пЗадача.Контрагент.Пустая()
|
||||
// И Не СтрокаНаблюдатели.Контрагент = пЗадача.Контрагент Тогда
|
||||
// Продолжить;
|
||||
// КонецЕсли;
|
||||
// МассивНаблюдателей.Добавить(СтрокаНаблюдатели.Пользователь);
|
||||
//Конеццикла;
|
||||
//
|
||||
//пНаблюдателиЗаОснЗадачей = пЗадача.ОсновнаяЗадача.НаблюдателиЗаОсновнойЗадачей;
|
||||
//Для каждого СтрокапНаблюдателиЗаОснЗадачей из пНаблюдателиЗаОснЗадачей цикл
|
||||
// пНаблюдатель = СтрокапНаблюдателиЗаОснЗадачей.Пользователь;
|
||||
// Если МассивНаблюдателей.Найти(пНаблюдатель) <> Неопределено Тогда
|
||||
// Продолжить;
|
||||
// Конецесли;
|
||||
// //+ #190 SZ 16.03.2020
|
||||
// //Если пНаблюдатель = Пользователи.ТекущийПользователь() Тогда
|
||||
// // Продолжить;
|
||||
// //Конецесли;
|
||||
// Если пНаблюдатель = ТекущийПользователь
|
||||
// И НЕ пНаблюдатель.узОтправлятьУведомленияОДействияхПользователяЕмуНаПочту Тогда
|
||||
// Продолжить;
|
||||
// Конецесли;
|
||||
// //- #190 SZ 16.03.2020
|
||||
//
|
||||
// МассивНаблюдателей.Добавить(пНаблюдатель);
|
||||
//Конеццикла;
|
||||
//
|
||||
//Возврат МассивНаблюдателей;
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьТемаПисьмаСобытие(ДопПараметры,СобытияВИстории)
|
||||
|
@ -298,6 +298,22 @@
|
||||
<Comment/>
|
||||
</Properties>
|
||||
</EnumValue>
|
||||
<EnumValue uuid="5a3fab7e-5452-4a8e-8b30-9d531fa9839b">
|
||||
<Properties>
|
||||
<Name>ИзмененВопрос</Name>
|
||||
<Synonym>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Изменен вопрос</v8:content>
|
||||
</v8:item>
|
||||
<v8:item>
|
||||
<v8:lang>en</v8:lang>
|
||||
<v8:content>Add question</v8:content>
|
||||
</v8:item>
|
||||
</Synonym>
|
||||
<Comment/>
|
||||
</Properties>
|
||||
</EnumValue>
|
||||
</ChildObjects>
|
||||
</Enum>
|
||||
</MetaDataObject>
|
@ -133,11 +133,13 @@
|
||||
ВидыСобытий_ДобавленВопрос = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ДобавленВопрос");
|
||||
ВидыСобытий_ЗакрытВопрос = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ЗакрытВопрос");
|
||||
ВидыСобытий_ИзмененОтвет = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ИзмененОтвет");
|
||||
ВидыСобытий_ИзмененВопрос = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ИзмененВопрос");
|
||||
|
||||
МассивВидовСобытияДляРегистрацииАктивности = Новый Массив();
|
||||
МассивВидовСобытияДляРегистрацииАктивности.Добавить(ВидыСобытий_ДобавленВопрос);
|
||||
МассивВидовСобытияДляРегистрацииАктивности.Добавить(ВидыСобытий_ЗакрытВопрос);
|
||||
МассивВидовСобытияДляРегистрацииАктивности.Добавить(ВидыСобытий_ИзмененОтвет);
|
||||
МассивВидовСобытияДляРегистрацииАктивности.Добавить(ВидыСобытий_ИзмененВопрос);
|
||||
|
||||
Для каждого СтрокаТЗСобытия из ТЗСобытия цикл
|
||||
пВидСобытия = СтрокаТЗСобытия.ВидСобытия;
|
||||
|
@ -69,4 +69,72 @@
|
||||
|
||||
Функция ЕстьЛиСлежениеЗаЗадачейУТекущегоПользователя(Задача) Экспорт
|
||||
Возврат ЕстьЛиСлежениеЗаЗадачейУПользователя(Задача, Пользователи.ТекущийПользователь());
|
||||
КонецФункции
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьМассивНаблюдателей(Задача) Экспорт
|
||||
|
||||
МассивНаблюдателей = Новый Массив();
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст =
|
||||
"ВЫБРАТЬ
|
||||
| узНаблюдателиЗаЗадачами.Пользователь
|
||||
|ИЗ
|
||||
| РегистрСведений.узНаблюдателиЗаЗадачами КАК узНаблюдателиЗаЗадачами
|
||||
|ГДЕ
|
||||
| узНаблюдателиЗаЗадачами.Задача = &Задача
|
||||
| И узНаблюдателиЗаЗадачами.Пользователь.узНеОтправлятьУведомленияНаПочту = ЛОЖЬ
|
||||
| И узНаблюдателиЗаЗадачами.Пользователь <> &Исполнитель";
|
||||
|
||||
|
||||
ТекущийПользователь = Пользователи.ТекущийПользователь();
|
||||
|
||||
Запрос.УстановитьПараметр("Исполнитель", Задача.Исполнитель);
|
||||
Запрос.УстановитьПараметр("Задача", Задача);
|
||||
|
||||
РезультатЗапроса = Запрос.Выполнить();
|
||||
Если НЕ РезультатЗапроса.Пустой() Тогда
|
||||
Выборка = РезультатЗапроса.Выбрать();
|
||||
Пока Выборка.Следующий() Цикл
|
||||
МассивНаблюдателей.Добавить(Выборка.Пользователь);
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
ТЧСтатусНаблюдатели = Задача.Статус.Наблюдатели;
|
||||
|
||||
Для каждого СтрокаНаблюдатели из ТЧСтатусНаблюдатели цикл
|
||||
Если МассивНаблюдателей.Найти(СтрокаНаблюдатели.Пользователь) <> Неопределено Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Если СтрокаНаблюдатели.Пользователь = ТекущийПользователь
|
||||
И НЕ СтрокаНаблюдатели.Пользователь.узОтправлятьУведомленияОДействияхПользователяЕмуНаПочту Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Если НЕ СтрокаНаблюдатели.Контрагент.Пустая()
|
||||
И НЕ Задача.Контрагент.Пустая()
|
||||
И НЕ СтрокаНаблюдатели.Контрагент = Задача.Контрагент Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
МассивНаблюдателей.Добавить(СтрокаНаблюдатели.Пользователь);
|
||||
КонецЦикла;
|
||||
|
||||
пНаблюдателиЗаОснЗадачей = Задача.ОсновнаяЗадача.НаблюдателиЗаОсновнойЗадачей;
|
||||
Для каждого СтрокапНаблюдателиЗаОснЗадачей из пНаблюдателиЗаОснЗадачей цикл
|
||||
пНаблюдатель = СтрокапНаблюдателиЗаОснЗадачей.Пользователь;
|
||||
Если МассивНаблюдателей.Найти(пНаблюдатель) <> Неопределено Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Если пНаблюдатель = ТекущийПользователь
|
||||
И НЕ пНаблюдатель.узОтправлятьУведомленияОДействияхПользователяЕмуНаПочту Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
МассивНаблюдателей.Добавить(пНаблюдатель);
|
||||
КонецЦикла;
|
||||
|
||||
Возврат МассивНаблюдателей;
|
||||
|
||||
КонецФункции
|
Loading…
x
Reference in New Issue
Block a user