Ниже инструкция, как настроить автоматическую регистрацию документа после первого согласования.
Для этого нужно создать доп.обработчик:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
//Список = Новый СписокЗначений; //Список.Добавить("Служебная записка (Руководитель)"); //Список.Добавить("Служебная записка (Руководитель -> Коммерческий директор)"); //Список.Добавить("Заявка на оплату"); // Поиск объекта Задача = Событие.Источник; Выполнять = Ложь; Если ТипЗнч(Задача.БизнесПроцесс) = Тип("БизнесПроцессСсылка.Согласование") Тогда Если (Задача.БизнесПроцесс.РезультатСогласования = Перечисления.РезультатыСогласования.Согласовано) или (Задача.БизнесПроцесс.РезультатСогласования = Перечисления.РезультатыСогласования.СогласованоСЗамечаниями) Тогда Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Предметы.РольПредмета, | Предметы.Предмет |ИЗ | Задача.ЗадачаИсполнителя.Предметы КАК Предметы |ГДЕ | Предметы.Ссылка = &ЗадачаСсылка"; Запрос.УстановитьПараметр("ЗадачаСсылка",Задача); Результат = Запрос.Выполнить(); Если Не Результат.Пустой() Тогда Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Объект = Выборка.Предмет.ПолучитьОбъект(); Выполнять = Истина; Прервать; //Если НЕ Список.НайтиПоЗначению(СокрЛП(Объект.ВидДокумента)) = Неопределено Тогда // Выполнять = Истина; // Прервать; //КонецЕсли; КонецЦикла; КонецЕсли; КонецЕсли; КонецЕсли; Если Выполнять Тогда // Регистрация Нумератор = Нумерация.ПолучитьНумераторДокумента(Объект); Если ЗначениеЗаполнено(Нумератор) Тогда // автоматическая нумерация ДатаРегистрации = ТекущаяДата(); ТекущийПользователь = Пользователи.ТекущийПользователь(); Объект.ДатаРегистрации = ДатаРегистрации; // сформируем текущий номер СтруктураПараметров = НумерацияКлиентСервер.ПолучитьПараметрыНумерации(Объект); Нумерация.СформироватьЧисловойНомерДокумента(СтруктураПараметров, Объект.ЧисловойНомер); ОписанияОшибок = Новый СписокЗначений; СтруктураПараметров = НумерацияКлиентСервер.ПолучитьПараметрыНумерации(Объект); Нумерация.СформироватьСтроковыйНомерДокумента(СтруктураПараметров, Объект.РегистрационныйНомер, ОписанияОшибок); Объект.Зарегистрировал = ТекущийПользователь; Объект.Записать(); Делопроизводство.ЗаписатьСостояниеДокумента( Объект.Ссылка, ДатаРегистрации, Перечисления.СостоянияДокументов.Зарегистрирован, ТекущийПользователь); КонецЕсли; // автозаполнение файлов Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Файлы.Ссылка |ИЗ | Справочник.Файлы КАК Файлы |ГДЕ | Файлы.ВладелецФайла = &ВладелецФайла | И Файлы.ПометкаУдаления = ЛОЖЬ"; Запрос.УстановитьПараметр("ВладелецФайла", Объект.Ссылка); Результат = Запрос.Выполнить(); Если Не Результат.Пустой() Тогда Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Файло = Выборка.Ссылка; ДанныеВыполнения = АвтозаполнениеШаблоновФайловКлиентСервер.ЗаполнитьПоляФайлаДаннымиВладельца(Истина, Файло, Истина); КонецЦикла; КонецЕсли; КонецЕсли; |
Во второй вкладке, нужно добавить подписку по которой будет срабатывать выполнение кода «Задачи процессов: выполнение».
Проверять отработку кода в e1cib/list/РегистрСведений.ПроизошедшиеБизнесСобытия
Также обратите внимание что выполнение происходит в регламентном задании «Обработка детекторов бизнес-событий»