Document

message Document {
    optional string IndexKey = 1;
    required string MessageId = 2;
    required string EntityId = 3;
    required sfixed64 CreationTimestampTicks = 4;
    optional string CounteragentBoxId = 5;
    optional DocumentType DocumentType = 6 [default = UnknownDocumentType];
    repeated DocumentId InitialDocumentIds = 7;
    repeated DocumentId SubordinateDocumentIds = 8;
    optional Content Content = 9;
    optional string FileName = 10;
    optional string DocumentDate = 11;
    optional string DocumentNumber = 12;
    optional NonformalizedDocument.NonformalizedDocumentMetadata NonformalizedDocumentMetadata = 13;
    optional InvoiceDocument.InvoiceMetadata InvoiceMetadata = 14;
    optional BilateralDocument.TrustConnectionRequestMetadata TrustConnectionRequestMetadata = 15;
    optional BilateralDocument.BasicDocumentMetadata Torg12Metadata = 16;
    optional InvoiceDocument.InvoiceRevisionMetadata InvoiceRevisionMetadata = 17;
    optional InvoiceDocument.InvoiceCorrectionMetadata InvoiceCorrectionMetadata = 18;
    optional InvoiceDocument.InvoiceCorrectionRevisionMetadata InvoiceCorrectionRevisionMetadata = 19;
    optional AcceptanceCertificateDocument.AcceptanceCertificateMetadata AcceptanceCertificateMetadata = 20;
    optional UnilateralDocument.ProformaInvoiceMetadata ProformaInvoiceMetadata = 21;
    optional BilateralDocument.BasicDocumentMetadata XmlTorg12Metadata = 22;
    optional BilateralDocument.BasicDocumentMetadata XmlAcceptanceCertificateMetadata = 23;
    optional bool IsDeleted = 24 [default = false];
    optional string DepartmentId = 25;
    optional bool IsTest = 26 [default = false];
    optional string FromDepartmentId = 27;
    optional string ToDepartmentId = 28;
    optional BilateralDocument.PriceListMetadata PriceListMetadata = 29;
    optional string CustomDocumentId = 30;
    optional ResolutionStatus ResolutionStatus = 31;
    optional RevocationStatus RevocationStatus = 32 [default = UnknownRevocationStatus];
    optional sfixed64 SendTimestampTicks = 33;
    optional sfixed64 DeliveryTimestampTicks = 34;
    repeated ForwardDocumentEvent ForwardDocumentEvents = 35;
    optional BilateralDocument.BilateralDocumentMetadata ReconciliationActMetadata = 38;
    optional BilateralDocument.ContractMetadata ContractMetadata = 39;
    optional BilateralDocument.BasicDocumentMetadata Torg13Metadata = 40;
    optional UnilateralDocument.ServiceDetailsMetadata ServiceDetailsMetadata = 41;
    optional RoamingNotificationStatus RoamingNotificationStatus = 42 [default = UnknownRoamingNotificationStatus];
    optional bool HasCustomPrintForm = 43 [default = false];
    repeated CustomDataItem CustomData = 44;
    optional string PacketId = 45;
    optional DocumentDirection DocumentDirection = 46 [default = UnknownDocumentDirection];
    optional sfixed64 LastModificationTimestampTicks = 47;
    optional bool IsEncryptedContent = 48;
    optional SenderSignatureStatus SenderSignatureStatus = 49 [default = UnknownSenderSignatureStatus];
    optional BilateralDocument.SupplementaryAgreementMetadata SupplementaryAgreementMetadata = 50;
    optional bool IsRead = 51 [default = false];
    optional string RoamingNotificationStatusDescription = 52;
    optional bool PacketIsLocked = 53 [default = false];
    optional NonformalizedDocumentMetadata PriceListAgreementMetadata = 54;
    optional NonformalizedDocumentMetadata CertificateRegistryMetadata = 55;
    optional UniversalTransferDocumentMetadata UniversalTransferDocumentMetadata = 56;
    optional UniversalTransferDocumentRevisionMetadata UniversalTransferDocumentRevisionMetadata = 57;
    optional UniversalCorrectionDocumentMetadata UniversalCorrectionDocumentMetadata = 58;
    optional UniversalCorrectionDocumentRevisionMetadata UniversalCorrectionDocumentRevisionMetadata = 59;
    optional string ResolutionRouteId = 60 [default = ""];
    optional string AttachmentVersion = 61;
    optional ProxySignatureStatus ProxySignatureStatus = 62 [default = UnknownProxySignatureStatus];

    required string TypeNamedId = 63;
    required string Function = 64;
    required int32 WorkflowId = 65;
    required string Title = 66;
    repeated Events.MetadataItem Metadata = 67;
    required RecipientReceiptMetadata RecipientReceiptMetadata = 68;
    required ConfirmationMetadata ConfirmationMetadata = 69;
    required RecipientResponseStatus RecipientResponseStatus = 70 [default = RecipientResponseStatusUnknown];
    required AmendmentRequestMetadata AmendmentRequestMetadata = 71;
    optional Origin Origin = 72;
    optional string EditingSettingId = 73 [default = ""];
}

enum RevocationStatus {
    UnknownRevocationStatus = 0; // Reserved status to report to legacy clients for newly introduced statuses
    RevocationStatusNone = 1;
    RevocationIsRequestedByMe = 2;
    RequestsMyRevocation = 3;
    RevocationAccepted = 4;
    RevocationRejected = 5;
}

enum RoamingNotificationStatus {
    UnknownRoamingNotificationStatus = 0; // Reserved status to report to legacy clients for newly introduced statuses
    NotificationStatusNone = 1;
    NotificationStatusSuccess = 2;
    NotificationStatusError = 3;
}

enum SenderSignatureStatus {
    UnknownSenderSignatureStatus = 0; // Reserved status to report to legacy clients for newly introduced statuses
    WaitingForSenderSignature = 1; // Ожидается подпись отправителя
    SenderSignatureUnchecked = 2; // Подпись отправителя еще не проверена
    SenderSignatureCheckedAndValid = 3; // Подпись отправителя проверена и валидна
    SenderSignatureCheckedAndInvalid = 4; // Подпись отправителя проверена и невалидна
}

enum ProxySignatureStatus {
    UnknownProxySignatureStatus = 0; // Reserved status to report to legacy clients for newly introduced statuses
    ProxySignatureStatusNone = 1; // Подпись промежуточного получателя не требуется
    WaitingForProxySignature = 2; // Ожидается подпись промежуточного получателя
    WithProxySignature = 3; // Подпись промежуточного получателя проверена и валидна
    ProxySignatureRejected = 4; // Промежуточный получатель отказал в подписи
    InvalidProxySignature = 5; // Подпись промежуточного получателя проверена и невалидна
}

Структура данных Document содержит информацию об одном документе в Диадоке, которую можно получить, например, при помощи метода GetDocument:

  • IndexKey - уникальный ключ документа, который можно передавать в метод GetDocuments в качестве параметра afterIndexKey для итерирования по всему отфильтрованному списку.

  • MessageId - идентификатор сообщения, содержащего данный документ.

  • EntityId - идентификатор соответствующей документу сущности типа LetterAttachment внутри сообщения.

  • CreationTimestampTicks - метка времени создания данного документа.

  • CounteragentBoxId - идентификатор Диадок-ящика контрагента по данному документу.

    В случае исходящего документа - это идентификатор ящика получателя, в случае входящего документа - идентификатор ящика отправителя;

    Если документ находится в черновиках, то поле CounteragentBoxId может быть не заполнено.

  • DocumentType (устаревшее, см. TypeNamedId) - тип документа, принимает одно из значений перечислимого типа DocumentType. В зависимости от типа документа заполняется одно из полей Document.XxxMetadata. Для новых типов значение всегда будет равно UnknownDocumentType.

  • InitialDocumentIds - список идентификаторов документов, на которые ссылается данный;

    каждый такой идентификатор задается структурой DocumentId.

  • SubordinateDocumentIds - список идентификаторов документов, которые ссылаются на данный;

    каждый такой идентификатор задается структурой DocumentId.

  • Content - содержимое документа.

    Поле Content.Size определяет размер содержимого в байтах.

    Поле Content.Data содержит собственно данные.

    При получении документов списком (например, при помощи метода GetDocuments) поле Content.Data не заполняется из соображений производительности.

  • FileName - имя файла документа, которое у него было при загрузке в Диадок.

  • DocumentDate (устаревшее, см. Metadata) - дата формирования документа в формате ДД.ММ.ГГГГ; может отличаться от даты загрузки его в Диадок.

  • DocumentNumber (устаревшее, см. Metadata) - номер документа.

  • IsDeleted - флаг, показывающий, был ли удален данный документ.

  • DepartmentId - идентификатор подразделения, в котором находится документ.

  • IsTest - флаг, показывающий, что данный документ является тестовым и не имеет юридической силы, т.к. один из контрагентов не присоединился к регламенту Диадока.

  • FromDepartmentId - идентификатор подразделения, из которого отправляется документ.

  • ToDepartmentId - идентификатор подразделения, в которое отправляется документ.

  • CustomDocumentId - идентификатор документа, определяемый внешней системой.

  • IsEncryptedContent - флаг, показывающий, что контент передаваемого документа зашифрован.

  • NonformalizedDocumentMetadata (устаревшее, см. RecipientReceiptMetadata и RecipientResponseStatus) - дополнительные атрибуты специфичные для неформализованных документов.

  • InvoiceMetadata (устаревшее, см. RecipientReceiptMetadata, ConfirmationMetadata и AmendmentRequestMetadata) - дополнительные атрибуты специфичные для счетов-фактур.

  • InvoiceRevisionMetadata (устаревшее, см. RecipientReceiptMetadata, ConfirmationMetadata и AmendmentRequestMetadata) - дополнительные атрибуты специфичные для исправлений счетов-фактур.

  • InvoiceCorrectionMetadata (устаревшее, см. RecipientReceiptMetadata, ConfirmationMetadata и AmendmentRequestMetadata) - дополнительные атрибуты специфичные для корректировочных счетов-фактур.

  • InvoiceCorrectionRevisionMetadata (устаревшее, см. RecipientReceiptMetadata, ConfirmationMetadata и AmendmentRequestMetadata) - дополнительные атрибуты специфичные для исправлений корректировочных счетов-фактур.

  • TrustConnectionRequestMetadata (устаревшее, см. RecipientResponseStatus) - дополнительные атрибуты специфичные для документов типа TrustConnectionRequest.

  • Torg12Metadata (устаревшее, см. RecipientReceiptMetadata и RecipientResponseStatus) - дополнительные атрибуты специфичные для товарных накладных ТОРГ-12.

  • AcceptanceCertificateMetadata (устаревшее, см. RecipientReceiptMetadata и RecipientResponseStatus) - дополнительные атрибуты специфичные для актов о выполнении работ (оказании услуг).

  • ProformaInvoiceMetadata (устаревшее, см. RecipientReceiptMetadata) - дополнительные атрибуты специфичные для счетов на оплату.

  • XmlTorg12Metadata (устаревшее, см. RecipientReceiptMetadata и RecipientResponseStatus) - дополнительные атрибуты специфичные для товарных накладных ТОРГ-12 в XML-формате.

  • XmlAcceptanceCertificateMetadata (устаревшее, см. RecipientReceiptMetadata и RecipientResponseStatus) - дополнительные атрибуты специфичные для актов о выполнении работ (оказании услуг) в XML-формате.

  • PriceListMetadata (устаревшее, см. RecipientReceiptMetadata и RecipientResponseStatus) - дополнительные атрибуты специфичные для ценовых листов.

  • PriceListAgreementMetadata (устаревшее, см. RecipientReceiptMetadata и RecipientResponseStatus) - дополнительные атрибуты специфичные для протоколов согласования цены.

  • CertificateRegistryMetadata (устаревшее, см. RecipientReceiptMetadata и RecipientResponseStatus) - дополнительные атрибуты специфичные для реестров сертификатов.

  • ReconciliationActMetadata (устаревшее, см. RecipientReceiptMetadata и RecipientResponseStatus) - дополнительные атрибуты специфичные для актов сверки.

  • ContractMetadata (устаревшее, см. RecipientReceiptMetadata и RecipientResponseStatus) - дополнительные атрибуты специфичные для договоров.

  • Torg13Metadata (устаревшее, см. RecipientReceiptMetadata и RecipientResponseStatus) - дополнительные атрибуты специфичные для накладных ТОРГ-13.

  • SupplementaryAgreementMetadata (устаревшее, см. RecipientReceiptMetadata и RecipientResponseStatus) - дополнительные атрибуты специфичные для типа документа дополнительное соглашение к договору.

  • ResolutionStatus - текущий статус согласования данного документа.

  • ServiceDetailsMetadata (устаревшее, см. RecipientReceiptMetadata) - дополнительные атрибуты специфичные для детализаций.

  • UniversalTransferDocumentMetadata (устаревшее, см. RecipientReceiptMetadata, RecipientResponseStatus, ConfirmationMetadata и AmendmentRequestMetadata) - дополнительные атрибуты, специфичные для УПД

  • UniversalTransferDocumentRevisionMetadata (устаревшее, см. RecipientReceiptMetadata, RecipientResponseStatus, ConfirmationMetadata и AmendmentRequestMetadata) - дополнительные атрибуты, специфичные для исправлений УПД

  • UniversalCorrectionDocumentMetadata (устаревшее, см. RecipientReceiptMetadata, RecipientResponseStatus, ConfirmationMetadata и AmendmentRequestMetadata) - дополнительные атрибуты, специфичные для УКД

  • UniversalCorrectionDocumentRevisionMetadata (устаревшее, см. RecipientReceiptMetadata, RecipientResponseStatus, ConfirmationMetadata и AmendmentRequestMetadata) - дополнительные атрибуты, специфичные для исправлений УКД

  • RevocationStatus - статус аннулирования документа. Возможные значения:

    • RevocationStatusNone (документ не аннулирован, и не было предложений об аннулировании)
    • RevocationIsRequestedByMe (отправлено исходящее предложение об аннулировании документа)
    • RequestsMyRevocation (получено входящее предложение об аннулировании документа)
    • RevocationAccepted (документ аннулирован)
    • RevocationRejected (получен или отправлен отказ от предложения об аннулировании документа)
    • UnknownRevocationStatus (неизвестный статус аннулирования документа; может выдаваться лишь в случае, когда клиент использует устаревшую версию SDK и не может интерпретировать статус аннулирования документа, переданный сервером)
  • SendTimestampTicks - Необязательная метка времени отправки данного документа.

  • DeliveryTimestampTicks - Необязательная метка времени доставки данного документа.

  • ForwardDocumentEvents - Список событий пересылки данного документа третьей стороне. Документ может быть переслан нескольким получателям, а также - несколько раз одному получателю.

  • RoamingNotificationStatus - статус доставки в роуминг. Возможные значения:

    • RoamingNotificationStatusNone (документ не роуминговый, или документ без подтверждения доставки в роуминг)
    • RoamingNotificationStatusSuccess (документ с подтверждением успешной доставки в роуминг)
    • RoamingNotificationStatusError (документ с ошибкой доставки в роуминг)
    • UnknownRoamingNotificationStatus (неизвестный роуминговый статус документа; может выдаваться лишь в случае, когда клиент использует устаревшую версию SDK и не может интерпретировать роуминговый статус документа, переданный сервером)
  • HasCustomPrintForm - флаг, показывающий, что данный документ имеет нестандартную печатную форму. Скачать печатную форму документа можно при помощи метода GeneratePrintForm.

  • IsRead - флаг, указывающий на то, что документ был прочитан сотрудником организации.

  • RoamingNotificationStatusDescription - текстовое описание ошибки при доставке документов в роуминг. Обычно это поле заполняется, когда статус доставки в роуминг RoamingNotificationStatus имеет значение RoamingNotificationStatusError.

  • ResolutionRouteId - идентификатор маршрута согласования, на котором находится документ (если документ находится на маршруте согласования).

  • AttachmentVersion - информация о версии XSD схемы, в соответствии с которой сформирован документ.

  • ProxySignatureStatus - статус промежуточной подписи. Возможные значения:

    • ProxySignatureStatusNone (документ не требует промежуточной подписи)
    • WaitingForProxySignature (ожидается промежуточная подпись)
    • WithProxySignature (промежуточная подпись проверена и валидна)
    • ProxySignatureRejected (промежуточный получатель отказал в подписи)
    • InvalidProxySignature (промежуточная подпись проверена и невалидна)
  • TypeNamedId - строковый идентификатор типа документа. Его следует использовать вместо свойства DocumentType. Может принимать значения «Nonformalized», «Invoice», «Torg12», «XmlTorg12» и другие. Полный список возможных значений можно получить с помощью метода GetDocumentTypes.

  • Function - функция документа. Дл всех типов, кроме UniversalTransferDocument, UniversalTransferDocumentRevision, UniversalCorrectionDocument и UniversalCorrectionDocumentRevision, принимает значение «default». Для документов типа УПД/ИУПД принимает значения «СЧФ», «ДОП» и «СЧФДОП», для документов типа УКД/ИУКД принимает значения «КСЧФ», «ДИС» и «КСЧФДИС».

  • WorkflowId - числовой идентификатор типа документооброта, по которому запущен документ. Более подробную информацию см. DocumentWorkflow.

  • Title - название документа. Например, «Счет-фактура №123 от 26.02.18».

  • Metadata - массив пар «ключ-значение», определямых типом документа. Примеры возможных значения ключей: «FileName», «DocumentDate», «DocumentNumber» и другие. Более подробную информацию см. MetadataItem. Набор возможных значений для конкретного типа можно узнать с помощью метода GetDocumentTypes.

  • RecipientReceiptMetadata - свойство, отвечающее за состояние извещения о получении документа со стороны получателя.

  • ConfirmationMetadata - свойство, отвечающее за состояние подтверждения оператором даты отправки/получения документа. Актуально, например, для счетов-фактур и УПД/УКД с некоторыми функциями.

  • RecipientResponseStatus - свойство, отвечающее за состояние ответного действия получателя - ответную подпись или подписание ответного титула.

  • AmendmentRequestMetadata - свойство, отвечающее за состояние уведомления об уточнении. Актуально, например, для счетов-фактур, УПД и некоторых версий актов и накладных.

  • Origin - свойство, позволяющее узнать, из какой сущности был создан документ. Например, из черновика или шаблона.

  • EditingSettingId - необязательный идентификатор настройки документа, если он был создан из шаблона с возможностью редактирования полей.

Предупреждение

Свойства NonformalizedDocumentMetadata, InvoiceMetadata, InvoiceRevisionMetadata, InvoiceCorrectionMetadata, InvoiceCorrectionRevisionMetadata, TrustConnectionRequestMetadata, Torg12Metadata, AcceptanceCertificateMetadata, ProformaInvoiceMetadata, XmlTorg12Metadata, XmlAcceptanceCertificateMetadata, PriceListMetadata, PriceListAgreementMetadata, CertificateRegistryMetadata, ReconciliationActMetadata, ContractMetadata, Torg13Metadata, SupplementaryAgreementMetadata, ServiceDetailsMetadata, UniversalTransferDocumentMetadata, UniversalTransferDocumentRevisionMetadata, UniversalCorrectionDocumentMetadata и UniversalCorrectionDocumentRevisionMetadata считаются устаревшими и не рекомендованы к использованию. В будущем они будут удалены.