Работа с печатными формами
Диадок позволяет получить печатную форму для формализованных документов, чтобы отобразить их пользователю в удобном и понятном формате.
Печатную форму документа можно сформировать как до, так и после его отправки в Диадок.
Генерация печатной формы
Печатную форму можно использовать для отображения содержимого XML-файла формализованного документа в понятном человеку виде. Кроме самого документа форма содержит штамп оператора. В нем указана информация об идентификаторе документа в Диадоке, его подписанте, сертификате квалифицированной электронной подписи и дате подписания документа. Печатная форма со штампом сама по себе не является юридически значимым документом: она предназначена только для просмотра документа.
Сгенерировать печатную форму документа можно с помощью метода GeneratePrintForm.
Пример HTTP-запроса метода GeneratePrintForm:
GET /GeneratePrintForm?boxId={{boxId}}&messageId={{messageId}}&documentId={{documentId}} HTTP/1.1
Host: diadoc-api.kontur.ru
Authorization: Bearer {{access_token}}
Accept: application/json; charset=utf-8
Генерация печатной формы по содержимому документа
С помощью метода GeneratePrintFormFromAttachment можно сформировать печатную форму для формализованного документа, не отправленного в Диадок. Так можно предварительно ознакомиться с внешним видом документа и сравнить, как меняется печатная форма в зависимости от указанного типа.
Исходный документ нужно передать в теле запроса метода GeneratePrintFormFromAttachment. В ответе метод вернет идентификатор, который нужно передать в методе GetGeneratedPrintForm. Если у переданного документа отсутствует стандартная печатная форма, метод вернет нечитаемую версию с XML-содержимым вне зависимости от наличия у ящика нестандартной формы.
Пример HTTP-запроса метода GeneratePrintFormFromAttachment:
POST /GeneratePrintFormFromAttachment?documentType=UniversalTransferDocument&fromBoxId={{boxId}} HTTP/1.1
Host: diadoc-api.kontur.ru
Authorization: Bearer {{access_token}}
Accept: application/json; charset=utf-8
Content-Type: application/xml
Пример тела запроса метода GeneratePrintFormFromAttachment:
<Файл ИдФайл="ON_NSCHFDOPPR_2BM-9677800047-967701000-202207281004154081709_2BM-9681265956-968101000-202207281000014689156_20250116_8c703486-75df-46f8-8f0a-959b09f807a9_1_1_0_0_1_00" ВерсФорм="5.03" ВерсПрог="Diadoc 1.0">
<Документ КНД="1115131" ВремИнфПр="18.13.16" ДатаИнфПр="16.01.2025" Функция="СЧФДОП" ПоФактХЖ="Документ об отгрузке товаров (выполнении работ), передаче имущественных прав (документ об оказании услуг)" НаимДокОпр="Документ о передаче товаров (работ, услуг, имущественных прав)" УИД="UID" НаимЭконСубСост="Документ-НаимЭконСубСост" СоглСтрДопИнф="1111.2222.0000">
<СвСчФакт НомерДок="123" ДатаДок="01.02.2023" ИмяФайлИспрПрод="СвСчФакт-ИмяФайлИспрПрод" ИмяФайлИспрПок="СвСчФакт-ИмяФайлИспрПок">
<СвПрод ОКПО="0166273597" КодОПФ="12200" ПолнНаимОПФ="СвПрод-ПолнНаимОПФ" СтруктПодр="СвПрод-СтруктПодр" ИнфДляУчаст="СвПрод-ИнфДляУчаст" СокрНаим="СвПрод-СокрНаим">
<ИдСв>
<СвЮЛУч НаимОрг="СвЮЛУч-НаимОрг" ИННЮЛ="9103624367" КПП="187245452" />
</ИдСв>
<Адрес>
<АдрРФ КодРегион="72" НаимРегион="Тюменская область" Индекс="344249" Район="Тюмень" Город="Тюмень" НаселПункт="АдрРФ-НаселПункт" Улица="АдрРФ-Улица" Дом="АдрРФ-Дом" Корпус="АдрРФ-Корпус" Кварт="АдрРФ-Кварт" ИныеСвед="АдрРФ-ИныеСвед" />
</Адрес>
<БанкРекв НомерСчета="49634485849155">
<СвБанк НаимБанк="СИБИРСКИЙ БАНК ПАО СБЕРБАНК" БИК="045004641" КорСчет="30101810500000000641" />
</БанкРекв>
<Контакт ИнКонт="Контакт-ИнКонт">
<Тлф>8-343-123-4567</Тлф>
<ЭлПочта>email@google.com</ЭлПочта>
</Контакт>
</СвПрод>
<ГрузОт>
<ГрузОтпр ОКПО="76098674" КодОПФ="12000" ПолнНаимОПФ="ГрузОтпр-ПолнНаимОПФ" СтруктПодр="ГрузОтпр-СтруктПодр" ИнфДляУчаст="ГрузОтпр-ИнфДляУчаст" СокрНаим="ГрузОтпр-СокрНаим">
<ИдСв>
<СвИП ИННФЛ="753381367749" СвГосРегИП="СвИП-СвГосРегИП" ОГРНИП="421319982803452" ДатаОГРНИП="12.12.2012" ИныеСвед="СвИП-ИныеСвед">
<ФИО Фамилия="Иванов" Имя="Иван" Отчество="Иванович" />
</СвИП>
</ИдСв>
<Адрес>
<АдрГАР ИдНом="03510210-e5f3-4bc6-bbd2-24d7fe25b3ed" Индекс="450133">
<Регион>72</Регион>
<НаимРегион>Тюменская область</НаимРегион>
<МуниципРайон ВидКод="1" Наим="МуниципРайон-Наим" />
<ГородСелПоселен ВидКод="1" Наим="ГородСелПоселен-Наим" />
<НаселенПункт Вид="НаселенПункт" Наим="НаселенПункт-Наим" />
<ЭлПланСтруктур Тип="ЭлПланСтруктур" Наим="ЭлПланСтруктур-Наим" />
<ЭлУлДорСети Тип="ЭлУлДорСети" Наим="ЭлУлДорСети-Наим" />
<ЗемелУчасток>ЗемелУчасток</ЗемелУчасток>
<Здание Тип="Здание" Номер="Здание-Номер" />
<ПомещЗдания Тип="ПомещЗдания" Номер="ПомещЗдания-Номер" />
<ПомещКвартиры Тип="ПомещКвартиры" Номер="ПомещКвартиры-Номер" />
</АдрГАР>
</Адрес>
</ГрузОтпр>
</ГрузОт>
<ГрузПолуч ОКПО="18989253" КодОПФ="12000" ПолнНаимОПФ="ГрузПолуч-ПолнНаимОПФ" СтруктПодр="ГрузПолуч-СтруктПодр" ИнфДляУчаст="ГрузПолуч-ИнфДляУчаст" СокрНаим="ГрузПолуч-СокрНаим">
<ИдСв>
<СвФЛУч ИННФЛ="518191632595" ИдСтатЛ="1" ИныеСвед="СвФЛУч-ИныеСвед">
<ФИО Фамилия="Петров" Имя="Петр" Отчество="Петрович" />
</СвФЛУч>
</ИдСв>
<Адрес>
<АдрИнф КодСтр="112" НаимСтран="Беларусь" АдрТекст="АдрИнф-АдрТекст" />
</Адрес>
<БанкРекв НомерСчета="569712456874">
<СвБанк НаимБанк="ЗАО Сбербанк России, отделение на Московской 11" БИК="012345671" />
</БанкРекв>
</ГрузПолуч>
<СвПРД НомерПРД="СЧФ/123/456" ДатаПРД="01.02.2023" СуммаПРД="1000.00" />
<ДокПодтвОтгрНом РеквНаимДок="Документ о передаче товаров (работ, услуг, имущественных прав)" РеквНомерДок="123" РеквДатаДок="01.02.2023">
<РеквИдРекСост>
<ИННЮЛ>1978337389</ИННЮЛ>
</РеквИдРекСост>
</ДокПодтвОтгрНом>
<СвПокуп ОКПО="74047744" КодОПФ="12200" ПолнНаимОПФ="СвПокуп-ПолнНаимОПФ" СтруктПодр="СвПокуп-СтруктПодр" ИнфДляУчаст="СвПокуп-ИнфДляУчаст" СокрНаим="СвПокуп-СокрНаим">
<ИдСв>
<СвЮЛУч НаимОрг="СвЮЛУч-НаимОрг" ИННЮЛ="1234567894" КПП="667301001" />
</ИдСв>
<Адрес>
<АдрИнф КодСтр="112" НаимСтран="Беларусь" АдрТекст="АдрИнф-АдрТекст" />
</Адрес>
</СвПокуп>
<ДенИзм КодОКВ="643" НаимОКВ="Российский рубль" КурсВал="12" />
<ДопСвФХЖ1 ИдГосКон="1234567890123456789012345" СпОбстФСЧФДОП="12345">
<ВидОбяз КодВидОбяз="1" НаимВидОбяз="ВидОбяз-НаимВидОбяз" />
<ИнфПродЗаГоскКазн ДатаГосКонт="02.02.2022" НомерГосКонт="5" КодКазначПрод="0160" />
<СвФактор ОКПО="74047744" КодОПФ="12000" ПолнНаимОПФ="СвФактор-ПолнНаимОПФ" СтруктПодр="СвФактор-СтруктПодр" ИнфДляУчаст="СвФактор-ИнфДляУчаст" СокрНаим="СвФактор-СокрНаим">
<ИдСв>
<СвИП ИННФЛ="916363626153" ОГРНИП="421032906553286" ДатаОГРНИП="21.08.2019" ИныеСвед="СвИП-ИныеСвед">
<ФИО Фамилия="ФИО-Фамилия" Имя="ФИО-Имя" Отчество="ФИО-Отчество" />
</СвИП>
</ИдСв>
<Адрес>
<АдрРФ КодРегион="72" НаимРегион="Тюменская область" Индекс="344249" Район="Тюмень" Город="Тюмень" НаселПункт="АдрРФ-НаселПункт" Улица="АдрРФ-Улица" Дом="АдрРФ-Дом" Корпус="АдрРФ-Корпус" Кварт="АдрРФ-Кварт" ИныеСвед="АдрРФ-ИныеСвед" />
</Адрес>
</СвФактор>
<ОснУстДенТреб РеквНаимДок="ОснУстДенТреб-РеквНаимДок" РеквНомерДок="144" РеквДатаДок="04.04.2004">
<РеквИдРекСост>
<ИННФЛ>342265432525</ИННФЛ>
</РеквИдРекСост>
</ОснУстДенТреб>
<СопрДокФХЖ РеквНаимДок="СопрДокФХЖ-РеквНаимДок" РеквНомерДок="876" РеквДатаДок="05.05.2005">
<РеквИдРекСост>
<ДаннИно КодСтр="112" НаимСтран="Беларусь" Наим="ДаннИно-Наим" ИдСтат="ИГ" ИныеСвед="ДаннИно-ИныеСвед" Идентиф="ДаннИно-Идентиф" />
</РеквИдРекСост>
</СопрДокФХЖ>
</ДопСвФХЖ1>
<ИнфПолФХЖ1 ИдФайлИнфПол="5b0a8e80-1a7b-4194-a64d-60ca9f10dd82">
<ТекстИнф Идентиф="ТекстИнф-Идентиф" Значен="ТекстИнф-Идентиф" />
</ИнфПолФХЖ1>
</СвСчФакт>
<ТаблСчФакт>
<СведТов НомСтр="1" НалСт="20%" НаимТов="СведТов-НаимТов" ОКЕИ_Тов="113" НаимЕдИзм="м3" КолТов="16" ЦенаТов="200.00" СтТовБезНДС="654.00" СтТовУчНал="784.80">
<СвДТ КодПроисх="980" НомерДТ="123456" />
<ДопСведТов ПрТовРаб="5" ДопПризн="Приз" НадлОтп="102" СортТов="СортТов" СерияТов="ДопСведТов-СерияТов" ГТИН="10000057074365" КодВидТов="1111111111" КодВидПр="676">
<КрНаимСтрПр>Евросоюз</КрНаимСтрПр>
<СопрДокТов РеквНаимДок="СопрДокТов-РеквНаимДок" РеквНомерДок="144" РеквДатаДок="04.04.2004">
<РеквИдРекСост>
<ИННФЛ>342265432525</ИННФЛ>
</РеквИдРекСост>
</СопрДокТов>
<НалУчАморт АмГруппа="13" КодОКОФ="165" СрПолИспОС="23" ФактСрокИсп="100" />
<СумНалВосст>
<СумНал>550.00</СумНал>
</СумНалВосст>
<СведПрослеж НомТовПрослеж="10001000/010123/1234567/001" ЕдИзмПрослеж="778" КолВЕдПрослеж="30" СтТовБезНДСПрослеж="100" НаимЕдИзмПрослеж="упак" />
<НомСредИдентТов ИдентТрансУпак="НомСредИдентТов-ИдентТрансУпак" КолВедМарк="100" ПрПартМарк="111">
<КИЗ>НомСредИдентТов-КИЗ</КИЗ>
</НомСредИдентТов>
</ДопСведТов>
<Акциз>
<БезАкциз>без акциза</БезАкциз>
</Акциз>
<СумНал>
<СумНал>1000.00</СумНал>
</СумНал>
</СведТов>
<СведТов НомСтр="2" НалСт="20%" НаимТов="Product2 > 2.0 мм" ОКЕИ_Тов="778" НаимЕдИзм="упак" КолТов="114.100" ЦенаТов="516.67" СтТовБезНДС="58951.67" СтТовУчНал="70742.00">
<СвДТ КодПроисх="178" НомерДТ="555555" />
<ДопСведТов ПрТовРаб="5" ДопПризн="ДопП" НадлОтп="505" ХарактерТов="ДопСведТов-ХарактерТов" СортТов="СортТов" СерияТов="ДопСведТов-СерияТов" АртикулТов="ДопСведТов-АртикулТов" КодТов="ДопСведТов-КодТов" ГТИН="10000057074365" КодВидТов="1111111111">
<КрНаимСтрПр>Конго</КрНаимСтрПр>
<НалУчАморт АмГруппа="12" КодОКОФ="165" СрПолИспОС="234" ФактСрокИсп="100" />
<СумНалВосст>
<СумНал>1345.00</СумНал>
</СумНалВосст>
</ДопСведТов>
<Акциз>
<БезАкциз>без акциза</БезАкциз>
</Акциз>
<СумНал>
<СумНал>1000.00</СумНал>
</СумНал>
</СведТов>
<ВсегоОпл СтТовБезНДСВсего="8965.00" СтТовУчНалВсего="10000.00">
<СумНалВсего>
<СумНал>456.00</СумНал>
</СумНалВсего>
</ВсегоОпл>
</ТаблСчФакт>
<СвПродПер>
<СвПер СодОпер="СвПер-СодОпер" ВидОпер="СвПер-ВидОпер" ДатаПер="15.02.2024" ДатаНачПер="16.02.2024" ДатаОконПер="16.02.2024">
<ОснПер РеквНаимДок="ОснПер-РеквНаимДок" РеквНомерДок="567" РеквДатаДок="14.02.2024">
<РеквИдРекСост>
<ИННФЛ>144647873819</ИННФЛ>
</РеквИдРекСост>
</ОснПер>
<СвЛицПер>
<ИнЛицо>
<ПредОргПер Должность="ПредОргПер-Должность" НаимОргПер="ПредОргПер-НаимОргПер" ИныеСвед="ПредОргПер-ИныеСвед">
<ОснДоверОргПер РеквНаимДок="ОснДоверОргПер-РеквНаимДок" РеквНомерДок="098" РеквДатаДок="03.02.2024">
<РеквИдРекСост>
<ИННЮЛ>4620212891</ИННЮЛ>
</РеквИдРекСост>
</ОснДоверОргПер>
<ОснПолнПредПер РеквНаимДок="ОснПолнПредПер-РеквНаимДок" РеквНомерДок="098" РеквДатаДок="03.02.2024">
<РеквИдРекСост>
<ИННЮЛ>4620212891</ИННЮЛ>
</РеквИдРекСост>
</ОснПолнПредПер>
<ФИО Фамилия="Иванов" Имя="Иван" Отчество="Иванович" />
</ПредОргПер>
</ИнЛицо>
</СвЛицПер>
<СвПерВещи>
<ДокПерВещ РеквНаимДок="ДокПерВещ-РеквНаимДок" РеквНомерДок="098" РеквДатаДок="03.02.2024">
<РеквИдРекСост>
<ИННЮЛ>4620212891</ИННЮЛ>
</РеквИдРекСост>
</ДокПерВещ>
</СвПерВещи>
</СвПер>
<ИнфПолФХЖ3 ИдФайлИнфПол="9c3adc2b-a085-4acd-af8c-3494290d782c">
<ТекстИнф Идентиф="Идентиф1в" Значен="Значен1в" />
<ТекстИнф Идентиф="Идентиф2в" Значен="Значен2в" />
</ИнфПолФХЖ3>
</СвПродПер>
<Подписант СпосПодтПолном="6" Должн="Должность">
<ФИО Фамилия="Иванов" Имя="Иван" Отчество="Иванович" />
</Подписант>
<ОснДоверОргСост РеквНаимДок="ОснДоверОргСост-РеквНаимДок" РеквНомерДок="123" РеквДатаДок="01.02.2023">
<РеквИдРекСост>
<ДаннИно КодСтр="112" НаимСтран="Беларусь" Наим="ДаннИно-Наим" ИдСтат="ИГ" ИныеСвед="ДаннИно-ИныеСвед" Идентиф="ДаннИно-Идентиф" />
</РеквИдРекСост>
</ОснДоверОргСост>
</Документ>
</Файл>
Пример тела ответа GeneratePrintFormFromAttachment:
6ba0d2ea-f16c-45b4-825f-92bf2203944d
Пример HTTP-запроса метода GetGeneratedPrintForm:
GET /GetGeneratedPrintForm?printFormId=f68fe07d-d514-4896-9183-bdeae22d22b2 HTTP/1.1
Host: diadoc-api.kontur.ru
Authorization: Bearer {{access_token}}
Генерация протокола передачи документа
Протокол передачи — файл, который содержит всю историю работы с документом. В нем отражается информация о подписях, датах отправки титулов, запросах уточнения, аннулировании и других действиях. При необходимости подтверждения факта передачи документов протокол можно предоставить в суд.
Сгенерировать печатную форму протокола передачи документа можно с помощью метода GenerateDocumentProtocol. В теле ответа будет находиться содержимое файлов печатной формы и данных подписанта в кодировке Base64.
Пример HTTP-запроса метода GenerateDocumentProtocol:
GET /GenerateDocumentProtocol?boxId={{boxid}}?messageid={{messageid}}?documentId={{documentId}} HTTP/1.1
Host: diadoc-api.kontur.ru
Authorization: Bearer {{access_token}}
Accept: application/json
Пример тела ответа GenerateDocumentProtocol:
{
"PrintForm": "JVBERi0xLjQKJdP0zOEKM...E4MTcKJSVFT0YK", // содержимое PDF-файла печатной формы в кодировке Base-64
"Signature": "MIINIAYJKoZIhvcNAQcCo...M4qZkbzpR34Q==" // содержимое XML-файла с данными подписанта в кодировке Base-64
}
Генерация архива документооборота
Диадок позволяет получить все файлы, связанные с документооборотом документа, в одном архиве: пользовательские и служебные документы, а также подписи к ним. Сгенерировать такой архив можно с помощью метода GenerateDocumentZip. В ответе метод вернет путь к архиву на полке документов. Полученный путь нужно передать в метод ShelfDownload (V2), указав filename.
Пример HTTP-запроса метода GenerateDocumentZip:
GET /GenerateDocumentZip?boxId={{boxId}}&messageId={{messageId}}&documentId={{documentId}}&fullDocflow=true HTTP/1.1
Host: diadoc-api.kontur.ru
Authorization: Bearer {{access_token}}
Accept: application/json
Пример тела ответа GenerateDocumentZip:
{
"ZipFileNameOnShelf": "__userId__/Diadoc.Documents.1f208d03-2a60-4f64-91b1-b7aad54cfaf3.ba04162c-e26f-448f-a370-299b4f15b6d1.da7cd73e-ff49-4a23-a018-42d27487e536.638747862192156432.FullDocflow_.zip"
}
Проверка наличия у документа нестандартной печатной формы
Диадок позволяет определить, существует ли для переданного документа в указанном ящике нестандартная печатная форма. Сделать это можно c помощью метода DetectCustomPrintForms.
Пример HTTP-запроса метода DetectCustomPrintForms:
POST /DetectCustomPrintForms?boxId={{boxId}} HTTP/1.1
Host: diadoc-api.kontur.ru
Authorization: Bearer {{access_token}}
Accept: application/json; charset=utf-8
Content-Type: application/json
Пример тела запроса метода DetectCustomPrintForms:
{
"DocumentIds" : [
{
"MessageId" : "b93e4464-b14d-4c30-a8f5-b714c390d0a0",
"EntityId" : "6c69e5bd-f421-4825-9f31-970182fee429"
},
{
"MessageId" : "f2f388b8-4a96-4ce5-bd85-23fe10131ea4",
"EntityId" : "bf16d371-3b18-47dd-b5f1-5a959628d0ef"
}
]
}
Пример тела ответа метода DetectCustomPrintForms:
{
"Items": [
{
"DocumentId": {
"EntityId": "6c69e5bd-f421-4825-9f31-970182fee429",
"MessageId": "b93e4464-b14d-4c30-a8f5-b714c390d0a0"
},
"HasCustomPrintForm": false
},
{
"DocumentId": {
"EntityId": "bf16d371-3b18-47dd-b5f1-5a959628d0ef",
"MessageId": "f2f388b8-4a96-4ce5-bd85-23fe10131ea4"
},
"HasCustomPrintForm": true
}
]
}