Допустим, человек уходит в отпуск или болеет. Его текущие задачи висят на нем же, бизнес-процессы ждут. Мною не был найдена настройка (галочка какая-нибудь или список), позволяющая все его текущие невыполненные задачи переадресовать автоматически на другого человека, который его замещает. Найдя на ИТС нужный метод, по-быстрому сделал простенькую обработку.
Создайте допреквизиты у пользователя: у одного укажите имя для разработчиков "ПереадресацияНаПользователяДо" с типом Дата (Дата и время), у второго "ПереадресацияНаПользователя" с типом значения Пользователь. Заполните в допреквизитах в справочнике Пользователи человека, на которого идет переадресация и обязательно до какой даты.
Процедура ПереадресоватьЗадачиПоДопреквизиту()
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ПользователиДополнительныеРеквизиты.Ссылка КАК ПереадресацияОтКого,
| ПользователиДополнительныеРеквизиты.Значение КАК ПереадресацияНаКого,
| ПользователиДополнительныеРеквизиты1.Значение КАК ПереадресацияНаПользователяДо
|ИЗ
| Справочник.Пользователи.ДополнительныеРеквизиты КАК ПользователиДополнительныеРеквизиты
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Пользователи.ДополнительныеРеквизиты КАК ПользователиДополнительныеРеквизиты1
| ПО ПользователиДополнительныеРеквизиты.Ссылка = ПользователиДополнительныеРеквизиты1.Ссылка
|ГДЕ
| ПользователиДополнительныеРеквизиты.Свойство.Имя = ""ПереадресацияНаПользователя""
| И ПользователиДополнительныеРеквизиты1.Свойство.Имя = ""ПереадресацияНаПользователяДо""";
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
ПереадресацияОтКого = Выборка.ПереадресацияОтКого;
ПереадресацияНаКого = Выборка.ПереадресацияНаКого;
ПереадресацияНаПользователяДо = Выборка.ПереадресацияНаПользователяДо;
Если ПереадресацияНаПользователяДо > ТекущаяДата() Тогда
ИнфоОПеренаправлении = Новый Структура;
ИнфоОПеренаправлении.Вставить("Исполнитель", ПереадресацияНаКого);
ИнфоОПеренаправлении.Вставить("Комментарий", "");
ИнфоОПеренаправлении.Вставить("РольИсполнителя", Неопределено);
Запрос1 = Новый Запрос;
Запрос1.Текст = "ВЫБРАТЬ
| ЗадачаИсполнителя.Ссылка КАК Ссылка
|ИЗ
| Задача.ЗадачаИсполнителя КАК ЗадачаИсполнителя
|ГДЕ
| ЗадачаИсполнителя.Исполнитель = &Исполнитель
| И ЗадачаИсполнителя.СостояниеБизнесПроцесса = ЗНАЧЕНИЕ(Перечисление.СостоянияБизнесПроцессов.Активен)
| И ЗадачаИсполнителя.Выполнена = ЛОЖЬ";
Запрос1.УстановитьПараметр("Исполнитель", ПереадресацияОтКого);
Выборка1 = Запрос1.Выполнить().Выбрать();
Пока Выборка1.Следующий() Цикл
Задача = Выборка1.Ссылка;
Попытка
Результат = БизнесПроцессыИЗадачиСервер.ПеренаправитьЗадачу(Задача, ИнфоОПеренаправлении);
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Этот код можете вручную отработать, можете в регламентное задание вставить.
Обязательно тестируйте вначале на копии базы.
Тестировал на платформе 1С 8.3.15.1869 и Документооборот 8 КОРП, редакция 2.1 (2.1.14.4)
Если будет конструктивная критика - заранее спасибо.
UPDATE: В комментариях рассказали про эскалацию задач (которая у нас вообще была выключена) и про делегирование прав (когда задачи одного человека видны у другого человека). Мой способ работает несколько по-другому. И про эти способы я не знал :)
Если бы искал слово "перепоручают ", то нашел бы на ИТС - "Когда сотрудник уезжает в отпуск или уходит на больничный, его обязанности и задачи перепоручают замещающему."
https://its.1c.ru/db/doccorp21#content:791:1:issogl1_25.8_%D0%B4%D0%B5%D0%BB%D0%B5%D0%B3%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BF%D1%80%D0%B0%D0%B2