Имя: Пароль:
1C
1С v8
Программно запустить процесс внутреннего документа Документооборот КОРП
0 skupidom
 
07.03.19
08:19
Коллеги, при записи процесса ошибка и процесс не стартует, в чем ошибки?
НовыйУведомлениеОбОтпуске = Справочники.ВнутренниеДокументы.СоздатьЭлемент();
            НовыйУведомлениеОбОтпуске.ВидДокумента = Справочники.ВидыВнутреннихДокументов.НайтиПоНаименованию("Уведомление об отпуске");
            
            ШаблонУведомленияОбОтпуске                 = Справочники.ШаблоныВнутреннихДокументов.НайтиПоНаименованию("Уведомление об отпуске");
            НовыйУведомлениеОбОтпуске.Шаблон         = ШаблонУведомленияОбОтпуске;
            НовыйУведомлениеОбОтпуске.Ответственный = СотрудникКадров;
            //НовыйУведомлениеОбОтпуске.Подготовил    = СотрудникКадров;
            НовыйУведомлениеОбОтпуске.Утвердил         = СотрудникКадров;
            НовыйУведомлениеОбОтпуске.Подразделение = ПодразделениеКадры;
                              
            //ШаблонУведомленияОбОтпуске.Адресат        = ВыборкаОтсутствия.Сотрудник;
            
            ПравоРегистрировать = Истина;
            
            ФИОСотрудник = РазложитьСтрокуВМассивПодстрок(СОКРЛП(Строка(ВыборкаОтсутствия.Сотрудник)));
                                
            НовыйУведомлениеОбОтпуске.Содержание = СодержаниеДок;
            
            // зарегистрируем документ
            //Нумератор = Нумерация.ПолучитьНумераторДокумента(НовыйУведомлениеОбОтпуске);
                
            НовыйУведомлениеОбОтпуске.ДатаРегистрации = ТекущаяДата();
            НовыйУведомлениеОбОтпуске.ДатаСоздания  = ТекущаяДата();
            
            НовыйУведомлениеОбОтпуске.Создал        = СотрудникКадров;
            
            // даты отпуска
            НовыйУведомлениеОбОтпуске.барк_ДатаНачалаОтпуска     = ВыборкаОтсутствия.ДатаНачала;
            НовыйУведомлениеОбОтпуске.барк_ДатаОкончанияОтпуска  = ВыборкаОтсутствия.ДатаОкончания;
            
                                     
            НовыйУведомлениеОбОтпуске.Записать();
        
        // Запустим БП              
        БПНовыйУведомлениеОбОтпуске = БизнесПроцессы.КомплексныйПроцесс.СоздатьБизнесПроцесс();
        БПНовыйУведомлениеОбОтпуске.Автор = СотрудникКадров;
        БПНовыйУведомлениеОбОтпуске.Важность = Перечисления.ВариантыВажностиЗадачи.Обычная;
        
        ШаблонКомплексный = Справочники.ШаблоныКомплексныхБизнесПроцессов.НайтиПоНаименованию("Уведомление об отпуске");
        
        БПНовыйУведомлениеОбОтпуске.Шаблон         = ШаблонКомплексный;
        БПНовыйУведомлениеОбОтпуске.ДатаНачала  = ТекущаяДата();
        БПНовыйУведомлениеОбОтпуске.Дата = ТекущаяДатаСеанса();
        БПНовыйУведомлениеОбОтпуске.Наименование = "Обработка документа "+(НовыйУведомлениеОбОтпуске.ссылка)+" ТЕСТ";
        БПНовыйУведомлениеОбОтпуске.Описание = "Обработка документа "+(НовыйУведомлениеОбОтпуске.ссылка)+" ТЕСТ";
        БПНовыйУведомлениеОбОтпуске.Состояние = Перечисления.СостоянияБизнесПроцессов.Активен;
        БПНовыйУведомлениеОбОтпуске.ВариантМаршрутизации = ПредопределенноеЗначение("Перечисление.ВариантыМаршрутизацииЗадач.Последовательно");
        БПНовыйУведомлениеОбОтпуске.СрокИсполненияПроцесса = ТекущаяДата() + 60*60*24;
        
        //Мультипредметность.ПередатьПредметыПроцессу(БПНовыйУведомлениеОбОтпуске,НовыйУведомлениеОбОтпуске.Ссылка,Ложь,Истина);
        
        // тч Предмет
        НоваяСтрПредметы                                           = БПНовыйУведомлениеОбОтпуске.Предметы.Добавить();
        НоваяСтрПредметы.ИмяПредмета                               = Справочники.ИменаПредметов.НайтиПоНаименованию("Уведомление об отпуске");
        НоваяСтрПредметы.Предмет                                 = НовыйУведомлениеОбОтпуске.Ссылка;
        
        // тч Этапы
        НоваяСтрЭтапы                                               = БПНовыйУведомлениеОбОтпуске.Этапы.Добавить();
        НоваяСтрЭтапы.БезусловныйПереходКСледующемуБылВыполнен  = Ложь;              
        НоваяСтрЭтапы.ЗадачаВыполнена                              = Ложь;
        
        
        БПНовыйУведомлениеОбОтпуске.Записать();            
        
        НоваяСтрЭтапы.ЗадачаВыполнена              = Ложь;
        НоваяСтрЭтапы.ЗапущенныйБизнесПроцесс     = БПНовыйУведомлениеОбОтпуске.Ссылка;
        НоваяСтрЭтапы.ИсполнителиЭтапаСтрокой     = "Уведомление об отпуске.Автор документа, Отдел кадров";
        НоваяСтрЭтапы.ПорядокСортировки                   = 1;
        НоваяСтрЭтапы.ПредшественникиВариантИспользования = "ВсеПредшественники";
        НоваяСтрЭтапы.ПредшественникиЭтапаСтрокой = "При старте процесса";
        НоваяСтрЭтапы.ШаблонБизнесПроцесса = Справочники.ШаблоныОзнакомления.НайтиПоКоду("00-00000000000000000000000000000000000000000013322");
        
        НоваяСтрЭтапы                                               = БПНовыйУведомлениеОбОтпуске.Этапы.Добавить();
        НоваяСтрЭтапы.БезусловныйПереходКСледующемуБылВыполнен  = Ложь;              
        НоваяСтрЭтапы.ЗадачаВыполнена                              = Ложь;
        НоваяСтрЭтапы.ЗапущенныйБизнесПроцесс                    = БПНовыйУведомлениеОбОтпуске.Ссылка;
        НоваяСтрЭтапы.ИсполнителиЭтапаСтрокой                     = "Уведомление об отпуске.Непосредственный руководитель автора документа, Уведомление об отпуске.Руководитель департамента";
        НоваяСтрЭтапы.ПорядокСортировки                           = 2;
        НоваяСтрЭтапы.ПредшественникиВариантИспользования         = "ВсеПредшественники";
        НоваяСтрЭтапы.ПредшественникиЭтапаСтрокой                 = "После завершения 1";
        НоваяСтрЭтапы.ШаблонБизнесПроцесса = Справочники.ШаблоныСогласования.НайтиПоКоду("00-00000000000000000000000000000000000000000013208");
                             
        БПНовыйУведомлениеОбОтпуске.Записать();                
        БПНовыйУведомлениеОбОтпуске.Старт();