Перейти к содержанию

Смарт-действия ЭДО: Диадок и СБИС

Документ охватывает все смарт-действия, связанные с электронным документооборотом через Диадок и СБИС. Группа действий: «Работа с ЭДО»

Терминология. Интеграция настраивается для конкретного клиента. Все стороны, с которыми клиент обменивается документами — это контрагенты, независимо от направления передачи.


Архитектурный паттерн

Действия делятся на два паттерна исполнения:

Синхронные — сразу выполняют операцию и возвращают результат. Используются для операций чтения, генерации файлов и проверки статусов.

Через очередь — помещают событие в очередь и возвращают управление. Используются для отправки документов и подписей — операций, требующих гарантированной доставки и повторных попыток при сбое.

МЧД во всех операциях подписания. Параметр МЧД типа string присутствует почти во всех действиях, связанных с подписью. Передаётся как JSON. Поддерживает подписание по машиночитаемой доверенности (63-ФЗ).


Диадок

MCP-группа: EdiDiadoc = 16 («ЭДО Диадок») Тип сервиса: ServiceType.Diadoc = 7 Таблица учётных данных: DiadocServiceCredentials Фоновая синхронизация: SyncEdocumentsFromDiadocJob

Форма настройки сервиса Diadoc в AdminSPA: подключение, BoxId, ClientId, API Url


Диадок — Отправить электронный документ

Enum: SendEdocument = 113 Исполнение: через очередь

Что делает и зачем: Отправляет файл из хранилища 1Ф контрагенту через Диадок. Основная точка входа для исходящего документооборота. Поддерживает счета-фактуры, УПД, акты и неформализованные документы. Можно запросить ответную подпись от контрагента.

# Параметр Тип Обяз. Описание
0 ID файла FileFromLibrary Ссылка на файл в хранилище 1Ф, который будет отправлен контрагенту. Для формализованных документов (УПД, СФ) должен быть корректный XML в формате ФНС; для неформализованных — любой формат
1 ИНН контрагента string ИНН организации-получателя. Используется Диадок для поиска ящика контрагента и маршрутизации документа
2 КПП контрагента string КПП организации-получателя. Совместно с ИНН однозначно определяет юридическое лицо или его обособленное подразделение
3 Нужна ли ответная подпись bool Если true — документ отправляется с требованием ответной подписи от контрагента. Актуально для актов, УПД и других двусторонних документов
4 Тип документа string Тип документа по классификатору Диадок (например: UniversalTransferDocument, Invoice, Nonformalized). Определяет схему валидации и правила маршрутизации в ЭДО
5 Сумма decimal Сумма документа. Обязательна для счетов-фактур и платёжных документов; подставляется в метаданные при отправке
6 ID сервиса int? Идентификатор настройки подключения к Диадок из справочника сервисов 1Ф. Если не указан — используется настройка по умолчанию из конфигурации
7 Уникальный идентификатор организации string BoxId ящика отправителя в системе Диадок. Используется когда у организации несколько ящиков (разные юридические лица или подразделения). Если не указан — берётся ящик из настроек сервиса
8 Подпись string Электронная подпись документа в формате Base64 (CMS/PKCS#7). Если не передана — используется подпись, сформированная на стороне 1Ф (если была). Заполняется только при серверном подписании вне 1Ф
9 МЧД string Машиночитаемая доверенность в формате JSON. Передаётся когда сотрудник подписывает документ по доверенности, а не собственной ЭП
10 Номер договора string Номер договора, к которому относится отправляемый документ. Заполняется в реквизитах документа для привязки к договорной базе
11 К договору string Номер основного договора при отправке приложений и дополнений к нему. Позволяет Диадок связать документ с родительским договором
12 От (к договору) string Дата основного договора в строковом формате. Используется совместно с параметром «К договору» для полной идентификации договора в реквизитах
13 Исходный ящик string BoxId ящика, от имени которого отправляется документ. Актуален при роуминге или наличии нескольких зарегистрированных ящиков у одной организации
14 Дата документа string Дата составления документа в строковом формате. Подставляется в метаданные при отправке, если не содержится в XML-файле документа
15 Код валюты string Цифровой код валюты по классификатору ОКВ (например: 643 — рубль, 840 — доллар США). Используется при формировании счетов-фактур

Диадок — Получить документ

Enum: ReceiveMissedDocDiadoc = 150 Исполнение: синхронный Возвращает: ничего

Что делает и зачем: Принудительно скачивает конкретный документ от контрагента из Диадок по идентификаторам сообщения и сущности. Нужен когда документ не прилетел автоматически через фоновую синхронизацию — например, из-за сбоя, или когда требуется получить исторический документ вручную.

# Параметр Тип Обяз. Описание
0 MessageId string Идентификатор сообщения в системе Диадок (GUID). Каждый обмен документами между ящиками образует сообщение; MessageId — его уникальный идентификатор
1 EntityId string Идентификатор конкретной сущности внутри сообщения (GUID). Сообщение может содержать несколько сущностей (файл документа, подписи, извещения); EntityId указывает на нужную
2 ServiceId int? Идентификатор настройки подключения к Диадок

Диадок — Получить контрагентов

Enum: GetCounteragents = 164 Исполнение: синхронный Возвращает: string (JSON-массив)

Что делает и зачем: Возвращает список контрагентов, зарегистрированных в ящике Диадок. Используется для наполнения справочников в 1Ф, проверки наличия ЭДО-подключения с контрагентом перед отправкой документа.

# Параметр Тип Обяз. Описание
0 ID сервиса int Идентификатор настройки подключения к Диадок. Обязателен — при нескольких ящиках нужно явно указать из какого запрашивать список контрагентов

Диадок — Сохранить контент электронного документа

Enum: SaveEdocumentContentByLink = 114 Исполнение: синхронный, контекст EdocumentLink Возвращает: FileFromLibrary

Что делает и зачем: Скачивает XML/бинарное содержимое электронного документа от контрагента из Диадок и сохраняет его как файл в хранилище 1Ф. Результат — ссылка на файл, которую можно прикрепить к задаче или карточке.

# Параметр Тип Обяз. Описание
0 ID ссылки на электронный документ int Идентификатор записи EdocumentLink — внутренней ссылки, связывающей документ в Диадок с объектами системы 1Ф. Через неё определяются MessageId, EntityId и другие реквизиты для скачивания
1 ID сервиса int? Идентификатор настройки подключения к Диадок

Диадок — Сохранить печатную форму электронного документа

Enum: SaveEdocumentPrintFormByLink = 115 Исполнение: синхронный, контекст EdocumentLink Возвращает: FileFromLibrary

Что делает и зачем: Скачивает PDF-печатную форму документа из Диадок и сохраняет в хранилище 1Ф. Нужен когда к карточке задачи или документа необходимо приложить человекочитаемую версию ЭД.

# Параметр Тип Обяз. Описание
0 ID ссылки на электронный документ int Идентификатор записи EdocumentLink. Диадок генерирует печатную форму на своей стороне по данным из XML
1 ID сервиса int? Идентификатор настройки подключения к Диадок

Диадок — Сохранить архив с файлами подписей электронного документа

Enum: SaveEdocumentArchiveFormByLink = 127 Исполнение: синхронный, контекст EdocumentLink Возвращает: FileFromLibrary (ZIP-архив)

Что делает и зачем: Скачивает ZIP-архив с файлом документа и всеми подписями к нему. Флаг «Весь документооборот» (true по умолчанию) выгружает полную цепочку: оба титула, извещения, подписи всех сторон. Нужен для долгосрочного архивного хранения ЭД.

# Параметр Тип Обяз. Описание
0 ID ссылки на электронный документ int Идентификатор записи EdocumentLink
1 ID сервиса int? Идентификатор настройки подключения к Диадок
2 Весь документооборот bool? Если true (по умолчанию) — в архив включается полный документооборот: файлы обеих сторон, все служебные документы (извещения, титулы, подписи). Если false — только основной файл с подписями

Диадок — Сохранить контент аннулирования электронного документа

Enum: SaveRevocationFile = 143 Исполнение: синхронный, контекст EdocumentLink Возвращает: FileFromLibrary

Что делает и зачем: Скачивает и сохраняет в хранилище 1Ф файл аннулирования, присланного контрагентом. Используется как подготовительный шаг перед ответом на запрос аннулирования — после этого файл передаётся в действие «Отправить подписанный файл об аннулировании».

Примечание. Рекомендуется вызывать в обработчике события change Диадок: именно в нём приходит уведомление о том, что контрагент инициировал аннулирование.

# Параметр Тип Обяз. Описание
0 ID ссылки на электронный документ int Идентификатор записи EdocumentLink документа, по которому контрагент прислал запрос аннулирования
1 ID сервиса int? Идентификатор настройки подключения к Диадок

Диадок — Сгенерировать пустой xml титул покупателя для документа

Enum: GenerateXmlBuyerTitle = 131 Исполнение: синхронный Возвращает: FileFromLibrary (пара ID файла + ID версии)

Что делает и зачем: Создаёт XML-файл ответного титула покупателя для УПД или акта — заготовку для подписи со стороны клиента. Параметры JSON позволяют подставить реквизиты организации. Используется в двустороннем документообороте, когда клиент должен сформировать и подписать свою часть.

# Параметр Тип Обяз. Описание
0 ID файла FileFromLibrary Ссылка на исходный документ контрагента (УПД или акт), для которого генерируется ответный титул. На основании его структуры Диадок формирует схему титула
1 ID сервиса int? Идентификатор настройки подключения к Диадок
2 Параметры для титула в формате JSON string JSON-объект с реквизитами клиента для заполнения полей титула (ИНН, наименование, ФИО и должность подписанта, дата принятия)
3 Параметры для титула в формате JSON (формат 970) string JSON-объект с реквизитами для титула по формату приказа ФНС № ЕД-7-26/970@ (действует с 2023 года). Используется когда документ контрагента создан в новом формате

Диадок — Сгенерировать xml титул для документа

Enum: GenerateXmlTitle = 132 Исполнение: синхронный Возвращает: FileFromLibrary (пара ID файла + ID версии)

Что делает и зачем: Аналог предыдущего, но принимает уже готовый XML-файл с данными вместо JSON-параметров. Используется когда XML-данные для титула формируются отдельным шагом автоматизации.

# Параметр Тип Обяз. Описание
0 ID файла FileFromLibrary Ссылка на исходный документ контрагента, для которого генерируется XML-титул
1 ID xml файла FileFromLibrary Ссылка на XML-файл с данными для заполнения титула. Должен соответствовать схеме XSD ответного титула Диадок
2 ID сервиса int? Идентификатор настройки подключения к Диадок

Диадок — Ответить титулом на электронный документ

Enum: AttachTitleSignature = 133 Исполнение: через очередь

Что делает и зачем: Подписывает сформированный XML-титул и отправляет его контрагенту в ответ на полученный документ. Завершающий шаг двустороннего документооборота — клиент подтверждает приёмку товара или услуги.

# Параметр Тип Обяз. Описание
0 ID файла FileFromLibrary Ссылка на исходный документ контрагента, на который отправляется ответный титул
1 ID xml файла титула FileFromLibrary Ссылка на XML-файл ответного титула, сформированный действием «Сгенерировать xml титул»
2 ID сервиса int? Идентификатор настройки подключения к Диадок
3 Подпись string Электронная подпись XML-файла титула в формате Base64 (CMS/PKCS#7 detached)
4 МЧД string Машиночитаемая доверенность в формате JSON

Диадок — Создать файл отказа от подписи

Enum: GenerateRejectionSignature Исполнение: синхронный Возвращает: FileFromLibrary

Что делает и зачем: Формирует XML-файл отказа от подписи документа — когда клиент не согласен подписывать документ контрагента. Результат передаётся в действие «Отправить подписанный отказ от подписи».

# Параметр Тип Обяз. Описание
0 ID файла FileFromLibrary Ссылка на документ контрагента, от подписи которого отказывается клиент
1 Причина отказа string Текстовое обоснование отказа от подписания (например: «Не соответствует условиям договора», «Обнаружены ошибки в реквизитах»). Отображается контрагенту при получении отказа
2 ID сервиса int? Идентификатор настройки подключения к Диадок

Диадок — Отправить подписанный отказ от подписи

Enum: AttachRejectionSignature Исполнение: через очередь Используется совместно с: «Диадок — Создать файл отказа от подписи»

Что делает и зачем: Подписывает XML-файл отказа и отправляет его контрагенту. Контрагент получает уведомление, что его документ не будет подписан.

# Параметр Тип Обяз. Описание
0 ID файла FileFromLibrary Ссылка на исходный документ контрагента, от подписи которого отказывается клиент
1 ID файла отказа FileFromLibrary Ссылка на XML-файл отказа, сформированный действием «Создать файл отказа от подписи»
2 ID сервиса int? Идентификатор настройки подключения к Диадок
3 Подпись string Электронная подпись XML-файла отказа в формате Base64
4 МЧД string Машиночитаемая доверенность в формате JSON

Диадок — Создать файл отказа от подписи (Universal)

Enum: GenerateRejectionSignatureUniversal = 206 Исполнение: синхронный Возвращает: FileFromLibrary

Что делает и зачем: Расширенная версия базового действия. Принимает явный отпечаток сертификата, что позволяет указать конкретный ключ подписи при наличии нескольких сертификатов.

# Параметр Тип Обяз. Описание
0 ID файла FileFromLibrary Ссылка на документ контрагента, от подписи которого отказывается клиент
1 Причина отказа string Текстовое обоснование отказа. Необязателен, но рекомендуется для информирования контрагента
2 Отпечаток сертификата string Отпечаток (thumbprint) сертификата ЭП в формате HEX — указывает каким ключом формируется файл отказа
3 ID сервиса int? Идентификатор настройки подключения к Диадок

Диадок — Отправить подписанный отказ от подписи (Universal)

Enum: AttachRejectionSignatureUniversal = 202 Исполнение: через очередь Используется совместно с: «Диадок — Создать файл отказа от подписи (Universal)»

Что делает и зачем: Подписывает и отправляет контрагенту отказ от подписи. Расширенная версия — позволяет передать причину отказа напрямую в параметрах.

# Параметр Тип Обяз. Описание
0 ID файла FileFromLibrary Ссылка на исходный документ контрагента
1 ID файла отказа FileFromLibrary Ссылка на XML-файл отказа, сформированный действием «Создать файл отказа от подписи (Universal)»
2 ID сервиса int? Идентификатор настройки подключения к Диадок
3 Подпись string Электронная подпись XML-файла отказа в формате Base64
4 Причина отказа string Текстовая причина отказа, включаемая в уведомление контрагенту
5 МЧД string Машиночитаемая доверенность в формате JSON

Диадок — Аннулирование документов

Процедура аннулирования в Диадок двусторонняя и зависит от того, кто является инициатором.

Сценарий A: Аннулирование инициируем МЫ

Порядок шагов:

1. Создать файл аннулирования подписи
2. Отправить подписанный файл соглашения об аннулировании

Сценарий Б: Аннулирование инициирует КОНТРАГЕНТ

Порядок шагов:

1. Сохранить контент аннулирования  ← скачивает файл, присланный контрагентом
   ├─ Согласны → Отправить подписанный файл об аннулировании
   └─ Не согласны → Создать файл отклонения аннулирования
                  → Отправить подписанный отказ от аннулирования

StatusMessage в журнале очередей при аннулировании (v2.267+)

При синхронизации событий аннулирования из Диадок (SyncEdocumentsFromDiadocJob) каждое событие записывается в журнал очередей. Поле StatusMessage содержит человекочитаемую причину, полученную из SDK Диадок.

Событие Что хранится в StatusMessage
Мы инициировали аннулирование — запрос ушёл Наш текст причины аннулирования
Контрагент согласился с аннулированием Пусто / нет текста
Контрагент отказал в аннулировании Текст причины отказа контрагента

До v2.267 при обработке отказа контрагента в аннулировании в StatusMessage ошибочно записывалась наша причина запроса вместо причины отказа контрагента, а записи в журнале очередей дублировались. Исправлено в v2.267.

Диагностика: если в журнале по событию «Отказ в аннулировании» в поле StatusMessage записан текст, который явно написан от имени инициатора (нашей стороны) — это признак запуска на версии до v2.267 или некорректного состояния.


Диадок — Создать файл аннулирования подписи

Enum: GenerateRevocationSignature Исполнение: синхронный Возвращает: FileFromLibrary Сценарий: инициируем аннулирование МЫ

Что делает и зачем: Формирует XML-файл запроса на аннулирование ранее подписанного документа. Первый шаг когда клиент сам инициирует аннулирование. Результат передаётся в действие «Отправить подписанный файл соглашения об аннулировании».

# Параметр Тип Обяз. Описание
0 ID файла FileFromLibrary Ссылка на аннулируемый документ
1 Причина аннулирования string Текстовое пояснение причины аннулирования (например: «Ошибка в реквизитах», «Документ подписан ошибочно»). Отображается контрагенту при получении запроса
2 ID сервиса int? Идентификатор настройки подключения к Диадок

Диадок — Отправить подписанный файл соглашения об аннулировании

Enum: AttachRevocationSignature Исполнение: через очередь Используется совместно с: «Диадок — Создать файл аннулирования подписи» Сценарий: инициируем аннулирование МЫ

Что делает и зачем: Подписывает и отправляет контрагенту запрос на аннулирование. После отправки контрагент должен либо согласиться с аннулированием, либо отклонить.

# Параметр Тип Обяз. Описание
0 ID файла FileFromLibrary Ссылка на аннулируемый документ
1 ID файла аннулирования FileFromLibrary Ссылка на XML-файл запроса аннулирования, сформированный действием «Создать файл аннулирования подписи»
2 ID сервиса int? Идентификатор настройки подключения к Диадок
3 Подпись string Электронная подпись XML-файла аннулирования в формате Base64
4 МЧД string Машиночитаемая доверенность в формате JSON

Диадок — Отправить подписанный файл об аннулировании

Enum: AttachRevocationRequestedSignature = 144 Исполнение: через очередь Используется совместно с: «Диадок — Сохранить контент аннулирования электронного документа» Сценарий: аннулирование инициировал КОНТРАГЕНТ, мы СОГЛАШАЕМСЯ

Что делает и зачем: Отправляет в Диадок подписанный файл аннулирования — ответ на запрос контрагента. Файл аннулирования предварительно скачивается действием «Сохранить контент аннулирования» и сохраняется в хранилище 1Ф. После отправки документ считается аннулированным с обеих сторон.

# Параметр Тип Обяз. Описание
0 ID файла FileFromLibrary Ссылка на аннулируемый документ
1 ID файла аннулирования FileFromLibrary Ссылка на файл аннулирования, скачанный действием «Сохранить контент аннулирования электронного документа»
2 ID сервиса int? Идентификатор настройки подключения к Диадок
3 Подпись string Электронная подпись файла аннулирования в формате Base64
4 МЧД string Машиночитаемая доверенность в формате JSON

Диадок — Создать файл отклонения аннулирования подписи

Enum: GenerateRejectRevocationSignature = 145 Исполнение: синхронный Возвращает: FileFromLibrary Сценарий: аннулирование инициировал КОНТРАГЕНТ, мы НЕ СОГЛАШАЕМСЯ

Что делает и зачем: Формирует XML-файл отклонения аннулирования — когда контрагент прислал запрос на аннулирование, а клиент с ним не согласен. Документ остаётся юридически действующим.

# Параметр Тип Обяз. Описание
0 ID файла FileFromLibrary Ссылка на документ, по которому пришёл запрос аннулирования от контрагента
1 Причина отклонения string Текстовое обоснование отказа от аннулирования (например: «Документ исполнен», «Аннулирование не согласовано»). Отображается контрагенту
2 ID сервиса int? Идентификатор настройки подключения к Диадок

Диадок — Отправить подписанный отказ от аннулирования

Enum: AttachRevocationRejectionSignature Исполнение: через очередь Сценарий: аннулирование инициировал КОНТРАГЕНТ, мы НЕ СОГЛАШАЕМСЯ

Что делает и зачем: Отправляет подписанный отказ контрагенту. Документооборот остаётся в силе.

# Параметр Тип Обяз. Описание
0 ID файла FileFromLibrary Ссылка на исходный документ
1 ID файла отказа FileFromLibrary Ссылка на XML-файл отклонения аннулирования, сформированный предыдущим действием
2 ID сервиса int? Идентификатор настройки подключения к Диадок
3 Подпись string Электронная подпись XML-файла отказа в формате Base64
4 МЧД string Машиночитаемая доверенность в формате JSON

Диадок — Создать файл отклонения аннулирования подписи (Universal)

Enum: GenerateRevocationRejectionSignatureUniversal = 205 Исполнение: синхронный Возвращает: FileFromLibrary

Что делает и зачем: Расширенная версия: дополнительно принимает явный отпечаток сертификата.

# Параметр Тип Обяз. Описание
0 ID файла FileFromLibrary Ссылка на документ, по которому пришёл запрос аннулирования от контрагента
1 Причина отказа string Текстовое обоснование отклонения аннулирования
2 Отпечаток сертификата string Отпечаток сертификата ЭП в формате HEX
3 ID сервиса int? Идентификатор настройки подключения к Диадок

Диадок — Отправить подписанный отказ от запроса аннулирования (Universal)

Enum: AttachRevocationRejectionSignatureUniversal = 203 Исполнение: через очередь

# Параметр Тип Обяз. Описание
0 ID файла FileFromLibrary Ссылка на исходный документ
1 ID файла отказа FileFromLibrary Ссылка на XML-файл отклонения аннулирования
2 ID сервиса int? Идентификатор настройки подключения к Диадок
3 Подпись string Электронная подпись XML-файла отказа в формате Base64
4 Причина отказа string Текстовая причина отклонения запроса на аннулирование
5 МЧД string Машиночитаемая доверенность в формате JSON

Диадок — Создать файл извещения о получении

Enum: GenerateInvoiceReceiptXml = 148 Исполнение: синхронный Возвращает: FileFromLibrary (пара ID файла + ID версии)

Что делает и зачем: Формирует служебный XML-файл «извещение о получении» для счёта-фактуры от контрагента. По законодательству (НК РФ) получатель СФ обязан отправить это извещение не позднее следующего рабочего дня. В большинстве случаев (около 90%) извещение подписывается автоматически самим Диадок при авторизации пользователя — данное действие используется только когда требуется явное серверное или ручное подписание.

# Параметр Тип Обяз. Описание
0 ID файла FileFromLibrary Ссылка на полученный от контрагента счёт-фактуру или корректировочный СФ, для которого формируется извещение
1 ID сервиса int? Идентификатор настройки подключения к Диадок

Диадок — Отправить подписанный файл извещения о получении (Universal)

Enum: AttachInvoiceReceiptSignatureUniversal = 204 Исполнение: через очередь Используется совместно с: «Диадок — Создать файл извещения о получении»

Что делает и зачем: Подписывает и отправляет контрагенту извещение о получении счёта-фактуры. Завершает обязательный технологический обмен по СФ.

# Параметр Тип Обяз. Описание
0 ID файла FileFromLibrary Ссылка на исходный счёт-фактуру от контрагента
1 ID файла извещения FileFromLibrary Ссылка на XML-файл извещения, сформированный действием «Создать файл извещения о получении»
2 ID сервиса int? Идентификатор настройки подключения к Диадок
3 Подпись string Электронная подпись XML-файла извещения в формате Base64
4 Комментарий string Произвольный текстовый комментарий к извещению (необязательный реквизит)
5 МЧД string Машиночитаемая доверенность в формате JSON

Диадок — Получить идентификатор МЧД

Enum: GetUserMCHDDiadoc = 165 Исполнение: синхронный Возвращает: string (идентификатор МЧД)

Что делает и зачем: По идентификатору пользователя в Диадок возвращает идентификатор его активной машиночитаемой доверенности. Нужен как подготовительный шаг: полученный идентификатор передаётся в операции подписания как параметр МЧД.

# Параметр Тип Обяз. Описание
0 ID пользователя string Строковый идентификатор пользователя в системе Диадок (не числовой ID пользователя в 1Ф). Можно получить из профиля пользователя в Диадок или через API
1 ID сервиса int? Идентификатор настройки подключения к Диадок

Диадок — Получить файлы МЧД

Enum: GetMCHDFilesDiadoc = 166 Исполнение: синхронный Возвращает: сопоставление ID файлов

Что делает и зачем: По идентификатору МЧД и ID сообщения возвращает сопоставление файлов доверенности контрагента, приложенных к сообщению в Диадок. Используется для получения и сохранения файлов МЧД контрагента, отправившего документ.

# Параметр Тип Обяз. Описание
0 ID МЧД string Идентификатор машиночитаемой доверенности контрагента в реестре ФНС
1 ID сообщения string MessageId сообщения в Диадок, в контексте которого пришёл документ с МЧД контрагента
2 ID сервиса int? Идентификатор настройки подключения к Диадок

Диадок — Получить статус МЧД

Enum: GetMCHDStatusDiadoc = 171 Исполнение: синхронный Возвращает: string (статус МЧД)

Что делает и зачем: Проверяет актуальный статус МЧД контрагента, приложенной к входящему документу. Позволяет убедиться, что доверенность была действительна на момент подписания.

# Параметр Тип Обяз. Описание
0 MessageId string Идентификатор сообщения Диадок, в рамках которого прикреплена МЧД контрагента
1 ContentId string Идентификатор сущности (Entity) внутри сообщения, содержащей файл МЧД контрагента
2 ID сервиса int? Идентификатор настройки подключения к Диадок

Диадок — Синхронизировать статусы документов в сообщении

Enum: SyncMessageStatus Исполнение: синхронный Возвращает: string (JSON со статусами документов)

Что делает и зачем: Запрашивает актуальные статусы документов по списку MessageId из Диадок и возвращает сырой JSON. Используется для ручной или полуавтоматической актуализации состояния документооборота.

Ключевое отличие от аналогичного действия СБИС. Синхронизация Диадок возвращает только данные — полученный JSON необходимо разобрать вручную, сверить статусы с тем, что хранится в 1Ф, и самостоятельно запустить автоматизацию в зависимости от результата. Синхронизация СБИС, напротив, делает всё это автоматически: сравнивает статусы с таблицей EdocumentSbisLink и сама ставит в очередь события change по документам, где статусы расходятся.

# Параметр Тип Обяз. Описание
0 Список ID сообщений string[] Массив MessageId сообщений Диадок, статусы документов в которых нужно запросить. Позволяет обновить сразу несколько сообщений одним вызовом
1 ID сервиса int? Идентификатор настройки подключения к Диадок

Диадок — Получить тэги документа

Enum: GetTagsFromDocument = 142 Исполнение: синхронный Возвращает: теги документа (пары ключ-значение)

Что делает и зачем: Возвращает теги документа из Диадок — произвольные пары ключ-значение. Используется для передачи дополнительных метаданных из Диадок в 1Ф при обработке входящих документов.

# Параметр Тип Обяз. Описание
0 ID ссылки на электронный документ int Идентификатор записи EdocumentLink — по нему определяется документ в Диадок, теги которого нужно получить
1 ID сервиса int? Идентификатор настройки подключения к Диадок

СБИС

MCP-группа: EdiSbis = 17 («ЭДО СБИС») Тип сервиса: ServiceType.Sbis = 14 Таблица учётных данных: SbisCredentials Таблица ссылок: EdocumentSbisLink Фоновая синхронизация: SyncEdocumentsFromSbisJob

Форма настройки сервиса СБИС в AdminSPA: подключение, ИНН, КПП, уникальный идентификатор

Важный нюанс по аннулированию в СБИС. Файлы аннулирования, инициированного контрагентом, приходят в событии receive и скачиваются действием «СБИС — Сохранить контент электронного документа». Отказ контрагента от аннулирования, запрошенного клиентом, приходит как новый документ со статусом finished.


СБИС — Отправить электронный документ

Enum: SbisSendEdocument = 162 Исполнение: через очередь

Что делает и зачем: Отправляет файл контрагенту через СБИС. В отличие от Диадок, требует уникальный идентификатор контрагента в системе СБИС (помимо ИНН/КПП). Поддерживает запрос ответной подписи и указание типа документа.

# Параметр Тип Обяз. Описание
0 ID файла FileFromLibrary Ссылка на файл в хранилище 1Ф, который будет отправлен контрагенту
1 ИНН контрагента string ИНН организации-получателя
2 КПП контрагента string КПП организации-получателя
3 Уникальный идентификатор контрагента string Внутренний идентификатор контрагента в системе СБИС. Необходим для точной адресации — по ИНН/КПП может быть зарегистрировано несколько ящиков. Берётся из справочника контрагентов СБИС
4 Нужна ли ответная подпись bool Если true — документ отправляется с запросом ответной подписи от контрагента
5 Тип документа string Тип документа по классификатору СБИС (например: ДоговорВх, АктВыпуска, ФактураВх). Определяет маршрутизацию и правила обработки
6 Сумма decimal Сумма документа. Используется в метаданных и для фильтрации в реестре СБИС
7 ID сервиса int? Идентификатор настройки подключения к СБИС из справочника сервисов 1Ф

СБИС — Создать файлы подтверждения подписи

Enum: SbisGenerateConfirmSignature = 177 Исполнение: синхронный Возвращает: List<SbisFileWithAttachment> (JSON)

Что делает и зачем: Формирует служебные файлы подтверждения подписи в форматах СБИС и возвращает их в виде JSON. Обязателен как предварительный шаг перед «Отправить подписание» — если исходный документ находится в формате XML. Без этого шага подписание не пройдёт.

# Параметр Тип Обяз. Описание
0 ID файла FileFromLibrary Ссылка на XML-документ, для которого необходимо сформировать файлы подтверждения
1 Причина string Текстовый комментарий к подтверждению подписи
2 Отпечаток сертификата string Отпечаток (thumbprint) сертификата ЭП в формате HEX
3 ID сервиса int? Идентификатор настройки подключения к СБИС
4 МЧД string Машиночитаемая доверенность в формате JSON

СБИС — Отправить подписание

Enum: SbisAttachSignature = 154 Исполнение: через очередь Используется совместно с: «СБИС — Создать файлы подтверждения подписи» (если исходник в XML)

Что делает и зачем: Отправляет подписание сразу по всем документам как пакет (передаётся массив, а не по каждому документу отдельно). Если исходный документ был в XML — предварительно должно быть выполнено действие «Создать файлы подтверждения подписи», результат которого передаётся в этот параметр. Если документ не в XML — JSON для отправки собирается самостоятельно.

# Параметр Тип Обяз. Описание
0 Файлы (id, versionId, attachmentId) List<SbisFileWithAttachment> Список файлов для подписания в формате СБИС. Каждый элемент содержит: FileId (ID файла в хранилище 1Ф), VersionId (версия), AttachmentId (ID вложения в СБИС), DocumentId (ID документа в СБИС). Источник данных: для XML-документов — результат действия «Создать файлы подтверждения подписи» (SbisGenerateConfirmSignature=177); для прочих форматов JSON собирается автоматически из метаданных документа в СБИС
1 ID сервиса int? Идентификатор настройки подключения к СБИС
2 Подпись string Электронная подпись в формате Base64
3 МЧД string Машиночитаемая доверенность в формате JSON

СБИС — Создать файлы отказа от подписи

Enum: GenerateRejectionSbisSignature = 168 Исполнение: синхронный Возвращает: List<SbisFileWithAttachment> (JSON)

Что делает и зачем: Формирует JSON-файлы отказа от подписи документа. Результат передаётся в действие «Отправить подписанный отказ от подписи».

# Параметр Тип Обяз. Описание
0 ID файла FileFromLibrary Ссылка на документ контрагента, от подписи которого отказывается клиент
1 Причина отказа string Текстовое обоснование отказа от подписания
2 Отпечаток сертификата string Отпечаток сертификата ЭП в формате HEX
3 ID сервиса int? Идентификатор настройки подключения к СБИС
4 МЧД string Машиночитаемая доверенность в формате JSON

СБИС — Отправить подписанный отказ от подписи

Enum: SbisAttachRejectSignature = 155 Исполнение: через очередь Используется совместно с: «СБИС — Создать файлы отказа от подписи»

Что делает и зачем: Подписывает и отправляет контрагенту отказ от подписи документа. Контрагент получает уведомление, что его документ не будет подписан.

# Параметр Тип Обяз. Описание
0 Файлы (id, versionId, attachmentId) List<SbisFileWithAttachment> Список файлов отказа от подписи в формате СБИС, полученных действием «Создать файлы отказа от подписи»
1 ID сервиса int? Идентификатор настройки подключения к СБИС
2 Подпись string Электронная подпись в формате Base64
3 Комментарий string Произвольный текстовый комментарий к отказу
4 МЧД string Машиночитаемая доверенность в формате JSON

СБИС — Аннулирование документов

Сценарий A: Аннулирование инициируем МЫ

Порядок шагов:

1. Создать файл аннулирования подписи
2. Отправить подписанные соглашения об аннулировании
   ↓ контрагент соглашается → документ аннулирован
   ↓ контрагент отказывает → приходит новый документ со статусом finished

Сценарий Б: Аннулирование инициирует КОНТРАГЕНТ

Порядок шагов:

Файлы аннулирования приходят в событии receive
→ скачиваются действием «СБИС — Сохранить контент электронного документа»
   ├─ Соглашаемся → Отправить соглашение об аннулировании
   └─ Не соглашаемся → Создать файлы отказа от аннулирования
                      → Отправить отказ от аннулирования

СБИС — Создать файл аннулирования подписи

Enum: SbisGenerateRevocationTitle = 169 Исполнение: синхронный Возвращает: List<SbisFileWithAttachment> Сценарий: инициируем аннулирование МЫ

Что делает и зачем: Формирует файл запроса на аннулирование ранее подписанного документа. Первый шаг когда клиент сам инициирует аннулирование. Результат передаётся в действие «Отправить подписанные соглашения об аннулировании».

# Параметр Тип Обяз. Описание
0 ID файла FileFromLibrary Ссылка на аннулируемый документ
1 Причина аннулирования string Текстовое пояснение причины аннулирования. Отображается контрагенту
2 Отпечаток сертификата string Отпечаток сертификата ЭП инициатора аннулирования
3 ID сервиса int? Идентификатор настройки подключения к СБИС
4 МЧД string Машиночитаемая доверенность в формате JSON

СБИС — Отправить подписанные соглашения об аннулировании

Enum: SbisAttachRevocationSignature = 159 Исполнение: через очередь Используется совместно с: «СБИС — Создать файл аннулирования подписи» Сценарий: инициируем аннулирование МЫ

Что делает и зачем: Подписывает и отправляет контрагенту запрос на аннулирование. После отправки контрагент должен либо согласиться, либо отклонить.

# Параметр Тип Обяз. Описание
0 Файлы List<SbisFileWithAttachment> Список файлов аннулирования в формате СБИС, полученный из действия «Создать файл аннулирования подписи»
1 ID сервиса int? Идентификатор настройки подключения к СБИС
2 Подпись string Электронная подпись в формате Base64
3 Комментарий string Произвольный текстовый комментарий к запросу аннулирования
4 МЧД string Машиночитаемая доверенность в формате JSON

СБИС — Отправить соглашение об аннулировании

Enum: SbisAttachRevocationRequestedSignature = 167 Исполнение: через очередь Сценарий: аннулирование инициировал КОНТРАГЕНТ, мы СОГЛАШАЕМСЯ

Что делает и зачем: Подтверждает аннулирование, запрошенное контрагентом. Файлы аннулирования приходят от контрагента в событии receive и предварительно скачиваются действием «СБИС — Сохранить контент электронного документа».

# Параметр Тип Обяз. Описание
0 Файлы (id, versionId, attachmentId) List<SbisFileWithAttachment> Список файлов аннулирования, пришедших от контрагента в событии receive и скачанных действием «СБИС — Сохранить контент электронного документа»
1 ID сервиса int? Идентификатор настройки подключения к СБИС
2 Подпись string Электронная подпись в формате Base64
3 Комментарий string Произвольный текстовый комментарий
4 МЧД string Машиночитаемая доверенность в формате JSON

СБИС — Создать файлы отказа от аннулирования

Enum: GenerateRevocationRejectionSbisSignature = 170 Исполнение: синхронный Возвращает: List<SbisFileWithAttachment> Сценарий: аннулирование инициировал КОНТРАГЕНТ, мы НЕ СОГЛАШАЕМСЯ

Что делает и зачем: Формирует файл для отказа от аннулирования, запрошенного контрагентом. Документ остаётся юридически действующим.

# Параметр Тип Обяз. Описание
0 ID файла FileFromLibrary Ссылка на документ, по которому контрагент прислал запрос аннулирования
1 Причина отказа string Текстовое обоснование отказа от аннулирования
2 Отпечаток сертификата string Отпечаток сертификата ЭП в формате HEX
3 ID сервиса int? Идентификатор настройки подключения к СБИС
4 МЧД string Машиночитаемая доверенность в формате JSON

СБИС — Отправить отказ от аннулирования

Enum: SbisAttachRevocationRejectionSignature = 160 Исполнение: через очередь Сценарий: аннулирование инициировал КОНТРАГЕНТ, мы НЕ СОГЛАШАЕМСЯ

Что делает и зачем: Отправляет контрагенту подписанный отказ от аннулирования. Документ остаётся в силе.

# Параметр Тип Обяз. Описание
0 Файлы (id, versionId, attachmentId) List<SbisFileWithAttachment> Список файлов отказа от аннулирования, полученный из действия «Создать файлы отказа от аннулирования»
1 ID сервиса int? Идентификатор настройки подключения к СБИС
2 Подпись string Электронная подпись в формате Base64
3 Комментарий string Произвольный текстовый комментарий к отказу
4 МЧД string Машиночитаемая доверенность в формате JSON

СБИС — Создать файл извещения о получении

Enum: GenerateInvoiceSbis = 174 Исполнение: синхронный Возвращает: List<SbisFileWithAttachment>

Что делает и зачем: Формирует XML-файл извещения о получении документа от контрагента в форматах СБИС.

# Параметр Тип Обяз. Описание
0 ID файла FileFromLibrary Ссылка на полученный от контрагента документ (счёт-фактура или КСФ), для которого формируется извещение
1 Отпечаток сертификата string Отпечаток сертификата ЭП клиента, которым будет подписано извещение
2 ID сервиса int? Идентификатор настройки подключения к СБИС
3 МЧД string Машиночитаемая доверенность в формате JSON

СБИС — Отправить подписанное извещение о получении

Enum: SbisAttachInvoiceSignature = 175 Исполнение: через очередь Используется совместно с: «СБИС — Создать файл извещения о получении»

Что делает и зачем: Подписывает и отправляет извещение о получении контрагенту. Завершает обязательный технологический обмен.

# Параметр Тип Обяз. Описание
0 Файлы List<SbisFileWithAttachment> Список файлов извещения, полученный из действия «Создать файл извещения о получении»
1 ID сервиса int? Идентификатор настройки подключения к СБИС
2 Подпись string Электронная подпись в формате Base64
3 Комментарий string Произвольный текстовый комментарий к извещению
4 МЧД string Машиночитаемая доверенность в формате JSON

СБИС — Сохранить контент электронного документа

Enum: SbisSaveDocumentContent = 156 Исполнение: синхронный, контекст EdocumentSbisLink Возвращает: FileFromLibrary

Что делает и зачем: Скачивает содержимое электронного документа из СБИС и сохраняет в хранилище 1Ф. Используется также для скачивания файлов аннулирования, присланных контрагентом в событии receive.

# Параметр Тип Обяз. Описание
0 ID ссылки на электронный документ int Идентификатор записи EdocumentSbisLink — внутренней ссылки, связывающей документ в СБИС с объектами системы 1Ф
1 ID сервиса int? Идентификатор настройки подключения к СБИС

СБИС — Сохранить печатную форму электронного документа

Enum: SbisSavePrintFormByLink = 157 Исполнение: синхронный, контекст EdocumentSbisLink Возвращает: string

Что делает и зачем: Скачивает PDF-печатную форму документа от контрагента из СБИС и сохраняет в хранилище 1Ф.

# Параметр Тип Обяз. Описание
0 ID ссылки на электронный документ int Идентификатор записи EdocumentSbisLink
1 ID сервиса int? Идентификатор настройки подключения к СБИС

СБИС — Сохранить архив документа

Enum: SbisSaveArchiveByLink = 158 Исполнение: синхронный, контекст EdocumentSbisLink Возвращает: string

Что делает и зачем: Скачивает ZIP-архив документа со всеми подписями из СБИС и сохраняет в хранилище 1Ф. Для долгосрочного архивного хранения.

# Параметр Тип Обяз. Описание
0 ID ссылки на электронный документ int Идентификатор записи EdocumentSbisLink
1 ID сервиса int? Идентификатор настройки подключения к СБИС

СБИС — Получить статус МЧД

Enum: GetMCHDStatusSbis = 172 Исполнение: синхронный Возвращает: string (статус)

Что делает и зачем: Проверяет статус машиночитаемой доверенности по её идентификатору. Используется перед подписанием чтобы убедиться что доверенность действительна и не отозвана.

# Параметр Тип Обяз. Описание
0 Идентификатор МЧД string Идентификатор машиночитаемой доверенности в реестре ФНС
1 ID сервиса int? Идентификатор настройки подключения к СБИС

СБИС — Получить архив МЧД

Enum: GetMCHDArchiveSbis = 173 Исполнение: синхронный Возвращает: int? (ID сохранённого файла)

Что делает и зачем: Скачивает архив МЧД из СБИС и сохраняет в хранилище 1Ф. ИНН обеих сторон используются для однозначной идентификации доверенности, так как по одному номеру МЧД может быть несколько доверенностей для разных пар сторон.

# Параметр Тип Обяз. Описание
0 Идентификатор МЧД string Идентификатор машиночитаемой доверенности в реестре ФНС
1 ИНН доверителя string ИНН организации, выдавшей доверенность (работодатель подписанта)
2 ИНН представителя string ИНН физического лица, которому выдана доверенность (подписант)
3 ID сервиса int? Идентификатор настройки подключения к СБИС

СБИС — Получить сертификаты

Enum: SbisGetCertificates = 176 Исполнение: синхронный Возвращает: string (JSON)

Что делает и зачем: Ищет сертификаты электронной подписи в реестре СБИС по реквизитам физлица. Используется для поиска актуального сертификата сотрудника перед подписанием, когда отпечаток сертификата неизвестен заранее.

# Параметр Тип Обяз. Описание
0 ID сервиса int Идентификатор настройки подключения к СБИС. Единственный обязательный параметр; остальные — критерии поиска, передаются в любой комбинации
1 Идентификатор string Идентификатор физлица в системе СБИС (внутренний UUID). Наиболее точный способ поиска
2 Идентификатор в ИС string Идентификатор физлица во внешней информационной системе, зарегистрированной в СБИС (например, идентификатор в кадровой системе клиента)
3 ИНН string ИНН физического лица
4 Телефон string Номер мобильного телефона физлица
5 Email string Адрес электронной почты физлица
6 СНИЛС string СНИЛС физического лица
7 Серия документа string Серия документа, удостоверяющего личность
8 Номер документа string Номер документа, удостоверяющего личность

СБИС — Получить тэги документа

Enum: SbisGetDocumentTags = 161 Исполнение: синхронный Возвращает: теги документа (пары ключ-значение)

Что делает и зачем: Возвращает теги документа из СБИС в виде пар ключ-значение. Используется для получения дополнительных метаданных входящего документа.

# Параметр Тип Обяз. Описание
0 ID ссылки на электронный документ int Идентификатор записи EdocumentSbisLink
1 ID сервиса int? Идентификатор настройки подключения к СБИС

СБИС — Синхронизировать статусы документов в сообщении

Enum: SyncMessageStatusSbis = 188 Исполнение: синхронный Возвращает: string

Что делает и зачем: Принудительно синхронизирует статусы документов по списку MessageId из СБИС. В отличие от аналогичного действия Диадок, работает полностью автоматически: сравнивает статусы, полученные из СБИС, со статусами в таблице EdocumentSbisLink, и по всем документам, где обнаружено расхождение, самостоятельно ставит в очередь событие change. Дальнейшая обработка запускается стандартным механизмом обработки событий — без ручного разбора результата.

Нужен когда автоматическая синхронизация через SyncEdocumentsFromSbisJob не сработала или требуется срочно актуализировать конкретные документы.

# Параметр Тип Обяз. Описание
0 Список ID сообщений string[] Массив MessageId сообщений СБИС, статусы документов в которых нужно синхронизировать. Для документов с расхождением статусов автоматически генерируется событие change
1 ID сервиса int? Идентификатор настройки подключения к СБИС

Сравнительная таблица покрытия функциональности

Какие операции поддерживает каждый провайдер:

Функция Диадок СБИС
Отправка документа ✓ (16 параметров) ✓ (8 параметров)
Сохранить контент
Сохранить печатную форму
Сохранить архив ✓ (+ флаг «весь документооборот»)
Сохранить контент аннулирования ✓ (через SaveDocumentContent)
Генерация XML-титула покупателя ✓ (пустой + с готовым XML)
Ответить титулом
Подтверждение подписи — создать файл ✓ (для XML-документов)
Отказ от подписи — создать файл ✓ + Universal
Отказ от подписи — отправить ✓ + Universal
Аннулирование (мы инициируем) — создать
Аннулирование (мы инициируем) — отправить
Аннулирование (контрагент инициирует) — согласиться
Аннулирование (контрагент инициирует) — отклонить, создать файл ✓ + Universal
Аннулирование (контрагент инициирует) — отклонить, отправить ✓ + Universal
Извещение о получении — создать
Извещение о получении — отправить ✓ Universal
Получить статус МЧД ✓ (по MessageId+ContentId) ✓ (по ID МЧД)
Получить файлы МЧД контрагента
Получить ID МЧД пользователя
Получить архив МЧД ✓ (с ИНН сторон)
Получить сертификаты ✓ (поиск по 8 реквизитам)
Получить теги документа
Получить контрагентов
Получить пропущенный документ
Синхронизировать статусы пакетом ✓ (возврат JSON, ручной разбор) ✓ (авто, массив messageId)

Ключевые особенности интеграции

1. Разные провайдеры — независимые реализации. Диадок и СБИС работают через разные сервисы с раздельными очередями; реализации полностью независимы.

2. Universal = новые версии Диадок-действий. Суффикс Universal означает расширенный набор параметров — явный отпечаток сертификата и/или причина отказа. Базовые версии сохранены для обратной совместимости.

3. SbisFileWithAttachment — специфика СБИС. В СБИС один документ может иметь несколько вложений (AttachmentId). Структура SbisFileWithAttachment с полями FileId, VersionId, AttachmentId, DocumentId — требование API СБИС, которого нет в Диадок.

4. Диадок богаче в отправке. 16 параметров в SendEdocument против 8 в СБИС отражают более развитый API Диадок для формализованных документов.

5. СБИС богаче в поиске и МЧД. Поиск сертификатов по 8 реквизитам физлица, получение архива МЧД с ИНН сторон, пакетная синхронизация — функции без аналогов в Диадок.

6. МЧД во всех операциях подписания. Параметр МЧД (JSON) присутствует во всех действиях, связанных с подписью. Реализует поддержку подписания по машиночитаемой доверенности (63-ФЗ, действует с 2023).

7. Пакетная отправка в СБИС. Действие «Отправить подписание» передаёт массив файлов и отправляет подписание сразу по всем документам — в отличие от Диадок, где каждый документ обрабатывается отдельно.