Имя: Пароль:
1C
 
Документооборот 2.1. Нужны идеи по реализации
0 Mulber
 
15.07.26
15:41
Доброго дня всем. Есть постановка:
Настроить автоматическую регистрацию договоров после подписания и автоматическое заполнение номера в вордовском документе.
Убрать лишние шаги "Ознакомился", "Исполнено", "Зарегистрировать".


С первой частью бодался с помощью детектора. Что-то вроде:
Подробности
код детектора:
Результат = Ложь;

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

Запрос.Текст =
     "ВЫБРАТЬ
     |    ВнутренниеДокументы.Ссылка КАК Ссылка
     |ИЗ
     |    Справочник.ВнутренниеДокументы КАК ВнутренниеДокументы
     |ГДЕ
     |    НЕ ВнутренниеДокументы.ПометкаУдаления
     |    И ВнутренниеДокументы.ВидДокумента.Родитель В ИЕРАРХИИ (&ВидДокумента)
     |    И ВнутренниеДокументы.РегистрационныйНомер = """"
     |    И ВнутренниеДокументы.РезультатПодписания = &РезультатПодписания";
    
Запрос.УстановитьПараметр("ВидДокумента", Справочники.ВидыВнутреннихДокументов.НайтиПоНаименованию("Договоры"));
Запрос.УстановитьПараметр("РезультатПодписания", Перечисления.РезультатыПодписания.Подписан);

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

Если РезультатЗапроса.Следующий() Тогда
     ПараметрыВозврата.Вставить("Источник", РезультатЗапроса.Ссылка);
     Результат = Истина;
КонецЕсли;

дополнительный обработчик бизнес-события:
Попытка
    
    Ур = УровеньЖурналаРегистрации.Информация;
    
    // Событие - строка из РгС ПроизошедшиеБизнесСобытия
    ИмяСобытия = "";

    Документ = Событие.Источник;

    ЮИБ_ОбщегоНазначенияСервер.АвтоматическаяРегистрацияДоговора(Документ);
    
Исключение

    Ур = УровеньЖурналаРегистрации.Ошибка;
    Инфо = СокрЛП(ОписаниеОшибки());
    ЗаписьЖурналаРегистрации("Договоры", Ур, , Документ, Инфо);

КонецПопытки;

процедура авторегистрации:
Процедура АвтоматическаяРегистрацияДоговора(Документ) Экспорт
    
    УстановитьПривилегированныйРежим(Истина);
    
    // Проверим, что документ еще не зарегистрирован.
    Если ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Документ, "РегистрационныйНомер") <> "" Тогда
        Возврат;
    КонецЕсли;

    СообщениеОбОшибке = "";
    
    Если Делопроизводство.ЗарегистрироватьПредмет(Документ, СообщениеОбОшибке) Тогда
        Делопроизводство.ЗаписатьСостояниеДокумента(
            Документ,
            ТекущаяДатаСеанса(),
            Перечисления.СостоянияДокументов.Зарегистрирован,
            ПользователиКлиентСервер.ТекущийПользователь());
    КонецЕсли;
        
    УстановитьПривилегированныйРежим(Ложь);        
    
КонецПроцедуры


а вот что делать с: Убрать лишние шаги "Ознакомился", "Исполнено", "Зарегистрировать"? причем для конкретного пользователя, желательно

Правила эскалации настраивать для сотен шаблонов - ну такое себе. Маршрутов тоже много. Может есть простое решение, чтобы у определенного пользователя эти задачи автоматом завершались?

Ну и: >>автоматическое заполнение номера в вордовском документе.
1 YFedor
 
15.07.26
15:45
Отследить детектором появление задачи - автоматически исполнить