&НаКлиенте
Процедура СменитьИсполнителя(Команда)
Оповещение
= Новый ОписаниеОповещения("ПослеВыбораИсполнителя", ЭтотОбъект);
ПоказатьВводЗначения(Оповещение, , "Новый
исполнитель", Тип("СправочникСсылка.Пользователи"));
КонецПроцедуры
&НаКлиенте
Процедура ПослеВыбораИсполнителя(Результат,
Параметры) Экспорт
Если
НЕ Результат = Неопределено Тогда
Для
Каждого Эл Из Элементы.Список.ВыделенныеСтроки Цикл
СменитьИсполнителяНаСервере(Эл, Результат);
КонецЦикла;
КонецЕсли;
Элементы.Список.Обновить();
КонецПроцедуры
&НаСервере
Процедура СменитьИсполнителяНаСервере(ЗначСсылкаНаБП, ЗначСсылкаНаИсполнителя)
Запрос
= Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЗадачаИсполнителя.Ссылка
КАК Ссылка,
| ЗадачаИсполнителя.Исполнитель
КАК Исполнитель
|ИЗ
| Задача.ЗадачаИсполнителя
КАК ЗадачаИсполнителя
|ГДЕ
| ЗадачаИсполнителя.Выполнена
= ЛОЖЬ
| И ЗадачаИсполнителя.БизнесПроцесс
= &БизнесПроцесс
| И ЗадачаИсполнителя.БизнесПроцесс.ПометкаУдаления
= ЛОЖЬ
| И ЗадачаИсполнителя.БизнесПроцесс.Завершен
= ЛОЖЬ";
Запрос.УстановитьПараметр("БизнесПроцесс",
СсылкаНаБП);
Результат
= Запрос.Выполнить();
Выборка
= Результат.Выбрать();
//Меняем ИСПОЛНИТЕЛЯ в Задачах
Пока
Выборка.Следующий() Цикл
ОбЗад = Выборка.Ссылка.ПолучитьОбъект();
ОбЗад.Исполнитель = СсылкаНаИсполнителя;
ОбЗад.Записать();
КонецЦикла;
//Меняем ОТВЕТСТВЕННОГО в Бизнес-процессе
Если
НЕ СсылкаНаБП.ПометкаУдаления И
НЕ СсылкаНаБП.Завершен
Тогда
ОбБП = СсылкаНаБП.ПолучитьОбъект();
ОбБП.Ответственный
= СсылкаНаИсполнителя;
ОбБП.Записать();
КонецЕсли;
КонецПроцедуры
|