Решение для Честного Знака: Массовый вывод кодов маркировки и упрощенная работа с ЭЦП
Представляем специализированное программное обеспечение для Честного Знака, которое упрощает процесс получения данных о документах и кодах маркировки, а также позволяет управлять массовым выводом КМ из оборота. В основе решения лежит Python-приложение и C#-компонента, которая обеспечивает работу с электронной подписью, предлагая универсальный инструмент для авторизации и подписания документов, применимый в различных информационных системах, включая 1С.
- Описание
- Подробнее
Описание
Данное Python-приложение предназначено для работы с системой Честный Знак, обеспечивая функционал по получению отчетных данных о документах и кодов маркировки, а также по формированию и отправке документов массового вывода из оборота.

Интерфейс для просмотра документов в Честном Знаке.
Актуальность решения
В процессе оборота маркированной продукции пользователи сталкиваются с ситуациями, когда коды маркировки (КМ) остаются в статусе "в обороте". Это может происходить по причинам, не связанным с фактической реализацией или использованием, например, из-за ошибочных универсальных передаточных документов (УПД). Однако, коды также могут "зависать" и быть связанными с фактической реализацией, когда товар был продан конечному потребителю, но по различным причинам (например, отсутствие интеграции с Честным Знаком у покупателя, технические сложности или отсутствие необходимого программного обеспечения на момент продажи) вывод из оборота не был осуществлен своевременно. Стандартные методы вывода таких КМ из оборота могут быть трудоемкими и требовать значительных временных затрат.
Предлагаемое решение обеспечивает возможность массового вывода из оборота КМ, идентифицированных по конкретным документам (например, УПД) и за определенный период. Это позволяет оперативно и корректно списывать КМ, находящиеся в "зависшем" статусе, минимизируя временные издержки на их обработку.

"Информация о кодах маркировки и функция фильтрации по статусу."
Функциональные возможности
Получение списка документов из Честного Знака: Предоставляется возможность фильтрации документов по периоду, типу, товарной группе.
Автоматическое извлечение кодов маркировки из содержимого документов: Приложение анализирует XML- и JSON-содержимое документов (УПД, чеков и др.) для автоматического выделения связанных КМ. Данная функция позволяет получать КМ, непосредственно связанные с конкретными входящими или исходящими документами.
Получение детальной информации о КМ: Осуществляется загрузка актуальных статусов и полной информации для каждого идентифицированного кода маркировки из API Честного Знака.
Фильтрация и анализ КМ: Реализована функция фильтрации КМ по их статусам (например, "В обороте", "Выбыл", "Заблокирован") через специализированный диалог.
Массовый вывод КМ из оборота:
Особенность: Поддерживается вывод из оборота КМ, полученных по документам за указанный период, что является инструментом для работы с "зависшими" кодами.
Автоматизация формирования документов: Программа формирует необходимые документы вывода из оборота в формате JSON.
Параметризация причин вывода: Предусмотрен выбор причины вывода из оборота (розничная продажа, госконтракт, экспорт и др.) с возможностью заполнения соответствующих полей (FIAS ID, ID контракта, код страны, описание).
Разбиение на транши: Реализовано автоматическое разбиение больших объемов КМ на несколько документов для отправки, с учетом лимитов API Честного Знака.
Экспорт данных: Предусмотрена функция выгрузки списка кодов маркировки в формат CSV для последующего анализа или учета.
Система логирования: Все операции приложения, включая запросы и ответы API, а также системные сообщения и ошибки, отображаются в реальном времени на отдельной вкладке "Логи".

"Диалог вывода из оборота с автоматической группировкой по товарным группам."
Технические подробности и интеграция (для специалистов)
Архитектура решения:
Решение состоит из двух компонентов:
Основная программа на Python (PySide6):
Графический интерфейс: Реализован на базе PySide6.
Взаимодействие с API Честного Знака: Осуществляет отправку HTTP-запросов к API Честного Знака.
Парсинг документов: Анализирует XML- и JSON-содержимое документов для извлечения кодов маркировки.
Многопоточность: Использует асинхронную загрузку содержимого документов и информации по КМ, предотвращая зависание UI.
Управление данными: Обеспечивает эффективное отображение и обновление табличных данных.
Настройки и логирование: Включает интегрированную систему логирования для вывода информации в UI и на диск, а также менеджер настроек.
Отдельный компонент на C# (ChZnakAuth.exe):
Авторизация и Электронная Подпись (ЭЦП): Данный компонент отвечает за криптографические операции при взаимодействии с Честным Знаком. Он использует нативные возможности C# для работы с системными криптопровайдерами (например, КриптоПро CSP) с целью:
Получения токена авторизации API (подпись "челленджа" или формирование JWT-токена).
Выполнения квалифицированной электронной подписи (КЭП) формируемых документов вывода из оборота.
Межпроцессное взаимодействие: Python-программа вызывает ChZnakAuth.exe посредством subprocess, передавая необходимые параметры (ИНН, ID сертификата, пин-код, данные для подписи) и получая результат (токен, подписанные данные) через стандартный вывод или временные файлы.
Обоснование разделения: Использование C# обеспечивает прямой доступ к российской криптографии и изолирует данный функционал от основной логики Python-приложения.
Схема взаимодействия:
Пользователь вводит данные в GUI Python-приложения.
Python-приложение инициирует вызов ChZnakAuth.exe для получения токена авторизации (на старте или по запросу).
Python-приложение использует полученный токен для выполнения запросов к API Честного Знака (получение документов, информации по КМ).
При необходимости вывода КМ из оборота, Python-приложение формирует документ в формате JSON.
Python-приложение вызывает ChZnakAuth.exe для подписания сформированного JSON-документа.
ChZnakAuth.exe возвращает подписанный документ.
Python-приложение отправляет подписанный документ на API Честного Знака.
Системные требования и особенности развертывания:
Операционная система: Windows 10 или новее.
Криптографическое ПО: Установленный КриптоПро CSP версии 5.x.
Электронная подпись: Наличие действующего сертификата электронной подписи (ЭЦП) для работы с Честным Знаком. Рекомендуется запускать программу с правами пользователя, имеющего доступ к сертификату ЭЦП.
Подключение к Интернету: Для корректной работы требуется стабильное интернет-соединение.
Автономность: Все исполняемые .exe файлы содержат полный набор необходимых компонентов, что не требует дополнительных установок, кроме КриптоПро CSP. Программа готова к работе сразу после распаковки.
Самостоятельное использование C#-компонента (ChZnakAuth.exe)
Компонент ChZnakAuth.exe представляет собой отдельную утилиту, способную выполнять криптографические операции (авторизацию и подписание) независимо от основного Python-приложения. Это позволяет интегрировать функционал работы с ЭЦП Честного Знака в любые другие приложения (например, 1С, собственные скрипты или системы), где требуется получение токена или подписание документов.
