Передача документов

Система Транскрипт позволяет пользователям обмениваться:
  1. Подготовка документа к отправке.
    Для подготовки документа к отправке необходимо:
    • Заполнить для каждого документа параметры DocumentForSend .
      Внимание: Запрос ответной подписи получателя на документ определяется признаком NeedResign. Описание документооборотов приведено в приложении.
    • Заполнить полномочия подписанта для формализованных документов с типом УПД, УКД, Счетов-фактур методом Domain.SignerAuthority.SenderAuthority
    • Актуализировать данные формализованного документа для отправки методом PrepareDocumentDataForSend().
    • Добавить файл подписи отправителя для каждого документа.
  2. Отправка пакета документов.

    В Транскрипт возможна отправка отдельных документов и группой.

    Для отправки группы подготовленных документов используется метод SendDocuments().

    Синтаксис:

    SendDocuments(guid token, List< DocumentForSend > documents, ReceiverInfo receiverInfo)

    Параметры

    Табл. 1.
    Параметр Тип Значение
    token Guid авторизационный токен
    documents List< DocumentForSend > список документов для отправки одной группой. List< DocumentForSend >
    receiverInfo ReceiverInfo информация о получателе ReceiverInfo

    Выходные данные:

    Идентификатор сформированной группы документов

    Пример:

    if (docflowType == DocflowDictionaryDocflowType.InvoiceUniversalDocument
    	|| docflowType == DocflowDictionaryDocflowType.InvoiceBillUniversalDocument
    	|| docflowType == DocflowDictionaryDocflowType.BillUniversalDocument
    	|| docflowType == DocflowDictionaryDocflowType.InvoiceUniversalCorrectionDocument
    	|| docflowType == DocflowDictionaryDocflowType.InvoiceBillUniversalCorrectionDocument
    	|| docflowType == DocflowDictionaryDocflowType.BillUniversalCorrectionDocument)
    {
    	senderAuthority = GetSenderAuthority();
    }
    
    var correctContent = api.PrepareDocumentDataForSend(
    	new PrepareDocumentDataForSendParams
    	{
    		Token = infoBySend.Token,
    		Content = content,
    		ReceiverId = infoBySend.Receiver.DocflowMemberId,
    		FileName = fileInfo.Name,
    		SenderAuthority = senderAuthority
    	});
    
    var signature = Sign(correctContent, cetificateHash);
    
    var documentForSend = new DocumentForSend
    {
    	FileName = fileInfo.Name,
    	FileContent = correctContent,
    	DocflowTypeCode = (int)docflowType,
    	DocumentInfo = additionalInfo,
    	Description = comment,
    	NeedResign = IsRequiredResign(fileInfo.Name, docflowType),
    	Signatures = new List<byte> { signature }
    };
    
    var sendDocumentResult = api.SendDocuments(
    	token,
    	new List<DocumentForSend> { documentForSend },
    	new ReceiverInfo { "2AK.TX.0000" }
    );