DocumentAttachment
Данные документа любого типа в отправляемом сообщении.
message DocumentAttachment {
required SignedContent SignedContent = 1;
optional string Comment = 3;
optional bool NeedRecipientSignature = 4 [default = false];
repeated DocumentId InitialDocumentIds = 5;
repeated DocumentId SubordinateDocumentIds = 6;
optional string CustomDocumentId = 9;
optional bool NeedReceipt = 10 [default = false];
repeated CustomDataItem CustomData = 11;
required string TypeNamedId = 12;
optional string Function = 13;
optional string Version = 14;
repeated MetadataItem Metadata = 15;
optional int32 WorkflowId = 16;
optional bool IsEncrypted = 17 [default = false];
optional string EditingSettingId = 18;
}
SignedContent
— содержимое файла вместе с электронной подписью, представленное структурой SignedContent.Comment
— комментарий к документу. Длина не более 5000 символов.NeedRecipientSignature
— признак того, что под документом требуется подпись получателя.InitialDocumentIds
— список идентификаторов документов, к которым привязывается отправляемый документ. Каждый элемент списка представлен структурой DocumentId. Привязка документа работает по следующим правилам:Чтобы установить связь с документом внутри отправляемого сообщения, передайте в поле
DocumentId.MessageId
пустую строку, а в полеDocumentId.EntityId
передайте значение поляCustomDocumentId
соответствующего документа.Чтобы установить связь с уже загруженным в систему документом, укажите его идентификатор в поле
DocumentId.InitialDocumentIds
.
SubordinateDocumentIds
— список идентификаторов документов, которые должны ссылаться на отправляемый документ. Каждый элемент списка представлен структурой DocumentId. Чтобы установить связь с документом внутри отправляемого сообщения, передайте в полеDocumentId.MessageId
пустую строку, а в полеDocumentId.EntityId
передайте значение поляCustomDocumentId
соответствующего документа.CustomDocumentId
— идентификатор документа во внешней системе; используется для выстраивания связей между документами внутри отправляемого сообщения. Должен быть уникальным в рамках структуры MessageToPost. После отправки сообщения этот идентификатор можно получить в полеCustomDocumentId
структуры Document.NeedReceipt
— признак того, что от получателя требуется сформировать извещение о получении данного документа. Для типов документов, требующих обязательную отправку извещений, указывать необязательно.CustomData
— список пользовательских данных (тегов), привязанных к документу. Каждый элемент списка представлен структурой CustomDataItem.TypeNamedId
— строковый идентификатор типа документа.Function
— функция документа. Обязательна при отправке зашифрованных документов.Version
— версия документа. Обязательна при отправке зашифрованных документов.Metadata
— список метаданных документа, представленных структурой MetadataItem. Список доступных и обязательных метаданных для каждого типа документа можно получить с помощью метода GetDocumentTypes (V2). Инструкция о получении данных из методаGetDocumentTypes
приведена на странице Получение информации о типе документа.WorkflowId
— идентификатор вида документооборота.IsEncrypted
— признак того, что содержимое передаваемого документа зашифровано. Узнать, поддерживает ли указанная версия документа отправку в зашифрованном виде, можно с помощью метода GetDocumentTypes (V2). Инструкция о получении данных из методаGetDocumentTypes
приведена на странице Получение информации о типе документа.EditingSettingId
— идентификатор настройки редактирования содержимого документа.
Примеры использования
Пример заполнения структуры для отправки титула исполнителя для акта о выполнении работ (оказании услуг) в XML-формате (C#):
var attachment = new DocumentAttachment
{
TypeNamedId = "XmlAcceptanceCertificate",
SignedContent = new SignedContent { Content = xmlDocumentBytes, Signature = signatureBytes }
};
var messageToPost = new MessageToPost
{
FromBoxId = senderBoxId,
ToBoxId = recepientBoxId,
DocumentAttachments = { attachment }
};
api.PostMessage(token, messageToPost);
Пример заполнения структуры для отправки договора с запросом извещения о получении (C#):
var attachment = new DocumentAttachment
{
TypeNamedId = "Contract",
SignedContent = new SignedContent { Content = documentBytes, Signature = signatureBytes },
Metadata =
{
new MetadataItem("FileName", "Договор.pdf"),
new MetadataItem("DocumentNumber", "196"),
new MetadataItem("DocumentDate", "27.10.2017"),
new MetadataItem("ContractType", "Купля-продажа"),
new MetadataItem("ContractPrice", "3000.00"),
},
NeedReceipt = true
};
var messageToPost = new MessageToPost
{
FromBoxId = senderBoxId,
ToBoxId = recepientBoxId,
DocumentAttachments = { attachment }
};
api.PostMessage(token, messageToPost);
Пример заполнения структуры для отправки зашифрованного счета-фактуры в формате приказа №970 (C#):
var attachment = new DocumentAttachment
{
TypeNamedId = "Invoice",
Function = "default",
Version = "utd970_05_03_01",
SignedContent = new SignedContent
{
Content = content,
Signature = new SignedContent
{
Content = encryptedDocumentBytes,
Signature = signatureBytes
}
},
IsEncrypted = true,
Metadata =
{
new MetadataItem("FileId", "invoice.xml"),
new MetadataItem("SellerFnsParticipantId", sellerFnsParticipantId),
new MetadataItem("BuyerFnsParticipantId", buyerFnsParticipantId),
new MetadataItem("DocumentDate", "01.04.2025"),
new MetadataItem("DocumentNumber", "169"),
}
};
var messageToPost = new MessageToPost
{
FromBoxId = senderBoxId,
ToBoxId = recepientBoxId,
DocumentAttachments = { attachment }
};
api.PostMessage(token, messageToPost);
Пример заполнения структуры для отправки неформализованного документа (C#):
var attachment = new DocumentAttachment
{
TypeNamedId = "Nonformalized",
SignedContent = new SignedContent { Content = DocumentBytes, Signature = signatureBytes }
Metadata =
{
new MetadataItem("FileName", "Имя файла"),
}
};
var messageToPost = new MessageToPost
{
FromBoxId = senderBoxId,
ToBoxId = recepientBoxId,
DocumentAttachments = { attachment }
};
api.PostMessage(token, messageToPost);
См. также
- Структура используется:
в структуре MessageToPost