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  могут содержаться  коды УС строго из одной функции.
Action принимает значение TransactionCode УС (см. Табл. Функции УС).
Блоки 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.