gifts2017

Генерация штрих-кода в 1С 8

Опубликовал Алексей Борисенко (_Le_Shik_) в раздел Оборудование - Сканер штрих-кода

Генерация 13-ти значного штрихкода стандарта EAN-13 с вычислением 13-ой (контрольной) цифры

Данная обработка из пятизначного цифрового кода вида "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 Wink ).

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Внешняя обработка ШтрихКод
.epf 7,49Kb
24.02.12
130
.epf 7,49Kb 130 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Александр Прокопенко (babylon_5) 24.02.12 13:58
>> Искал что-нибудь подобное готовое для 1С 8, но не нашел.

Хм... А в любой типовой посмотреть?.. Так там еще и EAN8...
А потом немного "творчески" переработать код если уж очень хочется избежать нелицензионного использования кода 1С. :)

Да, и есть идея. Можно еще сделать линейку обработок, которые будут создавать EAN13 из 6ти, 7ми, ..., 12ти - значных чисел. :D
2. Алексей Борисенко (_Le_Shik_) 24.02.12 14:51
(1) babylon_5,
Да вот Типовой под рукой нету(.
А Инет есть))
А что там в типовой? На подскажешь - где искать?
3. Александр Прокопенко (babylon_5) 24.02.12 17:32
1) Ну, раз есть инет - значит есть и типовые...
2) Еще вариант: скачай тут 'Сканирочку' O-Planet'a. Там алгоритм для EAN-13 правильный. Для EAN-8, правда, работает с ошибками. Но у тебя-то EAN-13...
4. Владимир Попов (madvovik) 29.02.12 01:40
Мсье в Инете полно обработок и даже стандартных методов создания всех типов штрих кодов, зачем снова из обретать колесо? 1с печать штрих кодов что плохо работает???
5. Ярослав Новосёлов (novosys) 01.03.12 12:07
Ребята, а вы сами-то типовые смотрели? Там внешняя компонента используется, а бывают случаи, когда ей невозможно воспользоваться. Тогда приходится писать алгоритм по формированию текста штрихкода для вывода его на печать с помощью специального шрифта.
6. Александр Прокопенко (babylon_5) 01.03.12 13:24
7. Stas Nov (SUGROB) 05.05.12 02:46
Не прошли мои труды даром :) (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
8. Олег Степанов (Legin) 11.03.15 22:58
В обработке есть небольшая ошибка - в модуле формы, строка 20 нужно привести результат к строке, удалив разделители разрядов:
Код12 = Формат(Число(Строка(Код12) + Строка(ЭлементыФормы.КЦифра.Значение)),"ЧГ=");
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа