3.3.4.18. Формирование и отправка Универсальных сообщений
Предупреждение: Формат и методы на промышленном контуре разрешено применять с 01.04.2026.
Универсальные сообщения (УС) в регламенте документооборота служат для информирования о факте получения сообщения, о необходимости исправления ошибок или иных дополнительных сведениях и событиях, имеющих отношение к выставлению, получению и (или) проверке электронных документов, передаваемых через оператора ЭДО.
В случае необходимости Универсальное сообщение может быть сформировано отправителем или получателем документооборота в любой момент времени с момента отправки документа. Количество формируемых и направляемых Универсальных сообщений не ограничено.
Файлы УС по установленному формату ФНС (Проект приказа Федеральной налоговой службы «Об утверждении формата универсального сообщения») можно формировать в системе или импортировать заранее подготовленные вне системы.
Отправка сформированного в системе или импортированного УС в качестве ответа на формализованный документ происходит при вызове метода AutoSendReceive (см. п. 3.3.4.1. Метод AutoSendReceive).
Подписание и добавление МЧД к данному типу сообщениям не предусмотрено.
Классификатор Универсальных сообщений
Универсальные сообщения различаются по своим функциям. Для каждой функции, регламента и типа родительского сообщения, на которое ссылается УС предусмотрен свой тип транзакции.
Табл. Функции УС
|
Функция Универсального сообщения
|
Допустимые коды по классификатору
|
Регламент
|
Transaction Code Родительского сообщения
|
TransactionCode УС
|
Тип документа (значение атрибута Name тега Type в card.xml)
|
|
Извещение о получении (ИоП)
|
1000-1999
|
Invoice
|
Invoice
|
Universal MessageReceiveNotice
|
UniversalMessageReceiveNotice
|
|
CustomerInformation
|
UniversalMessageReceiveNoticeCustomerInformation
| ||||
|
Formalized
|
VendorTitle
|
UniversalMessageReceiveNotice
| |||
|
CustomerTitle
|
UniversalMessageReceiveNoticeCustomerTitle
| ||||
|
Nonformalized
|
MainDocument
|
UniversalMessageReceiveNotice
| |||
|
Уведомление об уточнении (УоУ)
|
2000-2999
|
Invoice
|
Invoice
|
UniversalMessageCorrectionNotice
|
UniversalMessageCorrectionNotice
|
|
CustomerInformation
|
UniversalMessageCorrectionNoticeCustomerInformation
| ||||
|
Formalized
|
VendorTitle
|
UniversalMessageCorrectionNotice
| |||
|
CustomerTitle
|
UniversalMessageCorrectionNoticeCustomerTitle
| ||||
|
Nonformalized
|
MainDocument
|
UniversalMessageCorrectionNotice
| |||
|
Отказ в подписи
|
3000-3999
|
Invoice
|
Invoice
|
UniversalMessageRejectionNotice
|
UniversalMessageRejectionNotice
|
|
CustomerInformation
|
UniversalMessageRejectionNoticeCustomerInformation
| ||||
|
CancellationOffer
|
UniversalMessageRejectionNoticeCancellationOffer
| ||||
|
Formalized
|
VendorTitle
|
Universal MessageRejectionNotice
| |||
|
CustomerTitle
|
UniversalMessageRejectionNoticeCustomerTitle
| ||||
|
CancellationOffer
|
UniversalMessageRejectionNoticeCancellationOffer
| ||||
|
Nonformalized
|
MainDocument
|
Universal MessageRejectionNotice
| |||
|
CancellationOffer
|
UniversalMessageRejectionNoticeCancellationOffer
| ||||
|
Дополнительная информация
|
4000-4999
|
Invoice
|
Invoice
|
UniversalMessageAdditionalInformation
|
UniversalMessageAdditionalInformation
|
|
CustomerInformation
|
UniversalMessageAdditionalInformationCustomerInformation
| ||||
|
CancellationOffer
|
UniversalMessageAdditionalInformationCancellationOffer
| ||||
|
Formalized
|
VendorTitle
|
UniversalMessageAdditionalInformation
| |||
|
CustomerTitle
|
UniversalMessageAdditionalInformationCustomerTitle
| ||||
|
CancellationOffer
|
UniversalMessageAdditionalInformationCancellationOffer
| ||||
|
Nonformalized
|
MainDocument
|
UniversalMessageAdditionalInformation
| |||
|
CancellationOffer
|
UniversalMessageAdditionalInformationCancellationOffer
|
Формирование файла Универсального сообщения
Чтобы сформировать Универсальное сообщение, необходимо воспользоваться одним из двух методов SDK:
1. Автоматическое создание Универсального сообщения
public void UniversalMessage(string docflowId, short status, string transactionCode, string comment), где:
· docflowID - идентификатор документооборота. Обязательно.
· status - статус УС по классификатору. Обязательно.
· transactionCode -код транзакции УС. Коды транзакций вынесены в класс UMTransactionCodes, откуда могут быть использованы для вызова. Обязательно.
· comment -Текст УС. Необязательно.
Примеры:
public void UniversalMessage("60643b5a-e7b1-44c9-9e56-5bb40b7dc584", 1999, UMTransactionCodes.UniversalMessageReceiveNotice)
public void UniversalMessage("60643b5a-e7b1-44c9-9e56-5bb40b7dc585", 2999, UMTransactionCodes.UniversalMessageCorrectionNotice , "Такой номер счет-фактуры уже был")
2. Создание Универсального сообщения с использованием xml.
public void UniversalMessageWithRawData(string docActionXml)
Описание xml:
<?xml version="1.0" encoding="utf-8"?>
<DocumentActions>
<Document InternalId="[DocflowID]" Action="[TransactionCode УС]">
<StatusesUM>
<StatusUM Code='[Статус УС по классификатору]' Description='Произвольный текст' >
<StatusUM Code='[Статус УС по классификатору]' Description='Произвольный текст'>
</StatusesUM>
<AdditionalData>
<AdditionalParameter Name="[По справочнику]" Value="[Значение]" />
</AdditionalData>
</Document>
</DocumentActions>
Пример xml:
<?xml version="1.0" encoding="utf-8"?>
<DocumentActions>
<Document InternalId="8a3b2891-a3d9-420e-bf1c-c2752a6c014e" Action="UniversalMessageCorrectionNotice">
<StatusesUM>
<StatusUM Code='2999' Description='Замечание' >
<StatusUM Code='2001' Description='Произвольный текст'>
</StatusesUM>
<AdditionalData>
<AdditionalParameter Name="ОтпрУС.ИнКонт" Value="факс" />
</AdditionalData>
</Document>
</DocumentActions>
Тег StatusUM является обязательным и множественным. В каждом Code могут содержаться коды УС строго из одной функции.
Блоки Signers и Warrants не имеют смысла, т.к. УС не может иметь подписи и МЧД. Их указание приведет к ошибке при дальнейшей попытке отправки с указанием, что действие не применимо к данному типу транзакций.
Если сотрудник не имеет прав доступ к указанному документу, то ему возвратится информация об ошибке 2120.
Для блока AdditionalData:
Табл. Перечень допустимых параметров тега AdditionalParameter
|
Наименование параметра (Name)
|
Допустимый формат значений (Value)
|
Путь в форматном xml
|
|
ОтпрУС.Должн
|
T(1-255)
|
Файл/Документ/ОтпрУС/СвЛицОтпрУС/Должн
|
|
ОтпрУС.Фамилия
|
T(1-60)
|
Файл/Документ/ОтпрУС/СвЛицОтпрУС/ФИО/Фамилия
|
|
ОтпрУС.Имя
|
T(1-60)
|
Файл/Документ/ОтпрУС/СвЛицОтпрУС/ФИО/Имя
|
|
ОтпрУС.Отчество
|
T(1-60)
|
Файл/Документ/ОтпрУС/СвЛицОтпрУС/ФИО/Отчество
|
|
ОтпрУС.Тлф.[1-3]
|
T(1-20)
|
Файл/Документ/ОтпрУС/СвЛицОтпрУС/Контакт/Тлф
|
|
ОтпрУС.ЭлПочта.[1-3]
|
T(1-100)
|
Файл/Документ/ОтпрУС/СвЛицОтпрУС/Контакт/ЭлПочта
|
|
ОтпрУС.ИнКонт
|
T(1-255)
|
Файл/Документ/ОтпрУС/СвЛицОтпрУС/Контакт/ИнКонт
|
|
ПолучУС.Должн
|
T(1-255)
|
Файл/Документ/ПолучУС /СвЛицПолучУС /Должн
|
|
ПолучУС.Фамилия
|
T(1-60)
|
Файл/Документ/ПолучУС /СвЛицПолучУС /ФИО/Фамилия
|
|
ПолучУС.Имя
|
T(1-60)
|
Файл/Документ/ПолучУС /СвЛицПолучУС /ФИО/Имя
|
|
ПолучУС.Отчество
|
T(1-60)
|
Файл/Документ/ПолучУС /СвЛицПолучУС /ФИО/Отчество
|
|
ПолучУС.Тлф.[1-3]
|
T(1-20)
|
Файл/Документ/ПолучУС /СвЛицПолучУС /Контакт/Тлф
|
|
ПолучУС.ЭлПочта.[1-3]
|
T(1-100)
|
Файл/Документ/ПолучУС /СвЛицПолучУС /Контакт/ЭлПочта
|
|
ПолучУС.ИнКонт
|
T(1-255)
|
Файл/Документ/ПолучУС /СвЛицПолучУС /Контакт/ИнКонт
|
Отправка файла Универсального сообщения
Для отправки файла УС предназначены методы:
-
void SendServiceDocument(TaxcomContainer container,string docflowId) Соответствующие классы для генерации TaxcomContainer в .NET SDK и COM SDK имеют следующие имена:
o UniversalMessageReceiveNoticeDocument
o UniversalMessageCorrectionNoticeDocument
o UniversalMessageRejectionNoticeDocument
o UniversalMessageAdditionalInformationDocument
2. void SendServiceDocumentFromFile(string fileName, string docflowId)
В качестве обязательного параметра следует передать либо контейнер, содержащий один из перечисленных выше типов УС, либо путь к zip файлу контейнера и id документооборота, к которому относится данное УС.
Передача null в качестве любого из параметров приводит к ArgumentNullException с указанием имени некорректного параметра.
Для упомянутых в п.1 типов УС не поддерживается добавление файла подписи и его формирования на машине клиента, а также добавление файла или мета-информации о доверенности. Попытка совершения данных действий приводит к NotSupportedException с указанием, что действие не применимо к данному типу транзакций.
Если сотрудник не имеет права доступа к указанному типу УС, то при попытке отправки ему возвратится информация об ошибке 2120.