Модуль 1С · ДокиHTML · Function-call API

Инструкция по модулю ДокиHTML

Подключение внешней обработки к конфигурации 1С, получение API-ключа и вызов экспортируемых функций для создания документов ЭДО (УПД), ЭТрН и ЭЗЗ — в том числе с откреплённой подписью.

1. Скачать и подключить модуль

Один файл ДокиHTML.epf подходит и для обычных форм, и для тонкого клиента. Актуальный код экспорта (включая Доки_ПолучитьXML*) — в МодульОбъекта.bsl; при вшивке в конфигурацию обновите модуль объекта обработки из этого файла.

Внешняя обработка

  1. Файл → Открыть → выбрать ДокиHTML.epf.
  2. В настройках обработки укажите API-ключ (или передавайте его параметром при вызове).
  3. Базовый URL по умолчанию: https://node.1os.su/doki.

Вшивка в конфигурацию

  1. Конфигуратор → Обработки → добавить ДокиHTML.
  2. Модуль объекта и формы — из поставки модуля.
  3. Вызов: Обработки.ДокиHTML.Создать() — путь к .epf не нужен.

2. Получить API-ключ

На странице регистрации можно получить триальный API-ключ и привязать организации по ЭЦП или постоянному токену Доки. Страницу можно открыть из 1С (список ИНН передаётся автоматически) или самостоятельно — тогда ИНН организаций указываются вручную.

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 + signatureFilebase64опц.Готовый 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);
КонецЕсли;

Список документов — массовая отправка ЭТрН

Команда на форме списка (например, Задание на перевозку): по выделенным строкам собрать данные и вызвать Доки_ОтправитьЭТрНПоДанным для каждой. Добавьте команду формы списка и повесьте на кнопку «Отправить в Доки».

  1. Форма списка → Команды → новая команда ДокиОтправитьЭТрН.
  2. На форму — кнопка с этой командой.
  3. В модуле формы — обработчик ниже; функцию СобратьДанныеЭТрНИзЗадания заполните полями своей конфигурации (см. таблицу ЭТрН).

Если документ уже поддерживается модулем (ЗаданиеНаПеревозку / РеализацияТоваровУслуг / Взвешивание), вместо сборки структуры можно вызвать Доки_ОтправитьЭТрН(Ссылка, АПИКлюч) — внутри он сам соберёт данные и вызовет Доки_ОтправитьЭТрНПоДанным.

// === Модуль формы списка документов (управляемые формы) ===

&НаКлиенте
Процедура ДокиОтправитьЭТрН(Команда)

    Выделенные = Элементы.Список.ВыделенныеСтроки;
    Если Выделенные.Количество() = 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 + signatureFilebase64опц.Готовый 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).

  1. Доки_ПолучитьXMLЭТрНПоДанным / Доки_ПолучитьXMLЭЗЗПоДаннымДанные.contentBase64, filename
  2. Доки_ПодписатьОткрепленноПоИНН(contentBase64, ИНН) → подпись base64
  3. В пакет: 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)
documentFilebase64обяз.*Содержимое файла
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
Поле ответа ДанныеОписание
statusready_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, ТекстОшибки, Данные

Нужна помощь с внедрением на вашей конфигурации — напишите в Telegram.