В начало

Массовый перевод БП на следующий этап

 

            Есть бизнес-процесс «Парикмахерская». Нужно массово переводить, выделенные элементы из формы списка бизнес-процесса на следующий этап.

            На форме списка размещаем кнопку.

Рис. Форма списка бизнес-процесса «Парикмахерская»

 

            Далее размещаем обработчики в модуле формы бизнес-процесса.

 

Листинг. Модуль формы бизнес-процесса «Парикмахерская»

&НаСервере

Процедура ВыполнитьЗадачуБП(вхБП)

            Запрос = Новый Запрос;

            Запрос.Текст =

                        "ВЫБРАТЬ

                        |          ЗадачаИсполнителя.Ссылка КАК Ссылка

                        |ИЗ

                        |          Задача.ЗадачаИсполнителя КАК ЗадачаИсполнителя

                        |ГДЕ

                        |          ЗадачаИсполнителя.БизнесПроцесс = &БизнесПроцесс

                        |          И ЗадачаИсполнителя.Выполнена = ЛОЖЬ";

           

            Запрос.УстановитьПараметр("БизнесПроцесс", вхБП);

            Результат = Запрос.Выполнить();

            Выборка = Результат.Выбрать();

           

            Если Выборка.Следующий() Тогда

                        //Выполняем невыполненную задачу

                        ОбЗад = Выборка.Ссылка.ПолучитьОбъект();

                        ОбЗад.ВыполнитьЗадачу();

            КонецЕсли;

           

КонецПроцедуры

 

&НаСервере

Процедура ПерейтиНаСледующийЭтапНаСервере(знач вхМассивСтрок)

            Для Каждого Эл Из вхМассивСтрок Цикл

                        ВыполнитьЗадачуБП(Эл.Ссылка)

            КонецЦикла;

КонецПроцедуры

 

 

&НаКлиенте

Процедура ПерейтиНаСледующийЭтап(Команда)

            ПерейтиНаСледующийЭтапНаСервере(Элементы.Список.ВыделенныеСтроки);

КонецПроцедуры

 

Рис. Выделяем 9 и 10 бизнес-процессы

 

 

Рис. Стадии бизнес-процессов перед автоматическим переводом на следующий этап
(9-й БП находится на стадии «Оплата», а 10-й на задаче «Полубокс»)

 

            Протестируем в пользовательском режиме. После нажатия кнопки «ПерейтиНаСледующийЭтап» 9-й бизнес-процесс завершиться, а 10-й перейдет к задаче «Оплата».

            Таким образом, можно массово перевести бизнес-процессы на следующий этап.