Предположим, что в типовом маршруте требуется обеспечить аннулирование документа с последующим отражением этой информации в учетной системе. Выполните действия:
1. | Добавьте параметры типового маршрута: |
• | RevokedDoc типа «Электронный документ» для указания аннулируемого документа; |
• | RevokeLifeStage типа «Строка» для изменения стадии жизненного цикла аннулируемого документа на соответствующую, например, Аннулирован. В свойстве сохраняется имя стадии ЖЦ; |
• | RevokeAbort типа «Логическое значение», где указывается необходимость программного прекращения задач по аннулированию документа; |
• | RevokeSendList типа «Список пользователей» для указания пользователей, которым придет уведомление об аннулировании документа. |
2. | В событии типового маршрута «Возможность старта» программно определите параметр RevokedDoc, укажите для него аннулируемый документ. |
Пример определения аннулируемого документа:
RevokeAgreementDoc : IEDocument.DISIAgreementOfRevocation = NULL
foreach Record in IncomingMessageDS
Document = EDocuments.GetObjectByID(Record.DocT)
// Найти первый документ в списке.
DocName = IfThen(DocName == ''; Document.Name; DocName)
DocInfo = Document.Info
if DocInfo.CardType.Code == 'DISIAgreementOfRevocation'
RevokeAgreementDoc = Document
exitfor
endif
endforeach
if not VarIsNull(RevokeAgreementDoc)
RevokeID = RevokeAgreementDoc.IntegerNum2
RevokedDocInfo = EDocuments.ObjectInfo(RevokeID)
Params.ValueByName('RevokedDoc').Value = RevokedDocInfo
Endif
3. | В группе «Управление деловыми процессами» выберите блок типа «Расширенное задание» и добавьте его на схему. Для добавленного блока: |
• | при необходимости в свойствах блока заполните Результаты выполнения задания по аннулированию документа, например, Принято (документ требуется аннулировать) или Отказано; |
• | в событии «После запроса параметров» добавьте вычисления для нужного варианта выполнения задания, который предполагает аннулирование документа: |
// Проверить, что требуемые документы подписаны
DISICheckIncomingDocuments(Object; 'P'; MessageInfo)
// Запросить параметры аннулирования
DISIAskRevocationParam()
4. | Последовательно добавьте блоки «Уведомление», «Аннулирование» и «Задание для синхронизации с учетной системой». |
5. | Для блока «Уведомление»: |
• | в свойстве Исполнитель укажите тип значения Параметр и значение Список рассылки по аннулируемому документу; |
• | в событии типового маршрута «Старт» добавьте код для формирования темы уведомления: |
RevokedDoc : IEDocumentInfo =
Object.WorkflowParams.ValueByName('RevokedDoc').Value
if not VarIsNull(RevokedDoc)
SubjectProperty =
Sender.Properties.ValueByName(NOTICE_BLOCK_SUBJECT_PROPERTY)
SubjectProperty.Value =
LoadStringFmt('DIR27331B4D_63CD_478D_ACDA_E79491CFD602'; 'DISI';
RevokedDoc.Name)
endif
6. | Для блока «Задание для синхронизации с учетной системой»: |
• | укажите в параметре типового маршрута Бухгалтер роль БухгалтерПоПервичнымУчетнымДокументам; |
• | при необходимости скорректируйте срок или список документов на рассмотрение; |
• | в событии типового маршрута «Старт» добавьте код для формирования темы задания: |
RevokedDoc : IEDocumentInfo =
Object.WorkflowParams.ValueByName('RevokedDoc').Value
if not VarIsNull(RevokedDoc)
SubjectProperty =
Sender.Properties.ValueByName(JOB_BLOCK_SUBJECT_PROPERTY)
SubjectProperty.Value =
LoadStringFmt('DIR3C825035_1E28_40D5_A013_8EF4B75520C8'; 'DISI';
RevokedDoc.Name)
endif
После выполнения задания по рассмотрению соглашения об аннулировании (в рамках функции DISIAskRevocationParam) откроется диалог с запросом параметров:
• | список заинтересованных сотрудников для рассылки уведомления об аннулировании; |
• | стадия жизненного цикла, в которую нужно перевести документ; |
• | признак, прекращать задачи по аннулируемому документу или нет. |
Сотрудник заполняет параметры аннулирования и нажимает на кнопку ОК. В результате:
• | заинтересованным лицам отправятся уведомления об аннулировании документа; |
• | прекращаются все задачи по аннулируемому документу, и документ переходит в соответствующую стадию жизненного цикла; |
• | формируется задача для бухгалтера на занесение информации об аннулировании документа в учетную систему. |
© Компания DIRECTUM, 2018 | Сообщество пользователей DIRECTUM |