Как найти задачу на отправку и контроль возврата
Если задача на контроль возврата стартована из РКК, используйте действие Контролировать возврат. Если задача на контроль возврата стартована из диалогов Контроль возврата документа или Отправка документов, использованных в рамках задачи по согласованию документов (в нужном типовом маршруте), то найти задачу можно с помощью действия Вложено в задачи от основной задачи. |
Как изменить инициатора задачи на отправку и контроль возврата
Инициатор указывается в параметре UserName, который передается в списке ParamStringList в серверное событие. В параметре указывается имя пользователя. По умолчанию в качестве инициатора указывается текущий пользователь. В блоке типового маршрута «Отправка положительного ответа в систему обмена» для инициатора есть отдельное свойство. Если параметр UserName в функции DISISendAndCheckReturnRun не заполнен, инициатором будет инициатор задачи из переданного параметра TaskID. Если и этот параметр не заполнен, инициатором будет служебный пользователь. Заменить пользователя можно в вычислении событий диалогов, в блоке типового маршрута «Отправка положительного ответа в систему обмена». Если у всех задач на отправку должен быть единый инициатор, можно изменить вычисление инициатора в функции DISISendAndCheckReturnRun. |
Как сформировать текст задания по отправке аналогично стандартным типовым маршрутам
Для формирования текста задания для отправки новых документов используется функция DISIGetTaskTextForSendDocuments. Подготовьте данные из диалога для формирования текста задания (на событии блока задания):
if Dialog.Result <<>> mrOk Exit() else PartnersDDS = Dialog.DetailDataSet(1) PartnersDDS.First PartnersStringList = CreateStringList() PartnersStringList.Delimiter = '|' while not PartnersDDS.EOF PartnerAdresse = PartnersDDS.DISISubscriberAddresse2T if Assigned(PartnerAdresse) PartnersStringList.Add(PartnerAdresse) endif PartnersDDS.Next endwhile Text = DISIGetTaskTextForSendDocuments(Dialog.String; Dialog.String2; PartnersStringList.DelimitedText) ActiveText = Object.ActiveText if Assigned(ActiveText) Object.ActiveText = Format("%s%s%s"; ArrayOf(ActiveText; CR; Text)) else Object.ActiveText = Text endif endif Для формирования текста задания для отправки задачи на контроль возврата бумажных документов используется функция DISIGetTaskTextForEnsureDocumentReturn. Добавьте в нее обработку новых параметров или используйте параметры самой функции:
if Dialog.Result <<>> mrOk Exit() else Text = DISIGetTaskTextForEnsureDocumentReturn(Object.ID) ActiveText = Object.ActiveText if Assigned(ActiveText) Object.ActiveText = Format("%s%s%s"; ArrayOf(ActiveText; CR; Text)) else Object.ActiveText = Text endif endif |
Как сделать единый блок для отправки документов в бумаге и через системы обмена
Обычно пользователю, ответственному за отправку, заранее известно, в каком виде нужно отправить документы в конкретную организацию. Например, способ отправки может определяться в параметре типового маршрута DeliveryMethod. В этом случае в событии задания по отправке можно программно вычислить, какой диалог отобразить:
Mode = DISIGetModeForSendDocBlock(Object.ID) if Mode == 'Send' // Отображение диалога DISISendDocuments. … else if Mode == 'Control' // Отображение диалога DISICheckReturn. … endif endif Если имена параметров отличаются от стандартных, обработайте новые параметры в функции DISIGetModeForSendDocBlock. |
Как реализовать поддержку отправки документов в веб-доступе
Аналогично обработке диалогов в типовом маршруте «Согласование договорных документов». Доработка прикладной части не требуется. |
Как вложить новые объекты в задачу по отправке
RecordID = TaskParamList.FindItem('RecordID') if Assigned(RecordID) // Получить IReferenceInfo и добавить его во вложения задачи. ... endif
ParamStringList.Add('RecordID' & CONST_VALUE_DELIMITER & RecordID)
ParamList.Add('RecordID'; RecordID) |
© Компания DIRECTUM, 2018 | Сообщество пользователей DIRECTUM |