Получение информации о типе документа
Каждый документ в Диадоке имеет свой формат. Формат определяет свойства документа, его поведение и требования к содержимому.
Формат документа в Диадоке определяется сочетанием трех параметров:
тип документа,
функция этого типа,
версия этого типа и функции.
Диадок позволяет получить список всех доступных типов документов с их функциями и версиями с помощью метода 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).