1. На вкладке "Настройка" поле сервер заполняется автоматически при выборе вида продукции. Необходимо заполнить поле ИНН. ИНН берётся из ЛК Честного знака участника оборота.
2. Нажимаем кнопку "Загрузить сертификаты". В табличную часть загружаются сертификаты.
3. Выбираем сертификат, щёлкнув мышью по нужному сертификату. При этом поле "Сертификат" должно заполниться.
4. Нажимаем кнопку "Получить токен". Происходит процесс получения токена. И заполняются поля "УИД" и "Токен". "УИД" это поле, участвующее в получении токена. После того как токен получен и заполнен в поле "Токен", можно приступать к работе с API Честного знака.
5. Переходим на вкладку "Запрос КИ"
6. Выбираем "Статус КИ", который нужно запросить, и "Вид продукции". По умолчанию они заполняются статусом "INTRODUCED" и "Лёгкая промышленность"
7. Нажимаем кнопку "Создать задание на выгрузку". Создаётся задание на выгрузку. Получается ID задания, имея который можно проверять статус задания.
Задание некоторое время готовится на сервере Честного знака. А в обработке включается таймер проверки задания на готовность.
Раз в 20 секунд выполняется запрос на готовность задания и возвращается результат. "COMPLETED" - готово к загрузке. "PREPARATION" - готовится. Там есть еще и другие статусы. Про них можно почитать в официальной документации.
Проверку задания можно прервать, нажав кнопку "Сброс". И потом возобновить, нажав кнопку "Включить проверку". Нажимая эту кнопку, надо иметь заполненным поле ID задания.
После того, как будет получен статус "COMPLETED", проверка задания автоматически завершается и можно приступать к загрузке архива с КИ.
8. Имея статус "COMPLETED", нажимаем кнопку "Загрузить результат". Загружаются КИ в таблицу на форме.
В работе этой обработки есть один очень жёсткий костыль. Когда происходит загрузка данных из ЧЗ в виде CSV файла и построчный парсинг, используется функция ВыделениеКИизСтроки(). Она очень костыльная. Связано это с тем форматом данных, который возвращает ЧЗ. Дело в том, что они и в КИ, и в других блоках данных используют любые символы. В том числе и служебные. Такие как запятая и кавычка.
Например, приходит строка:
"04605648024,25-8H.-y""","04605648024225",,,"0",,"3223000539",,,"Табак для кальяна Must Have Undercoal Baikal c ароматом лесных трав и хвои","MUST HAVE",,"АО ""ПССФ""","2021-06-24T00:00:00.000Z","2021-07-14T13:00:00.000Z","WITHDRAWN",,"LOCAL","RETAIL","UNIT","TOBACCO","2021-05-07T08:21:14.150Z","2021-05-07T04:38:59.110Z",,"[]",,
и КИ в данном случае
04605648024,25-8H.-y"
Что существенно осложняет разбор строки CSV, потому как эти символы должны быть служебными и не должны использоваться в данных. То, что было написано, это такая заплатка, которая позволяет работать коду и получать данные. Иногда могут проскакивать ошибки при разборе. Тут либо надо быть внимательным, либо, изучив формат данных, отдаваемых ЧЗ, посоветовать в комментариях способ разбора строки.
Официальная документация
https://честныйзнак.рф/upload/TRUE_API.pdf
За основу работы обработки взят метод API
8.1.3. Получение списка КИ участника оборота товаров по заданному фильтру.
Тестировалось на платформах 8.3.13.1926 и 8.3.18.1334.
15.12.21 - Обновление
Обнаружена проблема с загрузкой КИ для ООО. Проблема была в ИНН который в сертификате. К ИНН добавляется два нуля. Теперь в обработке есть реквизит "форма собственности", который обязателен для заполнения ИП/ООО. И тогда если выбирается ООО, то из ИНН корректно убираются нули при получении данных из сертификата.
22.12.21 - Обновление
В процессе работы выяснилось, что сертификаты выданные после 01.08.2021 года содержат ИНН директора для ООО, а не организации. Поэтому автоматическое заполнение поля ИНН для ООО не возможно. Функция автоматического заполнения ИНН убрана, чтобы создавать меньше путаницы. Теперь поле ИНН нужно заполнять из личного кабинета. Также убран реквизит "форма собственности".
08.02.22 - Обновление
Добавлены все виды продукции. Сервер для запросов выбирается автоматически при выборе вида продукции.
Протестированы следующий виды продукции :
- Лёгкая промышленность
- Обувные товары
- Табачная продукция
- Альтернативная табачная продукция