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