1с распознавание штрих кода code128 на скане

Как подменить механизм распознавания штрихкодов


Общее описание

Механизм распознавания штрихкодов нужен для потокового сканирования. Потоковое сканирование – это массовый ввод документов (со сканера или из каталога со сканированными изображениями) с автоматическим прикреплением сканированных изображений к карточкам документов (входящих, исходящих, внутренних). Прикрепление к документам осуществляется как раз на основании штрихкода, находящегося на отсканированном изображении (на том же листе, что и текст документа, или на отдельном листе, или на наклейке поверх листа документа).

Обратите внимание:
Важно отличать распознавание штрикхода на картинке (используется в потоковом сканировании) от сканирования штрихкода с помощью ручного сканера штрихкодов (в «1С:Документообороте» такое сканирование используется для интерактивного открытия карточки выбранного документа).

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

Возможны два варианта работы распознавания:

Встроенная компонента распознавания штрихкодов работает только с штрихкодами формата EAN-13.

Важная особенность: если сканированные изображения находятся в pdf-файлах, понадобится установка бесплатных программ ImageMagick и GhostScript (на клиенте, на той машине, где будет запускаться потоковое сканирование).

Зачем нужна подмена механизма распознавания штрихкодов

Подмена может понадобиться в следующих случаях:

Чем можно заменить механизм распознавания штрихкодов

Нужно найти подходящую вам библиотеку С++,С# и т.д., скажем zxing от Google или какую то иную (необходимо смотреть на правила лицензирования – полностью ли бесплатна компонента или с ограничениями), и сделать внешнюю компоненту для использования в «1С:Документообороте». Для реализации внешней компоненты нужно иметь опыт разработки на C++.

Если вы планируете использовать библиотеку, реализованную как ActiveX-объект, собственная внешняя компонента не нужна, просто используйте новый COMОбъект (это работает только под Windows).

Источник

Штрихкодирование входящих документов с дальнейшим распознаванием и загрузкой скана в 1С

Цели внедрения штрих кодов в компании:

— сокращение затрат на ведение электронного архива документов

— повышения качества архива

Описание:

Этикетка:

Формат штрих кода: Code 128 позволяет создать уникальную этикетку организации, т.к. входящие документы могут иметь свои штрих-коды. Значение этикетки состоит из префикса + цифровой номер. Пример «ЙЙЙЙ123456789».

Размер: требование не должно занимать много места при устойчивом считывании и распознавании. По результатам теста получили ширина 55мм высота 15мм.

К этикеткам были выдвинуты условия долговечности, поэтому термопечать сразу отпала. Вариант термопереноса не плох, но дороговат: примерная стоимость 1 этикетки 50 копеек. Заказ в типографии при объемах в 400 тыс. позволил получить стоимость 1 этикетки = 13 копеек. (стоимость указана на 01.05.2015г.)

Этикетки заказаны в рулонах по 2 тыс. этикеток.

Рабочее место пользователя:

Для работы с штрих-кодом на рабочее место пользователей, работающих с входящими документами, установлены сканеры штрих-кода.

Обработка документа

В ходе обработки первичного документа значение этикетки считывается сканером штрих-кода и присваивается документу в системе. Таким образом мы получаем связь первичного документа с документом в системе.

Далее документы передаются в архив, где сканируются и архивируются.

Отсканированные файлы автоматическое регламентное задание распознает и прикрепляет в систему.

По итогам дня сотруднику архива приходит уведомление о зарегистрированных и не отсканированных документах.

Применяемые методы:

1) Подключение сканера штрих кода

— имеется типовое решение по подключению торгового оборудования, всю необходимую информацию можно найти на сайте поддержки 1С.

2) Распознаем сканированый документ.

Распознавание происходит автоматически с заданным интервалом на сервере 1С.

При этотм большинство операций выполняют внешние приложения. Для запуска на сервере 1С используем объект Wscript.Shell

Пример запуска файла.bat

В зависимости от формата сканирования может созникнуть необходимость перевода файла распознавания из PDF=>JPG.

Используем GhostScript (www.ghostscript.com/)

Строка запуска с параметрами

Сотрудник сканирует документ с заданными параметрами в определённый каталог. Т.К. сканированный оригинальный документ имеет большие размеры а место на диске надо экономить перед заугрзкой файла в хрнилище используем GhostScript.

СтрокаЗапуска = «@»»» + ПутьОбработкаДЛЛ +»»»»+» »
+»»»»+ПутьФайлРаспознавания +»»»»;

Повышение вероятности распознавания

Возможные ошибки при распознавании:

— оптическое искажение, изломы, кривость наклейки.

При правильной (ровной) наклейки штрих кода данной проблемы почти не встречается. Работаем с персоналом на предмет правильной наклейки штрих кода, согласно инструкции.

Читайте также:  страшные истории со страшным концом

— грязь, помехи при сканировании, сканирование копии.

Для обработки файла используем приложение Image Magick, которое также запускаем посредством командной строки.

Параметры Image Magick: (http://www.imagemagick.org/)

В обработке возможно просмотреть конкретные примеры выбора параметров.

Данная обработка распознает штрих код из *.pdf файла, на выходе получаем список файлов и штрих кодов.

Для распознавания из формата PDF необходимо скачать приложение Image Magick и ghostscript и указать до них путь. Без данных приложений распознавание будет только из файлов jpg.

Источник

Девопсы в 1С: микросервис распознавания штрихкодов

«Мы словно живём в комнате, где на стене висит плакат. Уставимся на него и думаем, что это и есть весь мир. Комната. И плакат. На плакате что-то симпатичное: пейзаж, знаменитость. Как в том фильме про тюрьму. Как же он назывался? Комната — тюремная камера. А картинку каждый из нас видит по-своему. Она может быть прекрасной или ужасающей, но все мы к ней прикованы. Но это всё неправда: лишь ширма, скрывающая истину. Они нам врут. Мы врём самим себе. Комната — не весь мир. Мир намного больше, намного удивительнее. Плакат на стене скрывает лаз, ведущий в реальный мир. Мы ощущаем себя в безопасности в той комнате. Но иногда. Иногда нечто выползает из-за плаката. И каждый, кто становится тому свидетелем, в страхе пытается забыть о том, что видел.»

— Джесси Фейден, Control

Итак, одеваем свой фурсьюит и ставим задачу:

Есть база 1С, в которой есть документы, к которым привязаны штрихкоды. Для простоты возьмём EAN13, но вообще более перспективными выглядят QR.

Штрихкоды печатаются в печатных формах, а еще есть возможность печатать их на этикетках и лепить на готовые бумажные документы.

Обе эти задачи решаются тривиально, например, с помощью специального шрифта для печати EAN13 и дополнительного реквизита.

Но теперь, после того, как эти распечатанные документы подписали, мы хотим их засунуть обратно в 1С. Для хранения файлов в БСП есть готовые средства, соответственно, они присутствуют во всех типовых конфигурациях.

Будем считать, что пользователь кладет в сканер сразу все листы, относящиеся к одному документу. Например, это может быть счет на трёх страницах, коммерческое предложение и прайс. Условимся, что весь этот пакет будет отсканирован в один PDF-документ (для удобства дальнейшего использования).

Теперь у нас получилась папка с pdf-файлами, в которых содержатся сканы документов со штрихкодами. Нужно распознать штрихкоды и привязать их к документам. Естественно, часть про привязать находится на стороне 1С, но что с распознаванием?

Варианты примерно следующие:

Собственно, третьим вариантом и попробуем воспользоваться. А так как сейчас довольно популярен Python, и я про него практически ничего не знаю, то я попробовал решить эту задачу с его помощью.

Архитектура будет такая:

в одной локальной сети стоит три машины:

Что понадобится для реализации?

Питон вроде бы устанавливается вместе с IDE, но можно скачать c https://www.python.org/downloads/

Следующие три компонента устанавливаются с помощью пакетного менеджера:

pip install flask
pip install pyzbar
pip install pdf2image

К сожалению, так как на самом Питоне написано ничего, то для работы нужно установить некоторые компоненты. В нашем случае пришлось установить http://blog.alivate.com.au/poppler-windows/, распаковать архив и прописать путь к папке bin в переменную окружения PATH (у меня Windows).

Собственно, все эти библиотеки я нашел за 20 минут гуглежа, думаю, есть варианты и получше, но важен сам принцип.

Во фласке методы REST API прописываются с помощью так называемых роутов, выглядит похоже на 1С:

Теперь осталось сохранить указанную страницу файла, путь к которому получили, и распознать с неё штрихкод EAN13.

За сохранение страницы как раз отвечает pdf2image, и делает это с помощью единственного вызова:

За распознавание штрихкода отвечает pyzbar:

Как выяснилось, decode в качестве параметра принимает объект типа Image, и convert_from_path возвращает объект типа Image, но это разные Image 🙁

Читайте также:  виниловые полы про квартиру

В процессе выяснилась странная особенность то ли Flask, то ли не знаю чего: нельзя передать слэш (разделитель пути) даже в виде url-кода %2F. Поэтому я его заменил на |:

Вот пример изображения:

Для случая, когда папка недоступна, нужны доработки: 1С будет отправлять двоичные данные, а сервер на Питоне будет распознавать штрихкод из них. Для этого в pdf2image уже есть convert_from_bytes, и еще нужно выяснить, как объект-изображение из pdf2image преобразовать в изображение pyzbar. Заглушки в коде я уже поставил 😉

PS. Спросите, причем тут девопс? Ну так нужно этот скрипт на питоне положить в Docker, вот и всё!

PPS. Прошу пинать, так как всё натыкано мышкой как попало, хотелось бы привести всё в нормальный вид, а опыта работы с Питоном, Гитом и Докером особо нет.

Источник

Компонента распознавания штрихкодов

Добрый день, коллеги

Кто-нибудь разбирался что за компонента используется в документообороте для распознавания штрих. кодов? Это разработка самой 1С или чья то сторонняя? Как найти документацию по ней.

Пытаюсь настроить новый шаблон для распознавания штрихкода, но он все никак не распознает, то ли с местоположением проблема, то ли с самим штрих. кодом.

Кто-нибудь знает как добыить инфу по компоненте?

Спасибо, а описание этой компоненты можно найти то?

Да методы то там немудреные, все более менее ясно, только вот даже сделанные документооборотом ШК что-то не распознает, какие бы настройки положения не задал.

А вообще эта компонента насколько стабильно распознает? Сильно стабильность зависит от настроек положения ШК? И насколько ABBYY лучше это делает, ведь такой вариант тоже есть в документообороте

Не совсем понятно: штрихкод стандартный настроили (EAN13, EAN128) или придумали свой?

Если свой, то какую стандартную схему для «дешифровки» выбрали?

А дешифровка по стандартному набору вшита в драйвера сканеров штрихкодов.
Посмотрите по документации какие виды штрихкодов считывает Ваш сканер и используйте для кодировки этот тип штрихкода.

Нужно распознать штрихкод из изображения, без сканера, программно

Вот и поставили задачу разобраться с компонентой документооборота

ABBYY:
В процессе регистрации автоматически выполняется генерация сквозных регистрационных номеров по сложным правилам. Кроме того, каждому документу в системе автоматически присваивается штрихкод. Сформированный штрихкод можно распечатать на отдельном листе или поверх титульного листа бумажного документа, распечатать на наклейке или вставить в электронный документ как изображение. Штрихкоды используются в дальнейшем для быстрого поиска учетных карточек документов и при потоковом сканировании для автоматического прикрепления файлов к документам.

**********************************
В топике вопрос про шаблон штрихкода, которые не срабатывает!
потому и было сделано предположение, что неверно запрограммирован шаблон

Типы штрихкодов:
Одномерные: Check Code 39, Check Interleaved 25, Code 128, Code 39, EAN 13, EAN 8, Interleaved 25, CODABAR (без контрольной суммы), UCC Code 128, Code 2 of 5 (Industrial, IATA, Matrix), Code 93, UPC-A, UPC-E, Postnet.
Двумерные: PDF 417.
**********************************

«Так как потоковая загрузка со сканера выполняется автоматически, для определения штрих-кода требуется очень высокое качество распознавания отсканированных изображений.

180.000 до 600.000 в зависимости от объемов, но единовременный платёж.

Рекомендую MessagingToolkit-Barcode
Бесплатная библиотека с примерами.

Прошу простить, если не в тему:

Можно к 1С подключить такую штуку?:

Источник

Штрихкодирование

Данный раздел содержит общие сведения, касающиеся штрихкодирования, нюансы, связанные с формированием изображения штрихкодов, а также методику штрихкодирования товаров на предприятии.

Формат EAN13


Формат EAN13 является расширением формата UPC-A. Данный формат позволяет кодировать 12 символов (цифры от 0 до 9), к которым добавляется справа контрольная (тринадцатая) цифра, значение которой однозначно расчитывается в соответствии с кодируемой последовательностью. Значение штрихкода UPC-A соответствует значению штрихкода EAN-13, у которого первый символ 0.

Кодируемая при помощи этого алгоритма последовательность символов, обычно, представляет уникальный международный номер товара EAN13/UCC, который является уникальным в международном масштабе.

Формат EAN8


Формат EAN8 является расширением формата UPC-E и представляет сокращённую форму EAN13. Данный формат позволяет кодировать 7 символов (цифры от 0 до 9), к которым добавляется справа контрольная (восьмая) цифра, значение которой однозначно расчитывается в соответствии с кодируемой последовательностью. Значение штрихкода UPC-E соответствует значению штрихкода EAN-8, у которого первый символ 0.

Формат Code 39


Существует также расширение Code 39, которое, по сути, представляет набор правил, по которым символы, не входящие в список допустимых для данного формата, кодируются при помощи последовательностей допустимых символов. Стандартное расширение дополняет список допустимых символов строчными буквами латиницы.

Формат Code 93


Формат Code 93 (также называется «USS-93») позволяет кодировать такую же последовательность символов, как и расширение Code 39, но при этом изображение штрихкода получается заметно меньше. К недостаткам формата можно отнести отсутствие возможности упаковки кодируемой информации.

Формат Industrial 2 of 5



Формат Interleaved 2 of 5



Формат Codabar


Формат Codabar (также называется «Ames code», «USD-4», «NW-7», «2 of 7 code») позволяет кодировать цепочку символов (цифры, некоторые знаки пунктуации) произвольной длины + один из 4 возможных (A, B, C, D) префиксов и один из 4 возможных суффиксов (также A, B, C и D).

К недостаткам данного алгоритма следует отнести отсутствие возможности упаковки кодируемой цепочки символов.

Формат Code 128


Формат Code 128 является форматом высокой плотности, позволяет кодировать цепочку символов (первые 128 символов ASCII-таблицы) произвольной длины. Формат поддерживает упаковку данных.

Формат EAN128



Формат RSS 14


Формат RSS 14 является, как и Code 128, форматом высокой плотности и позволяет кодировать цепочку символов (первые 128 символов таблицы ASCII) произвольной длины. При кодировании осуществляется упаковка кодируемой последовательности символов. К недостаткам можно отнести то, что штрихкоды данного типа поддерживаются ограниченным набором сканеров.

Формат Code 16k


Формат Code 16k является двумерным, штрихкод представляет последовательность одномерных штрихкодов (формат которых подобен Code 128), расположенных друг над другом, что позволяет увеличить плотность кодирования. К недостаткам алгоритма можно отнести то, то данный формат поддерживается ограниченным набором сканеров штрихкода.

Формат PDF-417


Формат PDF-417 является одним из самых распространённых двумерных форматов штрихкодирования. Данный формат позволяет кодировать последовательность символов кодовой страницы CP437, поддерживает ряд методов упаковки данных, а также параметризуемый алгоритм восстановления информации в случае повреждения изображения штрихкода.

Формирование изображения штрихкода

Необходимо отметить, что для корректного считывания изображения штрихкода сканерами, требуется, чтобы был достаточный контраст между тёмными и светлыми элементами штрихкода. В связи с этим существует ограничение на сочетания цветов элементов штрихкода.

Нормально считываются сканером следующие сочетания цветов:

Считываются при определённых условиях:

Не считываются при определённых условиях:

Также следует обратить внимание, что изображение штрихкода, в общем случае, нельзя масштабировать, т.к. при этом могут нарушиться соотношения ширины штрихов и пробелов штрихкода. Масштабирование, обычно, допускается в сторону увеличения изображения в целое число раз (этим, в частности, объясняется «скачкообразное» изменение размеров штрихкода при использовании элемента управления «1С:Печать штрихкодов»).

Методика штрихкодирования

При штрихкодировании товаров на предприятии, в первую очередь, следует уделить внимание уникальности используемых значений штрихкодов. В большинстве случаев в торговых точках осуществляется продажа товаров, на упаковки которых уже нанесён корректный штрихкод EAN13 или EAN8. При этом в случае, если существует необходимость задать штрихкоды для других товаров, применяется следующая методика: товарам назначается штрихкод EAN13, уникальный в пределах предприятия, значение которого начинается с цифры «2». При этом гарантируется, что ни для какого из товаров, на заводской упаковке которого содержится изображение штрихкода EAN13, не будет совпадения с присваиваемым самостоятельно штрихкодом (первая цифра «2» указывает на то, что используется «внутренний» штрихкод предприятия, уникальность которого должна обеспечиваться на предприятии самостоятельно).

Большинство весов, осуществляющих этикетирование весового товара при помощи EAN13, формируют штрихкод следующего формата:

Дополнительно
Более подробно с описанием штрихкодов, их структурой и областью применения можно ознакомиться в подразделе «Штрихкоды» данного раздела.

Источник

Читайте также:  лукоморье что это фото
Обучающий онлайн портал