Получение информации о типе документа
Каждый документ в Диадоке имеет свой формат. Формат определяет свойства документа, его поведение и требования к содержимому.
Формат документа в Диадоке определяется сочетанием трех параметров:
тип документа,
функция этого типа,
версия этого типа и функции.
Диадок позволяет получить список всех доступных типов документов с их функциями и версиями с помощью метода GetDocumentTypes (V2).
Примечание
Необязательно получать информацию о типах документов при работе с каждым документом: ее можно получить один раз и сохранить для последующего использования.
На странице Форматы документов приведены таблицы со списком основных доступных форматов формализованных и неформализованных документов — их типов, версий и функций. Обратите внимание, что эти таблицы являются справочными, а данные в них действительны на момент публикации. Актуальный список можно получить с помощью метода GetDocumentTypes (V2).
Получение данных о типе документа
Чтобы получить данные о типе документа:
Вызовите метод GetDocumentTypes (V2). В ответе метод возвращает описание всех типов документов, доступных пользователю в Диадоке в указанном ящике. Каждый элемент в списке ответа представлен структурой DocumentTypeDescriptionV2.
Среди полученного списка найдите описание типа, который требуется для вашего интеграционного решения.
Ниже приведен пример ответа метода GetDocumentTypes
. Так как количество типов документов в Диадоке большое, для простоты приведем только часть ответа, описывающую УПД формата приказа №970 с функцией СЧФ.
Пример тела ответа метода GetDocumentTypes:
{
"DocumentTypes": [
{
"Functions": [
{
"Name": "СЧФ",
"Versions": [
{
"IsActual": true,
"SupportsAmendmentRequest": true,
"SupportsContentPatching": true,
"SupportsEncrypting": true,
"SupportsPredefinedRecipientTitle": false,
"Titles": [
{
"EncryptedMetadataItems": [],
"Index": 0,
"IsFormal": true,
"MetadataItems": [],
"SignerInfo": {
"ExtendedDocumentTitleType": 12,
"SignerType": 3,
"SignerUserDataXsdUrl": "/GetContent?typeNamedId=UniversalTransferDocument&function=СЧФ&version=utd970_05_03_01&titleIndex=0&contentType=SignerUserContractXsd"
},
"UserDataXsdUrl": "/GetContent?typeNamedId=UniversalTransferDocument&function=СЧФ&version=utd970_05_03_01&titleIndex=0&contentType=UserContractXsd",
"XsdUrl": "/GetContent?typeNamedId=UniversalTransferDocument&function=СЧФ&version=utd970_05_03_01&titleIndex=0&contentType=TitleXsd"
}
],
"Version": "utd970_05_03_01",
"workflows": [
{
"Id": 17,
"IsDefault": true
},
{
"Id": 10,
"IsDefault": false
}
]
}
]
}
],
"Name": "UniversalTransferDocument",
"RequiresFnsRegistration": true,
"SupportedDocflows": [
0
],
"Title": "УПД"
}
]
}
Данные для генерации титула
Чтобы сгенерировать формализованный документ с помощью API Диадока, нужно знать следующую информацию о его типе:
идентификатор типа документа,
функция документа,
версия документа,
идентификатор титула документа,
XSD-схема для формирования упрощенного XML-файла UserDataXml.
Из полученного выше ответа метода GetDocumentTypes
получаем следующие данные:
DocumentTypeDescriptionV2.Name
— тип документа:UniversalTransferDocument
,
DocumentTypeDescriptionV2.Functions[].Name
— функция документа:СЧФ
,
DocumentTypeDescriptionV2.Functions[].Versions[].Version
— версия документа:utd970_05_03_01
,
DocumentTypeDescriptionV2.Functions[].Versions[].Titles[].Index
— идентификатор титула документа:0
(титул продавца),
DocumentTypeDescriptionV2.Functions[].Versions[].Titles[].UserDataXsdUrl
— ссылка для получения XSD-схемы упрощенного XML-файла титула:/GetContent?typeNamedId=UniversalTransferDocument&function=СЧФ&version=utd970_05_03_01&titleIndex=0&contentType=UserContractXsd
.
Чтобы получить упрощенную XSD-схему для формирования UserDataXml, вызовите метод GetContent
по ссылке из поля UserDataXsdUrl
. Ссылка для получения полной XSD-схемы титула хранится в поле XsdUrl
.
Полученные данные можно использовать для генерации титула документа.
Данные для заполнения блока подписанта
Описание типа документа содержит данные для заполнения подписанта каждого типа. Эта информация хранится в структуре SignerInfoV2.
Из полученного выше ответа метода GetDocumentTypes
получаем следующие данные:
DocumentTypeDescriptionV2.Functions[].Versions[].Titles[].SignerInfo.SignerType
— тип заполнения данных подписанта:3
— универсальный формат,
DocumentTypeDescriptionV2.Functions[].Versions[].Titles[].SignerInfo.ExtendedDocumentTitleType
— тип титула документа:12
— данные для титула покупателя УПД формата приказа №970,
DocumentTypeDescriptionV2.Functions[].Versions[].Titles[].SignerInfo.SignerUserDataXsdUrl
— ссылка для получения XSD-схемы упрощенного XML-фала универсального подписанта:/GetContent?typeNamedId=UniversalTransferDocument&function=СЧФ&version=utd970_05_03_01&titleIndex=0&contentType=SignerUserContractXsd
.
Чтобы получить упрощенную XSD-схему для формирования XML-блока универсального подписанта, вызовите метод GetContent
по ссылке из поля SignerUserDataXsdUrl
. В ответ метод вернет файл XSD-схемы для заполнения данных подписанта.
Полученные данные можно использовать для:
Данные о видах документооборота
Описание типа документа содержит данные о видах документооборота, доступных для каждой версии документа.
Эти данные хранятся в массиве DocumentTypeDescriptionV2.Functions[].Versions[].workflows[]
в виде структуры DocumentWorkflow.
По идентификатору, хранящемуся в поле DocumentWorkflow.Id
можно узнать информацию об этом виде документооборота с помощью метода GetWorkflowsSettings (V2).