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