Копировать ссылку на страницу Перейти в предыдущий раздел Перейти в следующий раздел

Подробнее Как найти задачу на отправку и контроль возврата

Если задача на контроль возврата стартована из РКК, используйте действие Контролировать возврат.

Если задача на контроль возврата стартована из диалогов Контроль возврата документа или Отправка документов, использованных в рамках задачи по согласованию документов (в нужном типовом маршруте), то найти задачу можно с помощью действия Вложено в задачи от основной задачи.

Подробнее Как изменить инициатора задачи на отправку и контроль возврата

Инициатор указывается в параметре 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.

Подробнее Как реализовать поддержку отправки документов в веб-доступе

Аналогично обработке диалогов в типовом маршруте «Согласование договорных документов». Доработка прикладной части не требуется.

Подробнее Как вложить новые объекты в задачу по отправке

1.В функции DISISendAndCheckReturnRun добавьте обработку нового элемента с произвольным именем, например, RecordID:

 

RecordID = TaskParamList.FindItem('RecordID')

if Assigned(RecordID)

  // Получить IReferenceInfo и добавить его во вложения задачи.

  ...

endif

2.Добавьте соответствующий реквизит в диалоги. В тексте события Закрытие каждого диалога добавьте соответствие нового параметра и его значение в переменную ParamStringList:

 

ParamStringList.Add('RecordID' & CONST_VALUE_DELIMITER & RecordID)

3.В функции DISISendAndCheckReturnRun добавьте соответствие нового параметра и его значение в переменную ParamStringList:

 

ParamList.Add('RecordID'; RecordID)

© Компания DIRECTUM, 2018 Сообщество пользователей DIRECTUM
.navbar > a:hover { background: #FFD73B; }