DocumentTypeDescription¶
message DocumentTypeDescription {
required string Name = 1;
required string Title = 2;
repeated DocumentDocflow SupportedDocflows = 3;
required bool RequiresFnsRegistration = 4;
repeated DocumentFunction Functions = 9;
}
enum DocumentDocflow {
External = 0; // внешний документооборот
Internal = 1; // внутренний документооборот
}
Name - уникальный строковой идентификатор типа (он же TypeNamedId в других контрактах и методах)
Title - заголовок типа, человеко-понятное название (например, «Счёт-фактура»)
SupportedDocflows - поддерживаемые типы документооборота
RequiresFnsRegistration - для работы требуется заявление участника ЭДО
Functions - описания функций документа
DocumentFunction¶
Описывает функцию документа.
message DocumentFunction {
required string Name = 1;
repeated DocumentVersion Versions = 2;
}
Name - строковой идентификатор функции, уникальное в рамках типа документов
Versions - описания версий документа
DocumentVersion¶
Описывает версию документа.
message DocumentVersion {
required string Version = 1;
required bool SupportsContentPatching = 2;
required bool SupportsEncrypting = 3;
required bool SupportsPredefinedRecipientTitle = 7;
required bool SupportsAmendmentRequest = 8;
repeated DocumentTitle Titles = 4;
required bool IsActual = 5;
repeated DocumentWorkflow Workflows = 6;
}
Version - строковой идентификатор версии, уникальный в рамках функции документа
SupportsContentPatching - поддерживается патчинг
SupportsEncrypting - поддерживается отправка зашифрованных документов
SupportsPredefinedRecipientTitle - поддерживается отправка предопределенного титула. Подробнее здесь: Как работать с предопределённым титулом получателя.
SupportsAmendmentRequest - поддерживается отправка запроса на уточнение.
Titles - описания титулов документа
IsActual - версия актуальна
Workflows - виды документооборота
DocumentTitle¶
Описывает титул документа.
message DocumentTitle {
required int32 Index = 7;
required bool IsFormal = 1;
optional string XsdUrl = 2;
optional string UserDataXsdUrl = 5;
required SignerInfo SignerInfo = 6;
repeated DocumentMetadataItem MetadataItems = 3;
repeated DocumentMetadataItem EncryptedMetadataItems = 4;
}
Index - числовой идентификатор титула. По смыслу означает, в каком порядке титулы загружаются контрагентами. Всегда начинается с 0.
IsFormal - титул формализованный
XsdUrl - URL-путь метода, возвращающего файл XSD-схемы титула
UserDataXsdUrl - URL-путь метода, возвращающего файл XSD-схемы контракта для генерации титула с помощью обобщённого метода генерации. Может отсутствовать, тогда это означает, что генерация титула под этим индексом нереализована. Для генерации титулов используется метод GenerateTitleXml.
SignerInfo - описание подписанта титула
MetadataItems - описания метаданных документа
EncryptedMetadataItems - описания метаданных для отправки зашифрованного документа
SignerInfo¶
Описывает тип подписанта титула.
message SignerInfo {
required SignerType SignerType = 1;
required DocumentTitleType ExtendedDocumentTitleType = 2 [default = Absent];
}
enum SignerType {
None = 0;
Signer = 1;
ExtendedSigner = 2;
}
SignerType - тип подписанта необходимый для титула
None - подписант отсутствует в контенте документа. Формируется только файл открепленной подписи. Используется для неформализованных документов
Signer - простой подписант. Используется для документов форматов @93/@172 и своих типов документов не на базе формата @155
ExtendedSigner - расширенный подписант. Используется для документов форматов @155/@551/@552/@820 и своих типов на базе формата @155
DocumentTitleType - Тип титула документа, для которого нужно заполнить дополнительные данные о подписанте. Для типов подписанта None и Signer значение всегда равно Absent.
DocumentMetadataItem¶
Описывает метаданные документа.
message DocumentMetadataItem {
required string Id = 1;
required DocumentMetadataItemType Type = 2;
required bool IsRequired = 3;
required DocumentMetadataSource Source = 4;
}
enum DocumentMetadataItemType {
String = 0; // строка
Integer = 1; // целое число
Decimal = 2; // число с десятичной точкой
Date = 3; // дата в формате ДД.ММ.ГГГГ
Time = 4; // время в формате чч:мм
}
enum DocumentMetadataSource {
Xml = 0; // метаданные содержатся в теле документа
User = 1; // метаданные передаются в метод API отдельными полями
}
Id - идентификатор
Type - тип значения
IsRequired - обязательность
Source - способ передачи метаданных