|
Документооборот 2.1. Нужны идеи по реализации | ☑ | ||
|---|---|---|---|---|
|
0
Mulber
15.07.26
✎
15:41
|
Доброго дня всем. Есть постановка:
Настроить автоматическую регистрацию договоров после подписания и автоматическое заполнение номера в вордовском документе. Убрать лишние шаги "Ознакомился", "Исполнено", "Зарегистрировать". С первой частью бодался с помощью детектора. Что-то вроде: Подробностикод детектора: Результат = Ложь; Запрос = Новый Запрос(); Запрос.Текст = "ВЫБРАТЬ | ВнутренниеДокументы.Ссылка КАК Ссылка |ИЗ | Справочник.ВнутренниеДокументы КАК ВнутренниеДокументы |ГДЕ | НЕ ВнутренниеДокументы.ПометкаУдаления | И ВнутренниеДокументы.ВидДокумента.Родитель В ИЕРАРХИИ (&ВидДокумента) | И ВнутренниеДокументы.РегистрационныйНомер = """" | И ВнутренниеДокументы.РезультатПодписания = &РезультатПодписания"; Запрос.УстановитьПараметр("ВидДокумента", Справочники.ВидыВнутреннихДокументов.НайтиПоНаименованию("Договоры")); Запрос.УстановитьПараметр("РезультатПодписания", Перечисления.РезультатыПодписания.Подписан); РезультатЗапроса = Запрос.Выполнить().Выбрать(); Если РезультатЗапроса.Следующий() Тогда ПараметрыВозврата.Вставить("Источник", РезультатЗапроса.Ссылка); Результат = Истина; КонецЕсли; дополнительный обработчик бизнес-события: Попытка Ур = УровеньЖурналаРегистрации.Информация; // Событие - строка из РгС ПроизошедшиеБизнесСобытия ИмяСобытия = ""; Документ = Событие.Источник; ЮИБ_ОбщегоНазначенияСервер.АвтоматическаяРегистрацияДоговора(Документ); Исключение Ур = УровеньЖурналаРегистрации.Ошибка; Инфо = СокрЛП(ОписаниеОшибки()); ЗаписьЖурналаРегистрации("Договоры", Ур, , Документ, Инфо); КонецПопытки; процедура авторегистрации: Процедура АвтоматическаяРегистрацияДоговора(Документ) Экспорт УстановитьПривилегированныйРежим(Истина); // Проверим, что документ еще не зарегистрирован. Если ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Документ, "РегистрационныйНомер") <> "" Тогда Возврат; КонецЕсли; СообщениеОбОшибке = ""; Если Делопроизводство.ЗарегистрироватьПредмет(Документ, СообщениеОбОшибке) Тогда Делопроизводство.ЗаписатьСостояниеДокумента( Документ, ТекущаяДатаСеанса(), Перечисления.СостоянияДокументов.Зарегистрирован, ПользователиКлиентСервер.ТекущийПользователь()); КонецЕсли; УстановитьПривилегированныйРежим(Ложь); КонецПроцедуры а вот что делать с: Убрать лишние шаги "Ознакомился", "Исполнено", "Зарегистрировать"? причем для конкретного пользователя, желательно Правила эскалации настраивать для сотен шаблонов - ну такое себе. Маршрутов тоже много. Может есть простое решение, чтобы у определенного пользователя эти задачи автоматом завершались? Ну и: >>автоматическое заполнение номера в вордовском документе. |
|||
|
1
YFedor
15.07.26
✎
15:45
|
Отследить детектором появление задачи - автоматически исполнить
|
|||
|
2
maxab72
15.07.26
✎
18:16
|
Делал нечто подобное через расширение. В нем создал бизнес-процесс копию Регистрации, убрал из него лишние шаги и перед запуском по условию подменял маршрут типового своим.
|
|||
|
3
Mulber
16.07.26
✎
12:24
|
(1) как-то так?
ПодробностиРезультат = Ложь; Запрос = Новый Запрос(); Запрос.Текст = "ВЫБРАТЬ | ЗадачаИсполнителя.Ссылка КАК Ссылка |ИЗ | Задача.ЗадачаИсполнителя КАК ЗадачаИсполнителя |ГДЕ | ЗадачаИсполнителя.Исполнитель = &Исполнитель | И НЕ ЗадачаИсполнителя.Выполнена | И ЗадачаИсполнителя.СостояниеБизнесПроцесса = ЗНАЧЕНИЕ(Перечисление.СостоянияБизнесПроцессов.Активен) | И (ЗадачаИсполнителя.ТочкаМаршрута = ЗНАЧЕНИЕ(БизнесПроцесс.Ознакомление.ТочкаМаршрута.Ознакомиться) | ИЛИ ЗадачаИсполнителя.ТочкаМаршрута = ЗНАЧЕНИЕ(БизнесПроцесс.Согласование.ТочкаМаршрута.Ознакомиться) | ИЛИ ЗадачаИсполнителя.ТочкаМаршрута = ЗНАЧЕНИЕ(БизнесПроцесс.Регистрация.ТочкаМаршрута.Ознакомиться) | ИЛИ ЗадачаИсполнителя.ТочкаМаршрута = ЗНАЧЕНИЕ(БизнесПроцесс.Утверждение.ТочкаМаршрута.Ознакомиться) | ИЛИ ЗадачаИсполнителя.ТочкаМаршрута = ЗНАЧЕНИЕ(БизнесПроцесс.Исполнение.ТочкаМаршрута.Исполнить) | ИЛИ ЗадачаИсполнителя.ТочкаМаршрута = ЗНАЧЕНИЕ(БизнесПроцесс.Исполнение.ТочкаМаршрута.ОтветственноеИсполнение))"; Запрос.УстановитьПараметр("Исполнитель", Справочники.Пользователи.НайтиПоРеквизиту("ЮИБ_ТабельныйНомер", "01001")); РезультатЗапроса = Запрос.Выполнить().Выбрать(); Если РезультатЗапроса.Следующий() Тогда ПараметрыВозврата.Вставить("Источник", РезультатЗапроса.Ссылка); Результат = Истина; КонецЕсли; ПодробностиПроцедура АвтоматическоеВыполнениеЗадач(Документ) Экспорт ЗадачаОбъект = Документ.ПолучитьОбъект(); ЗадачаОбъект.ВыполнитьЗадачу(); КонецПроцедуры |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |