Данная обработка из пятизначного цифрового кода вида «12345» генерирует код вида «4GKBHKL*bcdefe+» с вычислением 13-ой (контрольной) цифры. Код вида «4GKBHKL*bcdefe+» отображается стандартным штрихкодом EAN13 при использовании шрифта CODE EAN13.
Искал что-нибудь подобное готовое для 1С 8, но не нашел. В обработке использовал найденый мной код для «семерки», написаный vaterpas@gmail.com (еще раз ему спасибо!) на странице http://www.forum.mista.ru/topic.php?id=445098.
Перенес это дело на «восьмерку» и добавил вычисление 13-ой цифры.
Для тех, кто не знает — сканеры, считывая штрихкод, определяют его стандарт. Если определен EAN13, то сканер считывает первые 12 цифр, вычисляет 13-ю, и, если вычисленая сканером и указаная в штрихкоде цифры совпадают, только в этом случае сканер отдает считаный штрихкод на устройство, с которым работает.
Метод вычисления 13-ой цифры легко найти в Инете, поэтому не буду распространяться на эту тему.
Неиспользуемые первые 7 знаков кода можно «забить» нулями. Я занял это место так — «46» это Россия, «01701» это последние 5 знаков ИНН предприятия. (как бы в соответствии со стандартом EAN13 ).
>> Искал что-нибудь подобное готовое для 1С 8, но не нашел.
Хм… А в любой типовой посмотреть?.. Так там еще и EAN8…
А потом немного «творчески» переработать код если уж очень хочется избежать нелицензионного использования кода 1С. 🙂
Да, и есть идея. Можно еще сделать линейку обработок, которые будут создавать EAN13 из 6ти, 7ми, …, 12ти — значных чисел. 😀
(1) babylon_5,
Да вот Типовой под рукой нету(.
А Инет есть))
А что там в типовой? На подскажешь — где искать?
1) Ну, раз есть инет — значит есть и типовые…
2) Еще вариант: скачай тут ‘Сканирочку’ O-Planet’a. Там алгоритм для EAN-13 правильный. Для EAN-8, правда, работает с ошибками. Но у тебя-то EAN-13…
Мсье в Инете полно обработок и даже стандартных методов создания всех типов штрих кодов, зачем снова из обретать колесо? 1с печать штрих кодов что плохо работает???
Ребята, а вы сами-то типовые смотрели? Там внешняя компонента используется, а бывают случаи, когда ей невозможно воспользоваться. Тогда приходится писать алгоритм по формированию текста штрихкода для вывода его на печать с помощью специального шрифта.
(.)
Не прошли мои труды даром 🙂 (vaterpas@gmail.com это я)
Лично я делал этот алгоритм для 7-ки, т.к. мне надо было штрихкоды сохранять вобще в pdf, это универсальный формат, который сохраняет для текста в себе еще и шрифты. У Китайцев и других производителей товаров возникает вопросы какой штрихкод клеить к нашему товару. т.к. в основном так получается, что они и не слышали что такое EAN13, а тут можно и распечатать и в векторе открыть и на печать вывести хоть на лист А1 без потери качества.
Искал в то время софт чтоб заполучить штрихкод — везде просила регистрировать и закинуть денежку для регистрации. а производителям нужен простой универсальный формат со штрихкодом, просто xls файл им не кинешь, к нему надо прилагать штрихкод и доп софт, на худой конце шрифт. А pdf в себе все содержит сразу.
13-й символ расчитывется как
допустим наш код: 123456789012
x=1+3+5+7+9+1=26
y=2+4+6+8+0+2=22
z=x*3+y=3*22+26=66+26=92
(z+n)/10=(наименьшее целое число), где n это и есть 13е число — целое число от 0-9 неотрицательное
(92+8/100)=10 , значит 13я цифра = 8
————-
берем пример скриншота:
460170112345
x=4+0+7+1+2+4=18
y=6+1+0+1+3+5=16
z=16*3+18=48+18=66
(66+4)/10=70 (без остатка) — 13е число = 4
вот откель получается штрихкод 4601701123454
В обработке есть небольшая ошибка — в модуле формы, строка 20 нужно привести результат к строке, удалив разделители разрядов:
Код12 = Формат(Число(Строка(Код12) + Строка(ЭлементыФормы.КЦифра.Значение)),»ЧГ=»);