Найти - Пользователи
Полная версия: Штрих-коды в квитанциях СберБанка
Начало » Автоматизация бизнеса » Штрих-коды в квитанциях СберБанка
1 2
Psixo
Кто знает где можно найти информацию о формате данных линейного штрих-кода для платежных терминалов СберБанка. Насколько я понял, используется стандарт Code 128. Но какие данные и в какой последовательности им упаковываются в сам штрих-код.

Задача: необходимо сформировать штрих-код для квитанции на оплату. В идеале - клиент идет с этой квитанцией к терминалу и оплачивает полностью самостоятельно.
Piton23
хех, как раз занимаюсь разработкой проги для матричного принтера, со штрих кодами
про code128 читай в ГОСТ 30743-2001

Там сначала подается управляющий код потом данные кодируемые
Была еще инфа, но чет среди хлама на рабочем столе не могу найти
Psixo
Вроде скинули инфу, данные упаковываются так:
{ИНН}L{Идентификатор платежа}S{сумма*100}

Если есть алгоритм упаковки данных в code128 на Python, буду благодарен за его код :)
Piton23
А какой тут алгоритм? береш файл квитанции, открываешь, вставляешь туда код штрих-кода + данные ({ИНН}L{Идентификатор платежа}S{сумма*100}) и все. Насчет кода штрих-кода смотри в документации принтера, т.к. я думаю не на любом принтере одинаковые коды.
Psixo
Piton23
А какой тут алгоритм? береш файл квитанции, открываешь, вставляешь туда код штрих-кода + данные ({ИНН}L{Идентификатор платежа}S{сумма*100}) и все. Насчет кода штрих-кода смотри в документации принтера, т.к. я думаю не на любом принтере одинаковые коды.

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

http://tradepilot.ru/goods-marks/code128

Есть макет квитанции который будет распечатываться.
В макете есть область для штрих-кода.
Есть шрифт штрих-кода: http://code128.narod.ru/
По соответствующему алгоритму исходная строка кодируется в строку code128 которую можно будет вывести с помощью указанного щрифта.

Вроде как-то так.

Еще веселая задачка, сделать тоже самое но в html макете div-ами.
Piton23
Забыл уточнить (т.к. раньше думал что в банках априори матричники стоят). У вас матричный принтер, если да то какой режим вывода графический или текстовый?
Psixo
Здесь не в принтере дело.
Обычная квитанция которая будет печататься лазерником на А4 :) Формировать штрих-код будет за счет шрифта и строки code128.

Вот,кстати,алгоритм такого преобразования (строка -> код128) под 1С: http://www.kb.mista.ru/article.php?id=404 но он вроде несколько кривой.

ЗЫ.: это не для банка, коммерческая фирма занимающаяся оказанием определенного рода услуг.
Piton23
В алгоритме указаном по ссылке используются 3 набора символов codeA codeB и codeC, по мне так извращение использовать несколько наборов в одном штрих коде. У меня например штрих код представляет инфу об оплате за комунальные услуги жкх, т.е. есть id жильца, сколько платить, код управляющей компании и т.п. Т.е. поскольку только числовая информация то используется только codeC. Если б требовалось использовать символы A-Za-z то использовал бы codeB. А поскольку в штрих коде зашито какой набор используется (A,B или C) то считыватель считает без проблем (даже если они будут чередоваться).

К чему это я. Я делал следующим образом. Есть база. При запросе печати квитанции для Иванова, брались данные вставлялись в последовательность штрих-кода, рассчитывалась контрольная сумма. Впереди шла инфа (управляющие коды) обозначающая что идет печать штрих-кода. и все. Вся эта последовательность вставлялась в нужном месте шаблона и выталкивалась принтеру. НО эти все махинации я делал для матричного принтера в текстовом режиме. Т.е. Если лазерник у вас, то картинка формируется раньше непосредственой печати штрих-кода. А вот как она формируется я не знаю. О драйвере печати надо наверное почитать.

Алгоритмы вычисления контрольной суммы есть, с этим у вас вроде проблем не должно быть. Вот пример могу свой привести. К примеру нужно запрогать код 45 65 78. В итоге получаем последовательность

27 16 66 9 67 45 65 78 102

где 27 16 66 не помню че обозначают (док. смотреть надо). 9 - типа количество данных (+1 для stop), 67 обозначается последовательность codeC, 65 - codeA, 66 - codeB, 102 - проверочный код (вроде б не ошибся с его вычислением)
Psixo
Piton23, с алгоритмом вроде бы сложностей не возникло, вычисление контрольной суммы хорошо описали здесь: http://tradepilot.ru/goods-marks/code128

В алгоритме указаном по ссылке 1С используются 3 набора символов codeA codeB и codeC, по мне так извращение использовать несколько наборов в одном штрих коде
Вот здесь с вами согласны разработчики ридеров штрих-кода, которые установлены в аппаратах СберБанка :) долго понять не мог в чем проблема моих штрих-кодов, оказалось всё дело в смене подсистем ввода внутри штрих-кода,они не воспринимались.
Переписал только под Code128A, данные считались корректно.

По поводу печати,печатал на разных лазерниках,если штрих-код составлен верно - аппарат распознает независимо от принтера.
Кстати,сам штрих формировал не только шрифтом, но и для html документа div-ами.

Остался 1 проблемный момент - формат данных штрихкода СберБанка.
ИННLИдентификатор платежаSсумма*100

ИНН читается без проблем, а вот индентификатор платежа слипается с суммой,например так:
12346450005S350000 <—- такое значение воспринимается как ИдПлатежа, хотя это Ид+Сумма
Надо где-то найти информацию о том,как в штрихкоде СберБанка разделяют номер платежа и его сумму.
Piton23
мм как они могут слипаться, вы просто определите количество разрядов для каждой состовляющей. К примеру на индитификатор 4 позиции. И если айдишник выйдет 25 к примеру, то в последовательность надо вставить 0025 а не 25. А дальше уж дело техники. На считывающем устройстве просто определить что от сих до сих считать сумму. И т.п.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB