Инструкция по модулю ДокиHTML
Подключение внешней обработки к конфигурации 1С, получение API-ключа и вызов экспортируемых функций для создания документов ЭДО (УПД), ЭТрН и ЭЗЗ — в том числе с откреплённой подписью.
1. Скачать и подключить модуль
Один файл ДокиHTML.epf подходит и для обычных форм, и для тонкого клиента.
Актуальный код экспорта (включая Доки_ПолучитьXML*) — в МодульОбъекта.bsl;
при вшивке в конфигурацию обновите модуль объекта обработки из этого файла.
Внешняя обработка
- Файл → Открыть → выбрать
ДокиHTML.epf. - В настройках обработки укажите API-ключ (или передавайте его параметром при вызове).
- Базовый URL по умолчанию:
https://node.1os.su/doki.
Вшивка в конфигурацию
- Конфигуратор → Обработки → добавить
ДокиHTML. - Модуль объекта и формы — из поставки модуля.
- Вызов:
Обработки.ДокиHTML.Создать()— путь к.epfне нужен.
2. Получить API-ключ
На странице регистрации можно получить триальный API-ключ и привязать организации по ЭЦП или постоянному токену Доки. Страницу можно открыть из 1С (список ИНН передаётся автоматически) или самостоятельно — тогда ИНН организаций указываются вручную.
- URL:
https://node.1os.su/doki/1c/register - В standalone-режиме введите ИНН связанных организаций (через запятую или с новой строки) и привяжите сертификат/токен.
- Полученный ключ вида
doki1c_…передавайте вторым параметром экспортируемых функций или сохраните в настройках обработки.
3. Примеры вызова экспортируемых функций
Единый результат: Структура(Успех, URL, ТекстОшибки, Данные).
При успехе и заполненном URL можно открыть черновик в браузере: ЗапуститьПриложение(Результат.URL).
HTTP-заголовок: x-api-key.
В таблицах: обяз. — обязательно для успешной генерации/отправки; остальные поля опциональны.
УПД (документ ЭДО)
Доки_ОтправитьУПД / Доки_ОтправитьУПДПоДанным → POST /api/1c/draft/upd
| Поле | Тип | Описание | |
|---|---|---|---|
organization | Структура | обяз. | Организация-отправитель |
organization.inn / code | Строка | обяз. | ИНН или код (для привязки API-ключа) |
organization.name | Строка | опц. | Наименование |
counterparty | Структура | обяз. | Контрагент-покупатель |
counterparty.inn | Строка | обяз. | ИНН контрагента |
counterparty.name | Строка | обяз. | Наименование |
counterparty.kpp | Строка | опц. | КПП |
header.number | Строка | обяз. | Номер документа |
header.date | Строка | обяз. | Дата (yyyy-MM-dd или dd.MM.yyyy) |
header.sum, currencyCode, deliveryAddress… | опц. | Сумма, валюта, адрес | |
contract | Структура | опц. | number, date, name |
items | Массив | обяз. | Позиции товаров (минимум 1) |
items[].productName | Строка | обяз. | Наименование позиции |
items[].quantity, price, sum, vatRate… | опц. | Количество, цена, сумма, НДС | |
funcType | Строка | опц. | По умолчанию sfdop (СЧФДОП) |
requestType, source | Строка | опц. | Служебные: upd_generation, 1c |
Обработка = Обработки.ДокиHTML.Создать();
// Из документа реализации / УПД в 1С
Результат = Обработка.Доки_ОтправитьУПД(ДокументСсылка, АПИКлюч);
// Или по готовой структуре
Данные = Новый Структура;
Данные.Вставить("requestType", "upd_generation");
Данные.Вставить("source", "1c");
Данные.Вставить("funcType", "sfdop");
Данные.Вставить("organization", Новый Структура("inn,code,name", "7707083893", "7707083893", "ООО Пример"));
Данные.Вставить("counterparty", Новый Структура("inn,kpp,name", "6658378402", "667001001", "ООО ""1ОС"""));
Шапка = Новый Структура;
Шапка.Вставить("number", "УПД-1");
Шапка.Вставить("date", "2026-08-11");
Шапка.Вставить("sum", 12000);
Шапка.Вставить("currencyCode", "643");
Данные.Вставить("header", Шапка);
Позиция = Новый Структура;
Позиция.Вставить("productName", "Товар");
Позиция.Вставить("quantity", 10);
Позиция.Вставить("unitName", "шт");
Позиция.Вставить("price", 1000);
Позиция.Вставить("sum", 10000);
Позиция.Вставить("vatRate", "20%");
Позиция.Вставить("vatSum", 2000);
Товары = Новый Массив;
Товары.Добавить(Позиция);
Данные.Вставить("items", Товары);
Результат = Обработка.Доки_ОтправитьУПДПоДанным(Данные, АПИКлюч);
Если Результат.Успех Тогда
ЗапуститьПриложение(Результат.URL);
Иначе
Сообщить(Результат.ТекстОшибки);
КонецЕсли;
ЭТрН — структура данных
Доки_ОтправитьЭТрН / Доки_ОтправитьЭТрНПоДанным / Доки_ПолучитьXMLЭТрНПоДанным
| Поле | Тип | Описание | |
|---|---|---|---|
organization.inn|code | Строка | обяз. | Организация API-ключа |
documentNumber | Строка | обяз. | Номер ЭТрН |
documentDate | Строка | обяз. | Дата документа |
shipper / consignee / carrier | Структура | обяз. | Участники |
*.name, *.inn, *.phone | Строка | обяз. | Наименование, ИНН, телефон |
*.edoId | Строка | опц.* | Ящик ЭДО; если пусто — ищется по ИНН на сервере |
*.kpp, *.address | опц. | КПП; адрес (см. ниже) | |
shipper.address.index, regionCode | Строка | обяз. | Индекс и код региона ГО |
deliveryAddress.index, regionCode | Строка | обяз. | Адрес доставки (или адрес ГП) |
loading.address.index, regionCode | Строка | обяз. | Адрес погрузки |
loading.plannedAt или arrivedAt | Строка | обяз. | Дата/время погрузки (ISO) |
loading.massMethod | Строка | обяз. | Метод массы (напр. 01) |
loading.grossMassShipped, placesAccepted, loader* | опц. | Масса, места, данные погрузчика | |
cargo[] | Массив | обяз. | ≥1 позиция с name |
cargo[].placesCount, grossMass, packaging | обяз. | Места, масса брутто, упаковка | |
cargo[].condition, packageKind, markings | опц. | Состояние, вид тары, маркировка | |
drivers[] | Массив | обяз. | ≥1 водитель |
drivers[].lastName, firstName | Строка | обяз. | ФИО |
drivers[].licenseSeries, licenseNumber, licenseIssueDate | обяз. | ВУ | |
drivers[].phones[] | Массив | обяз. | ≥1 телефон |
vehicle.regNumber, ownershipType | Строка | обяз. | Госномер и тип владения ТС |
vehicle.brand, type, loadCapacity, volume | опц. | Марка, тип, грузоподъёмность | |
trailers[] | Массив | опц. | Прицепы (как vehicle) |
signer.lastName, firstName, position, status | обяз. | Подписант | |
transportRules | Строка | обяз. | Указания ГО / нормы перевозки |
redirectMethod, redirectPerson | Строка | обяз. | Переадресовка |
redirectPhone | Строка | обяз.* | Или телефон ГО/перевозчика/водителя |
orderNumber, orderDate, extraRecipientIds | опц. | Заказ, доп. получатели | |
documentFile + signatureFile | base64 | опц. | Готовый XML и подпись (см. ниже) |
Обработка = Обработки.ДокиHTML.Создать();
// Из документа: Задание на перевозку / Реализация / Взвешивание
Результат = Обработка.Доки_ОтправитьЭТрН(ДокументСсылка, АПИКлюч);
// По данным (каркас; заполните обязательные поля из таблицы выше)
Данные = Новый Структура;
Данные.Вставить("requestType", "etrn_generation");
Данные.Вставить("source", "1c");
Данные.Вставить("documentNumber", "ТН-1");
Данные.Вставить("documentDate", Формат(ТекущаяДата(), "ДФ=yyyy-MM-dd"));
Данные.Вставить("organization", Новый Структура("inn,code,name", "665840163861", "665840163861", "ИП Пример"));
Данные.Вставить("shipper", Новый Структура("inn,name,phone", "665840163861", "ИП Пример", "3432000000"));
Данные.Вставить("consignee", Новый Структура("inn,kpp,name,phone", "6658378402", "667001001", "ООО ""1ОС""", "3432000001"));
Данные.Вставить("carrier", Новый Структура("inn,kpp,name,phone", "6686161521", "668601001", "ООО Перевозчик", "3432000002"));
Данные.Вставить("deliveryAddress", Новый Структура("index,regionCode,city", "620000", "66", "Екатеринбург"));
Данные.Вставить("cargo", Новый Массив); // ≥1: name, placesCount, grossMass, packaging
Данные.Вставить("drivers", Новый Массив); // ≥1: lastName, firstName, license*, phones
Данные.Вставить("vehicle", Новый Структура("regNumber,ownershipType", "A000AA116", "1"));
Данные.Вставить("signer", Новый Структура("lastName,firstName,position,status", "Иванов", "Иван", "Директор", "1"));
Данные.Вставить("loading", Новый Структура("plannedAt,massMethod,address",
Формат(ТекущаяДата(), "ДФ=yyyy-MM-dd") + "T10:00:00+05:00", "01",
Новый Структура("index,regionCode", "620000", "66")));
Данные.Вставить("transportRules", "Согласно договору");
Данные.Вставить("redirectMethod", "Электронно");
Данные.Вставить("redirectPerson", "Иванов И.И.");
Результат = Обработка.Доки_ОтправитьЭТрНПоДанным(Данные, АПИКлюч);
Если Результат.Успех Тогда
ЗапуститьПриложение(Результат.URL);
КонецЕсли;
Список документов — массовая отправка ЭТрН
Команда на форме списка (например, Задание на перевозку): по выделенным строкам
собрать данные и вызвать Доки_ОтправитьЭТрНПоДанным для каждой.
Добавьте команду формы списка и повесьте на кнопку «Отправить в Доки».
- Форма списка → Команды → новая команда
ДокиОтправитьЭТрН. - На форму — кнопка с этой командой.
- В модуле формы — обработчик ниже; функцию
СобратьДанныеЭТрНИзЗаданиязаполните полями своей конфигурации (см. таблицу ЭТрН).
Если документ уже поддерживается модулем (ЗаданиеНаПеревозку / РеализацияТоваровУслуг / Взвешивание),
вместо сборки структуры можно вызвать Доки_ОтправитьЭТрН(Ссылка, АПИКлюч) — внутри он сам соберёт данные и вызовет Доки_ОтправитьЭТрНПоДанным.
// === Модуль формы списка документов (управляемые формы) ===
&НаКлиенте
Процедура ДокиОтправитьЭТрН(Команда)
Выделенные = Элементы.Список.ВыделенныеСтроки;
Если Выделенные.Количество() = 0 Тогда
ПоказатьПредупреждение(, "Выберите одно или несколько заданий на перевозку.");
Возврат;
КонецЕсли;
ТекстВопроса = СтрШаблон(
"Отправить в Доки ЭТрН по выбранным документам (%1 шт.)?",
Выделенные.Количество());
Оповещение = Новый ОписаниеОповещения("ДокиОтправитьЭТрНПослеВопроса", ЭтотОбъект, Выделенные);
ПоказатьВопрос(Оповещение, ТекстВопроса, РежимДиалогаВопрос.ДаНет);
КонецПроцедуры
&НаКлиенте
Процедура ДокиОтправитьЭТрНПослеВопроса(РезультатВопроса, Выделенные) Экспорт
Если РезультатВопроса <> КодВозвратаДиалога.Да Тогда
Возврат;
КонецЕсли;
Отчёт = ДокиОтправитьЭТрННаСервере(Выделенные);
ПоказатьПредупреждение(, Отчёт.Текст);
Если ЗначениеЗаполнено(Отчёт.ПоследнийURL) Тогда
ЗапуститьПриложение(Отчёт.ПоследнийURL);
КонецЕсли;
КонецПроцедуры
&НаСервереБезКонтекста
Функция ДокиОтправитьЭТрННаСервере(ВыделенныеСтроки)
Обработка = Обработки.ДокиHTML.Создать();
АПИКлюч = "doki1c_…"; // или из константы / настройки обработки
Успешно = 0;
Ошибки = Новый Массив;
ПоследнийURL = "";
Для Каждого СсылкаДокумента Из ВыделенныеСтроки Цикл
// Вариант A: свои данные → Доки_ОтправитьЭТрНПоДанным
Данные = СобратьДанныеЭТрНИзЗадания(СсылкаДокумента);
Результат = Обработка.Доки_ОтправитьЭТрНПоДанным(Данные, АПИКлюч);
// Вариант B (если тип документа поддерживается модулем):
// Результат = Обработка.Доки_ОтправитьЭТрН(СсылкаДокумента, АПИКлюч);
Если Результат.Успех Тогда
Успешно = Успешно + 1;
Если ЗначениеЗаполнено(Результат.URL) Тогда
ПоследнийURL = Результат.URL;
КонецЕсли;
Иначе
Ошибки.Добавить(Строка(СсылкаДокумента) + ": " + Результат.ТекстОшибки);
КонецЕсли;
КонецЦикла;
Текст = СтрШаблон("Отправлено успешно: %1 из %2.", Успешно, ВыделенныеСтроки.Количество());
Если Ошибки.Количество() > 0 Тогда
Текст = Текст + Символы.ПС + "Ошибки:" + Символы.ПС + СтрСоединить(Ошибки, Символы.ПС);
КонецЕсли;
Возврат Новый Структура("Текст,ПоследнийURL", Текст, ПоследнийURL);
КонецФункции
// Заполните маппинг под свою конфигурацию / реквизиты задания на перевозку.
&НаСервереБезКонтекста
Функция СобратьДанныеЭТрНИзЗадания(СсылкаДокумента)
Док = СсылкаДокумента.ПолучитьОбъект();
Данные = Новый Структура;
Данные.Вставить("requestType", "etrn_generation");
Данные.Вставить("source", "1c");
Данные.Вставить("documentNumber", Строка(Док.Номер));
Данные.Вставить("documentDate", Формат(Док.Дата, "ДФ=yyyy-MM-dd"));
// Организация API-ключа (ИНН отправителя)
Данные.Вставить("organization", Новый Структура(
"inn,code,name",
Док.Организация.ИНН,
Док.Организация.ИНН,
Строка(Док.Организация)));
// Участники, адреса, груз, водители, ТС, подписант — по таблице ЭТрН выше.
// Пример каркаса (подставьте реальные реквизиты документа):
Данные.Вставить("shipper", Новый Структура("inn,name,phone", Док.Организация.ИНН, Строка(Док.Организация), ""));
Данные.Вставить("consignee", Новый Структура("inn,name,phone", "", "", ""));
Данные.Вставить("carrier", Новый Структура("inn,name,phone", "", "", ""));
Данные.Вставить("cargo", Новый Массив);
Данные.Вставить("drivers", Новый Массив);
Данные.Вставить("vehicle", Новый Структура("regNumber,ownershipType", "", "1"));
Данные.Вставить("signer", Новый Структура("lastName,firstName,position,status", "", "", "", "1"));
Данные.Вставить("loading", Новый Структура);
Данные.Вставить("transportRules", "Согласно договору");
Данные.Вставить("redirectMethod", "Электронно");
Данные.Вставить("redirectPerson", "");
Возврат Данные;
КонецФункции
ЭЗЗ — структура данных
Доки_ОтправитьЭЗЗПоДанным / Доки_ПолучитьXMLЭЗЗПоДанным
| Поле | Тип | Описание | |
|---|---|---|---|
organization.inn|code | Строка | обяз. | Организация API-ключа |
shipper.name, inn | Строка | обяз. | Грузоотправитель (или берётся из organization) |
carrier.name, inn | Строка | обяз. | Перевозчик |
*.edoId | Строка | опц.* | Резолвится по ИНН на сервере |
signer.lastName, firstName | Строка | обяз. | Подписант |
signer.position, middleName, authorityConfirm | опц. | ||
cargo[] с name | Массив | обяз. | ≥1 позиция груза |
cargo[].placesCount, grossMass, размеры… | опц. | Места, масса, габариты | |
documentNumber, documentDate | Строка | опц. | Номер и дата заказа/заявки |
function | Строка | опц. | Заказ или Заявка |
loadUnloadPoints[] | Массив | опц. | operation: Погрузка|Выгрузка, адрес, время |
vehicleDeliveryPoint, vehicleParams | опц. | Подача ТС, параметры ТС | |
transportRules, otherConditions… | Строка | опц. | Условия перевозки |
documentFile + signatureFile | base64 | опц. | Готовый XML и подпись |
Обработка = Обработки.ДокиHTML.Создать();
Данные = Новый Структура;
Данные.Вставить("organization", Новый Структура("inn,code,name", "665840163861", "665840163861", "ИП Пример"));
Данные.Вставить("shipper", Новый Структура("inn,name", "665840163861", "ИП Пример"));
Данные.Вставить("carrier", Новый Структура("inn,kpp,name", "6686161521", "668601001", "ООО Перевозчик"));
Данные.Вставить("documentNumber", "ЗЗ-1");
Данные.Вставить("documentDate", Формат(ТекущаяДата(), "ДФ=yyyy-MM-dd"));
Данные.Вставить("function", "Заказ");
Данные.Вставить("signer", Новый Структура("lastName,firstName,position", "Иванов", "Иван", "Директор"));
Груз = Новый Структура;
Груз.Вставить("name", "Щебень");
Груз.Вставить("placesCount", 1);
Груз.Вставить("grossMass", 20000);
Грузы = Новый Массив;
Грузы.Добавить(Груз);
Данные.Вставить("cargo", Грузы);
Результат = Обработка.Доки_ОтправитьЭЗЗПоДанным(Данные, АПИКлюч);
Если Результат.Успех Тогда
ЗапуститьПриложение(Результат.URL);
Иначе
Сообщить(Результат.ТекстОшибки);
КонецЕсли;
XML для подписи → подпись → отправка
Чтобы подписать документ локально, сначала получите тот же XML, который уйдёт в Доки
(ИдФайл содержит UUID — повторная генерация даст другой файл).
Подпись — только на клиенте Windows (КриптоПро CSP + CAdESCOM).
Доки_ПолучитьXMLЭТрНПоДанным/Доки_ПолучитьXMLЭЗЗПоДанным→Данные.contentBase64,filenameДоки_ПодписатьОткрепленноПоИНН(contentBase64, ИНН)→ подпись base64- В пакет:
documentFile= contentBase64,documentFileName= filename; отправка с параметромПодписьили полемsignatureFile
Обработка = Обработки.ДокиHTML.Создать();
// 1) XML без импорта в Доки
РезультатXML = Обработка.Доки_ПолучитьXMLЭТрНПоДанным(Данные, АПИКлюч);
Если НЕ РезультатXML.Успех Тогда
ВызватьИсключение РезультатXML.ТекстОшибки;
КонецЕсли;
ContentBase64 = Обработка.Доки_ИзвлечьContentBase64(РезультатXML);
ИмяФайла = Обработка.Доки_ИзвлечьИмяФайлаXML(РезультатXML);
// 2) Откреплённая подпись (ИНН ЮЛ или ИНН ФЛ по МЧД)
ПодписьBase64 = Обработка.Доки_ПодписатьОткрепленноПоИНН(ContentBase64, "7707083893");
// 3) Импорт того же XML + attach/signature
Данные.Вставить("documentFile", ContentBase64);
Данные.Вставить("documentFileName", ИмяФайла);
Результат = Обработка.Доки_ОтправитьЭТрНПоДанным(Данные, АПИКлюч, ПодписьBase64);
// Для ЭЗЗ:
// РезультатXML = Обработка.Доки_ПолучитьXMLЭЗЗПоДанным(Данные, АПИКлюч);
// …подписать…
// Результат = Обработка.Доки_ОтправитьЭЗЗПоДанным(Данные, АПИКлюч, ПодписьBase64);
Если Результат.Успех Тогда
// Результат.Данные.signed = Истина
ЗапуститьПриложение(Результат.URL);
КонецЕсли;
Эндпоинты XML: /api/1c/draft/etrn-xml, /api/1c/draft/ezz-xml.
Криптография (ЭЦП)
Работает только на клиенте Windows с КриптоПро CSP и CAdESCOM (не на сервере 1С).
| Функция | Назначение |
|---|---|
Доки_НайтиОтпечатокСертификатаПоИНН(ИНН) | Thumbprint по ИНН ЮЛ или ИНН ФЛ (МЧД) |
Доки_ПодписатьФайлОткрепленно(Данные, Отпечаток) | CAdES-BES detached → base64 (.sig) для ЭПД |
Доки_ПодписатьФайлПрикрепленно(Данные, Отпечаток) | CAdES-BES attached — для auth Доки |
Доки_ПодписатьОткрепленноПоИНН(Данные, ИНН) | Поиск серта + detached одним вызовом |
Обработка = Обработки.ДокиHTML.Создать();
// Найти сертификат
Отпечаток = Обработка.Доки_НайтиОтпечатокСертификатаПоИНН("7707083893");
Если ПустаяСтрока(Отпечаток) Тогда
ВызватьИсключение "Сертификат не найден в хранилище";
КонецЕсли;
// Откреплённая подпись: ДвоичныеДанные / base64 / путь к файлу
ПодписьDetached = Обработка.Доки_ПодписатьФайлОткрепленно(ДвоичныеДанныеXML, Отпечаток);
// или: ПодписьDetached = Обработка.Доки_ПодписатьОткрепленноПоИНН(ДвоичныеДанныеXML, "7707083893");
// Прикреплённая подпись (для сценариев auth Доки)
ПодписьAttached = Обработка.Доки_ПодписатьФайлПрикрепленно(ДвоичныеДанные, Отпечаток);
Неформализованный документ
Доки_ОтправитьНеформализованныйПоДанным → POST /api/1c/draft/unformalized
| Поле | Тип | Описание | |
|---|---|---|---|
organization.inn / code | Строка | обяз. | Организация API-ключа |
recipientIds | Массив строк | обяз. | Ящики ЭДО контрагентов (globalId) |
documentFile | base64 | обяз.* | Содержимое файла |
filePath / ПутьКФайлу | Строка | обяз.* | Или путь к файлу на диске (читается в base64) |
fileName | Строка | опц. | Имя файла в Доки |
responseSignatureRequired | Булево | опц. | Требовать ответную подпись (по умолчанию да) |
Обработка = Обработки.ДокиHTML.Создать();
Ящики = Новый Массив;
Ящики.Добавить("2AE...."); // globalId ящика контрагента в ЭДО
Данные = Новый Структура;
Данные.Вставить("organization", Новый Структура("inn,code", "7707083893", "7707083893"));
Данные.Вставить("recipientIds", Ящики);
Данные.Вставить("filePath", "C:\temp\dogovor.pdf"); // или documentFile = Base64Строка
Данные.Вставить("fileName", "dogovor.pdf");
Данные.Вставить("responseSignatureRequired", Истина);
Результат = Обработка.Доки_ОтправитьНеформализованныйПоДанным(Данные, АПИКлюч);
Если Результат.Успех Тогда
ЗапуститьПриложение(Результат.URL);
Иначе
Сообщить(Результат.ТекстОшибки);
КонецЕсли;
Входящие документы
Доки_ПолучитьВходящие → POST /api/1c/documents/incoming
| Поле | Тип | Описание | |
|---|---|---|---|
organization.inn / code | Строка | обяз. | Организация |
limit | Число | опц. | Размер страницы (по умолчанию 20, макс. 100) |
offset | Число | опц. | Смещение |
search | Строка | опц. | Поисковая строка |
date_from, date_to | Строка | опц. | Период |
counterpartyId | Строка | опц. | Фильтр по контрагенту |
Обработка = Обработки.ДокиHTML.Создать();
Параметры = Новый Структура;
Параметры.Вставить("organization", Новый Структура("inn", "7707083893"));
Параметры.Вставить("limit", 20);
Параметры.Вставить("date_from", "2026-01-01");
Параметры.Вставить("date_to", "2026-12-31");
Результат = Обработка.Доки_ПолучитьВходящие(Параметры, АПИКлюч);
Если Результат.Успех Тогда
// Результат.Данные — список входящих документов
Сообщить("Получено записей: см. Результат.Данные");
Иначе
Сообщить(Результат.ТекстОшибки);
КонецЕсли;
Статус документа по ID
Доки_ПолучитьСтатусДокумента → POST /api/1c/documents/status.
После успешной отправки ЭТрН/ЭЗЗ сохраните Результат.Данные.documentId и
Результат.Данные.docflowId — по ним можно узнать текущий статус в ЭПД.
| Поле запроса | Тип | Описание | |
|---|---|---|---|
organization.inn / code | Строка | обяз. | Организация API-ключа |
docflowId | Строка | реком. | Id документооборота из ответа отправки |
documentId | Строка | опц. | Id документа ЭПД; если нет docflowId — ищется ДО |
processId | Строка | опц. | Id асинхронного процесса импорта/подписи |
id | Строка | опц. | Алиас: сначала как docflowId, иначе как documentId |
Поле ответа Данные | Описание |
|---|---|
status | ready_to_sign · signed · completed · processing · unknown · … |
documentId, docflowId | Идентификаторы ЭПД |
isSigned, isCompleted | Булевы флаги |
docflowStatus, participantStatus | Сырые статусы ДО / участника |
signableDocumentId | Документ, ожидающий подписи (если есть) |
transactions | Массив транзакций ДО (id, documentId, type, status) |
process | Статус processId (если передавали) |
Обработка = Обработки.ДокиHTML.Создать();
// После отправки:
// DocumentId = Результат.Данные.documentId;
// DocflowId = Результат.Данные.docflowId;
Параметры = Новый Структура;
Параметры.Вставить("organization", Новый Структура("inn", "7707083893"));
Параметры.Вставить("docflowId", DocflowId);
Параметры.Вставить("documentId", DocumentId);
РезультатСтатуса = Обработка.Доки_ПолучитьСтатусДокумента(Параметры, АПИКлюч);
Если РезультатСтатуса.Успех Тогда
Сообщить("Статус: " + РезультатСтатуса.Данные.status);
// ready_to_sign | signed | completed | processing | unknown
Иначе
Сообщить(РезультатСтатуса.ТекстОшибки);
КонецЕсли;
Для УПД (черновик Доки) отдельный статус по ЭПД-id не применим — используйте ссылку
Результат.URL / id черновика из ответа. Функция рассчитана на ЭТрН и ЭЗЗ.
Вспомогательные функции
Обработка = Обработки.ДокиHTML.Создать();
// Результат XML-эндпоинтов
ContentBase64 = Обработка.Доки_ИзвлечьContentBase64(РезультатXML);
ИмяФайла = Обработка.Доки_ИзвлечьИмяФайлаXML(РезультатXML);
// Пустой каркас ответа (если собираете свой результат)
Каркас = Обработка.Доки_НовыйРезультатВызова(); // Успех, URL, ТекстОшибки, Данные