Привет всем интересующимся темой маркировки и взаимодействием с площадкой "Честный знак"
С 1 января 2021 г. оборот немаркированных товаров в нашей компании запрещен.
У нас УТ 10.3. Мы оптовая компания. При интеграции с Честным знаком возник вопрос, какие клиенты являются участниками товарооборота, а какие нет. По какой схеме нам отгружать товары: с выводом из оборота или передачей клиенту. Чтобы снизить затраты времени менеджера на выяснение этой информации я решил реализовать регламентное задание которое будет проверять регистрацию клиента в "Честном знаке" и фиксировать ее в реквизите типа булево справочника "Контрагенты". При беглом ознакомлении с API (возможно очень беглом) я не нашёл функционала получения этой информации, поэтому решил выкрутится парсингом html с помощью запроса к станице поиска по ИНН на сайте Честный знак. Получилась такая функция:
Функция ЯвляетсяУчастникомОборотаМаркированойПродукции(ИНН)
Соединение = Новый HTTPСоединение(
"xn--80ajghhoc2aj1c8b.xn--p1ai", 443,,,,, Новый ЗащищенноеСоединениеOpenSSL());
Запрос = Новый HTTPЗапрос("/business/spisokuot/?typeFilter=INN&UF_INN=" + ИНН);
Результат = Соединение.Получить(Запрос);
Если Результат.КодСостояния = 200 Тогда
Тело = Результат.ПолучитьТелоКакСтроку();
Чтение = Новый ЧтениеHTML;
ПостроительДОМ = Новый ПостроительDOM;
Чтение.УстановитьСтроку(Тело);
Документ = ПостроительДОМ.Прочитать(Чтение);
тегTable = Документ.ПолучитьЭлементыПоИмени("table");
Для Каждого ЭлементTable из тегTable Цикл
тегTr = ЭлементTable.ПолучитьЭлементыПоИмени("tr");
Для Каждого ЭлементTr Из тегTr Цикл
тегTd = ЭлементTr.ПолучитьЭлементыПоИмени("td");
Для Каждого ЭлелментTd Из тегTd Цикл
Если ЭлелментTd.ТекстовоеСодержимое = ИНН Тогда
Возврат Истина;
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецЦикла;
КонецЕсли;
Возврат Ложь;
КонецФункции
Показать
Вопрос к сообществу: Это велосипед? Есть ли типовые механизмы или с помощью API получения информации?