DataMatrix Recognition API: распознаём штрихкоды «Честного Знака» и передаём в 1С

09.06.26

Интеграция - Обмен с ГосИС

HTTP-сервис на python для распознавания DataMatrix штрихкодов "Честный Знак" из изображений. Принимает изображение в формате base64, выполняет распознавание и возвращает результат в JSON.

Проблема

Система маркировки «Честный Знак» обязывает участников рынка наносить DataMatrix-коды на товары. В 1С:Предприятие 8.3 нет встроенного механизма распознавания DataMatrix из изображений — платформа умеет генерировать штрихкоды, но не считывать их с фотографий. У нас возникла необходимость при возврате товара получить в систему полный штрихкод марки без использования сканера штрихкодов. Я немного умею в Python и немного в ИИ так что было решено сделать сервис для распознавания. Сразу нашёл в интернете библиотеку Aspose — она хорошо и быстро распознаёт DataMatrix, но оказалась платной. Далее выбор пал на pylibdmtx, но она только под Windows, а хотелось, чтобы админы просто развернули в Docker без танцев с бубном. Тогда выбрал ZXing-CPP — она кроссплатформенная и неплохо справляется даже с не слишком чёткими фото штрихкодов.

 

Решение

DataMatrix Recognition API — HTTP-сервис на Python, который принимает изображение в base64, распознаёт DataMatrix-код и возвращает результат в JSON. Проект включает готовое расширение для 1С с общим модулем КоннекторHTTP (http-коннектор от Владимира Бондаревского).

Репозиторий: https://github.com/rozer76/datamatrixRecognitionAPI

 

Архитектура

Сервис построен на стеке Python:

Компонент Назначение
FastAPI HTTP-фреймворк
ZXing-CPP Распознавание штрихкодов
OpenCV (headless) Предобработка изображений
NumPy Работа с массивами пикселей
Uvicorn ASGI-сервер

Пайплайн распознавания:

  1. Декодирование base64 → бинарные данные
  2. np.frombuffer → массив NumPy
  3. cv2.imdecode → изображение OpenCV
  4. Конвертация в grayscale, бинаризация по Оцу
  5. zxingcpp.read_barcodes → текст DataMatrix
  6. Формирование JSON-ответа

Бинаризация по Оцу повышает качество распознавания на зашумлённых и низкоконтрастных снимках, что типично для фотографий с мобильных устройств.

 

API

POST /recognize

Запрос:

{
  "file_data": "<изображение в base64>",
  "operation_uuid": "550e8400-e29b-41d4-a716-446655440000"
}

operation_uuid — идентификатор запроса, возвращается в ответе без изменений. Удобен для трассировки вызовов в логах 1С и сервиса.

Успех (200):

{
  "operation_uuid": "550e8400-e29b-41d4-a716-446655440000",
  "status": "success",
  "data": "0104607024328011210000012345\u001d911234"
}

Поле data содержит полный текст DataMatrix, включая разделитель GS (\u001d) — именно в таком формате код ожидает система «Честный Знак».

Код не найден (400):

{
  "operation_uuid": "550e8400-e29b-41d4-a716-446655440000",
  "status": "error",
  "message": "ШТРИХКОД НЕ РАСПОЗНАН. Ошибка типа ValueError"
}

Внутренняя ошибка (500):

{
  "operation_uuid": "550e8400-e29b-41d4-a716-446655440000",
  "status": "error",
  "message": "ШТРИХКОД НЕ РАСПОЗНАН. Ошибка типа <ТипИсключения>"
}

GET /health

Проверка доступности сервиса:

{ "status": "ok" }

Коды ответов

Код Условие
200 DataMatrix распознан
400 Код не найден или данные не являются изображением
422 Отсутствуют обязательные поля
500 Непредвиденная ошибка сервера

 

Интеграция с 1С — расширение

В репозитории идёт расширение datamatrixRecognitionAPI.cfe с общим модулем КоннекторHTTP.

В расширении используется индикация выполнения а он использует ДлительныеОперации БСП.

После подключения расширения вызов сервиса — одна строка:

ДанныеФайлаБаз64 = Base64Строка(Марка.ДД);
ТелоЗапроса = Новый Структура("file_data, operation_uuid", ДанныеФайлаБаз64, Марка.УИД);
РезультатJSON = КоннекторHTTP.PostJson("http://localhost:8000/recognize", ТелоЗапроса);

Разбор ответа:

Если РезультатJSON.status = "success" Тогда
    КодDataMatrix = РезультатJSON.data;
Иначе
    Сообщить(РезультатJSON.message);
КонецЕсли;

Установка расширения:

  1. Конфигуратор → Конфигурация → Расширения конфигурации
  2. Добавить → выбрать datamatrixRecognitionAPI.cfe
  3. Включить расширение

 

Практическое применение

Решение используется в рабочей конфигурации — встроено в документ «Возврат от клиентов». Приёмка возвратного товара выглядит так:

  1. Кладовщик фотографирует маркировку товара
  2. Фотография передаётся в сервис из формы документа 1С
  3. Сервис возвращает распознанный DataMatrix
  4. Код автоматически подставляется в табличную часть документа
  5. 1С сверяет код с данными «Честного Знака»

Результат: вместо ручного набора ~30 символов кода — одно нажатие. Ошибки ввода сведены к нулю.

З.Ы. В расширении нет кнопки по загрузке распознанного штрихкода, но сделать это даже новичку будет несложно.

 

Итоги

DataMatrix Recognition API — минимальный, но рабочий инструмент для связки 1С и «Честного Знака»:

  • Один эндпоинт /recognize — ничего лишнего
  • Расширение с модулем КоннекторHTTP — вызов из 1С в одну строку
  • Docker-образ — развёртывание без зависимости от ОС
  • Бинаризация по Оцу — уверенное распознавание на неидеальных фото
  • Реальный кейс — документ «Возврат от клиентов» в рабочей конфигурации

Репозиторий: https://github.com/rozer76/datamatrixRecognitionAPI

Описание: README.md

Вступайте в нашу телеграмм-группу Инфостарт

DataMatrix Штрихкод Честный Знак ГИС МТ

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Обмен с ГосИС Бюджетный учет Регламентированный учет и отчетность Бухгалтер Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 1С:Управление холдингом Химическая промышленность Государственные, бюджетные структуры Электротехника и микроэлектроника Машиностроение и приборостроение Металлургическая промышленность Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Автоматизация раздельного учета в 1С:Бухгалтерии по ГОЗ в соответствии с 275-ФЗ. Готовое решение для учета госконтрактов, формирования отчетности и контроля исполнения. Поддержка военной приемки, НИОКР и требований Минпромторга. Профессиональный консалтинг и регулярные обновления продукта

40000 руб.

28.08.2020    548516    3718    143    

1395

Оптовая торговля Розничная торговля Обмен с ГосИС Бухгалтер 1С:Предприятие 8 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Рестораны, кафе и фаст-фуд Россия Бухгалтерский учет Управленческий учет Акцизы Платные (руб)

Автоматизация учета ЕГАИС в 1С для оптовой торговли, производства и импорта алкогольной продукции. Получение и отправка ТТН, отправка акта о постановке на баланс и акта о списании. Получение остатков. Загрузка и сопоставление номенклатуры и контрагентов. Оправка в ЕГАИС отчетов о производстве и импорте.

15.12.2015    185161    1412    biz-intel    374    

417

Бюджетный учет Обмен с ГосИС Бухгалтер 1С:Предприятие 8 1С:Бухгалтерия 3.0 Государственные, бюджетные структуры Россия Бухгалтерский учет Платные (руб)

Доработка конфигурации 1С:Бухгалтерия предприятия, редакция 3.0. реализована в виде расширения. Предназначена для ведения раздельного учета и автоматизации заполнения отчетности исполнения контрактов ГОЗ в конфигурациях 1С БП КОРП, ПРОФ, Базовая, БИТ.ФИНАНС.

62220 руб.

16.08.2019    105170    315    95    

179

Оптовая торговля Розничная торговля Обмен с ГосИС Программист Бухгалтер Пользователь 1С:Предприятие 8 1C:Бухгалтерия Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Россия Бухгалтерский учет Управленческий учет Платные (руб)

Решение создано для помощи разработчикам, интеграторам и другим заинтересованным лицам по настройке системы маркировки обуви, одежды, лекарств, табака, фото, молока, духов(парфюма), питьевой воды, велосипедов и шин. Задавайте вопросы по работе с ЦРПТ, GS1, ЭДО, Национальным каталогом, накоплен опыт и знания по данным темам.

4000 руб.

18.03.2019    123522    82    115    

204

Бюджетный учет Обмен с ГосИС Бухгалтер Пользователь 1С:Предприятие 8 1С:Управление производственным предприятием Государственные, бюджетные структуры Россия Бухгалтерский учет Платные (руб)

Для 1С: УПП 1.3 предлагаем Вашему вниманию подсистему "Раздельный учет результатов финансово-хозяйственной деятельности организаций, выполняющих государственный оборонный заказ (раздельный учет ГОЗ)". Ключевые возможности подсистемы: - Автоматическое заполнение регламентированного отчета «Исполнение контрактов ГОЗ»; - Расшифровка показателей отчета об исполнении контрактов ГОЗ с детализацией до документов; - Контроль хозяйственных операций на соответствие требованиям Постановления Правительства № 47; - Автоматизированный ввод начальных данных по контрактам, заключенным ранее даты начала использования подсистемы.

91500 руб.

25.09.2020    38237    47    10    

44

Обмен с ГосИС 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Оптовая торговля, дистрибуция, логистика Пищевая промышленность Россия Бухгалтерский учет Платные (руб)

Модуль подходит для производителей и импортеров упакованной воды, молочной продукции, соковой продукции, пива и пивных напитков, безалкогольных напитков, морепродуктов, кормов для домашних животных, антисептики (список поддерживаемых товарных групп постоянно дополняется). Для оптовиков и розницы можно работать с любыми товарными группами по ЭДО.

11500 руб.

25.10.2024    5712    13    0    

12

Обмен с ГосИС Логистика, склад и ТМЦ Программист Пользователь 1С:Предприятие 8 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Платные (руб)

Внешняя обработка для инвентаризации кодов маркировки в системе "Честный знак". Позволяет быстро определить и списать коды маркировки проданного, испорченного, утраченного (полный перечень причин списания указан ниже)  товара, которые всё ещё числятся за организацией. Привести в соответствие остатки маркированного товара программы 1С и системы "Честного знака".

6649 руб.

09.01.2024    17265    175    30    

162

Оптовая торговля Производство готовой продукции (работ, услуг) Розничная торговля Обмен с ГосИС Программист Бухгалтер Пользователь 1С:Предприятие 8 1C:Бухгалтерия Сельское хозяйство и рыболовство Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Рестораны, кафе и фаст-фуд Пищевая промышленность Россия Бухгалтерский учет Управленческий учет Платные (руб)

Универсальная конфигурация Хамелеон Меркурий для взаимодействия с системой Меркурий (тестовый+рабочий+демо контур) может использоваться для интеграции в любую конфигурацию на базе 1С, версии ПРОФ и выше. Основное отличие от других решений - работа через веб-интерфейс и API 2.0(API 2.1). Для удобства реализован общий интерфейс в виде обработки, схожей с интерфейсом Меркурий, но возможностей гораздо больше, т.к. при интеграции в Вашу учетную систему, можно на основании Ваших справочников и документов, создавать соответствующие документы и справочники в системе Меркурий и наоборот.

4000 руб.

08.11.2017    129802    275    153    

403
Для отправки сообщения требуется регистрация/авторизация