Windows-приложение для автоматизации работы с Контур.Маркировкой и «Честным знаком» на производстве. Оно объединяет заказ и загрузку кодов, ввод продукции в оборот, агрегацию, задания для ТСД и печать этикеток BarTender в одном операторском интерфейсе.
Заявки из WMS принимает локальный HTTP-мост на порту 8791; отдельного экрана для них в приложении нет.
- авторизация в Контуре через существующий профиль Яндекс Браузера;
- подписание документов через КриптоПро/CAdES;
- заказ, получение и учёт кодов маркировки;
- ввод продукции в оборот и агрегация упаковок;
- обмен заданиями с WMS и ТСД;
- печать этикеток через BarTender;
- фоновые процессы, журналирование и автоматическое обновление приложения.
| Часть | Назначение |
|---|---|
main.py, backend/ |
Python-приложение, интеграции, локальный API и desktop-оболочка |
frontend/ |
React-интерфейс; готовая сборка хранится в frontend/dist |
docs/ |
Архитектура, разработка и эксплуатация |
Install.bat, Install.exe |
Установка приложения на рабочую станцию |
update.bat |
Принудительное обновление установленной копии |
Основной стек: Python 3.12, pywebview, Selenium, React, TypeScript, Vite, CryptoPro, CAdES и BarTender. Подробная схема потоков данных приведена в описании архитектуры.
- Windows 10/11 и доступ в интернет;
- Яндекс Браузер с профилем, в котором выполнен вход в Контур;
- КриптоПро CSP и сертификат организации;
- BarTender для печати этикеток.
Лицензионные программы в репозиторий и установщик не входят.
- Склонируйте репозиторий, например в
%USERPROFILE%\kontur_api. - Запустите
Install.batилиInstall.exe. - Дождитесь установки Git, uv, Python 3.12, зависимостей и YandexDriver.
- Откройте созданный
.envи заполните параметры своей организации до первого запуска.
Установщик создаёт пустой .env, ярлык «Контур Маркировка» на рабочем столе и ярлык фонового моста «CRPT server» в автозагрузке. Приложение не готово к работе, пока обязательные значения не заполнены.
| Переменная | Что указать |
|---|---|
ORGANIZATION_ID, OMS_ID, WAREHOUSE_ID |
идентификаторы своей организации, станции управления заказами и склада |
PRODUCT_GROUP, RELEASE_METHOD_TYPE, CIS_TYPE, FILLING_METHOD |
значения, согласованные с используемым процессом маркировки |
BASE_URL |
адрес используемого контура Контур.Маркировки |
THUMBPRINT |
отпечаток установленного сертификата организации |
CHZ_BRIDGE_TOKEN |
отдельный случайный токен локального HTTP-моста |
WMS_API_BASE_URL |
адрес WMS, если интеграция включена |
Параметры отладки и сетевого прослушивания включайте осознанно по комментариям в .env.example. На уже настроенном ПК после git pull снова запустите установщик — окружение будет обновлено в той же папке без публикации локального .env.
Обычный запуск выполняется ярлыком «Контур Маркировка». Для диагностики:
.\.venv\Scripts\python.exe main.pyПриложение проверяет обновления каждые пять минут. При появлении новой версии в шапке отображается кнопка «Обновить». Для принудительного сценария используйте update.bat: он выполняет git pull и повторную установку окружения. Журнал обновления находится в runtime\logs\kontur_update.log.
Node.js на рабочих местах не требуется: готовый интерфейс уже находится в репозитории.
Backend и desktop-оболочка:
uv sync --dev
uv run flake8
uv run mypy .
uv run python main.pyFrontend:
cd frontend
npm ci
npm run lint
npm run test
npm run buildПолная настройка среды описана в руководстве разработчика, а карта файлов и обязательные правила изменений — в AGENTS.md.
| Данные | Расположение |
|---|---|
| Cookies, логи, резервные копии и временные файлы | runtime/ — не попадает в Git |
| История заказов | full_orders_history.json |
| Настройки рабочей станции | .env, создаётся из .env.example |
| Драйвер браузера | driver\yandexdriver.exe, загружается автоматически |
Проект рассчитан на внутренний Windows-контур и зависит от установленного коммерческого ПО, сертификатов организации и доступности внешних сервисов. Без КриптоПро, BarTender и настроенной браузерной сессии все производственные сценарии воспроизвести нельзя.