powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Штрихкод с двумя контрольными цифрами (а по виду EAN13)
14 сообщений из 14, страница 1 из 1
Штрихкод с двумя контрольными цифрами (а по виду EAN13)
    #39691057
Ш+К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго дня всем.
В моем чудесном решении не было предусмотрено одного интересного момента - наличия штрихкода с двумя контрольными цифрами.
До сих пор все было красиво и прекрасно - либо нормальный EAN13, либо с закодированным весом. У обоих контрольная сумма в последнем разряде.
Этот же весовой штрикод - тоже весовой, но контрольный разряд еще и в 5 или 6 цифре от начала, что интересно и он тоже вычисляется на основании веса.
И как теперь быть?

Ранее интерпретировал так: если штрихкод из 22-23 группы, то весовой, первая часть - код товара, вторая - вес.
Все остальные штрихкоды - полностью код товара.

А этот?
Выглядит так:
22123 X 0123456
И вместо Х может быть что угодно
Конкретно сейчас в базу добавил 10 строк
22123 0
....
22123 9

Но как-то некрасиво и как производить анализ, если 221240 вполне может быть обычным весовым товаром?

Спасибо.
...
Рейтинг: 0 / 0
Штрихкод с двумя контрольными цифрами (а по виду EAN13)
    #39691152
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А кто генерит эти ШК ?
Какой-то сторонний продукт у поставщика товаров с ШК ?

Нужно просто иметь настройки где начинается/кончается код товара и где вес.
А также следует учесть, что на весах еще есть возможность передавать вес не до 10кг (1 разряд на КГ), а до 100, т.е. 2 разряда на КГ.

зы: помница на оптовой базе вдруг увидели огромный спрос покупателей на сосиски. Таскали мешками. Оказалось, покупатели выяснили, что взвешивая 12кг на весах, весы выдадут ШК с 2 кг.
Т.к. потоки товаров и сумм на оптовой базе большие, кассиры часто этого не замечают.
Пришлось установить ШК на 2 разряда КГ.
Благо была возможность регулировать парсинг ШК на POS.
...
Рейтинг: 0 / 0
Штрихкод с двумя контрольными цифрами (а по виду EAN13)
    #39691153
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ш+КВ моем чудесном решении не было предусмотрено одного интересного момента - наличия штрихкода с двумя контрольными цифрами.А надо предусматривать.
Шаблоны принимаемых штрихкодов в настройку выносить.
...
Рейтинг: 0 / 0
Штрихкод с двумя контрольными цифрами (а по виду EAN13)
    #39691754
Ш+К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот в том и вопрос, как мне построить логику, если
23 6470X0 0100 1, товар 6470X0, 100 грамм
23 110110 1220 2, товар 110110, 1220 грамм
23 110120 1120 3, товар 110120, 1120 грамм
среди вышеуказанных товаров с префиксом 23 (т.е. весовой товар) имеется один с контрольной суммой (разряд помечен X)?
Получается на момент сканирования я уже должен знать, а не с двумя ли цифрами контрольными данный штрихкод :-)...

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

Спасибо.
...
Рейтинг: 0 / 0
Штрихкод с двумя контрольными цифрами (а по виду EAN13)
    #39691763
x1ca4064
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ш+КВот в том и вопрос, как мне построить логику, если
23 6470X0 0100 1, товар 6470X0, 100 грамм


А в БД у товара какой ШК?
...
Рейтинг: 0 / 0
Штрихкод с двумя контрольными цифрами (а по виду EAN13)
    #39691796
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Получить список кодов (список продукции/производителя), которые используют данный формат и дальше обрабатывать в зависимости от того, есть там второй разряд или нет.
...
Рейтинг: 0 / 0
Штрихкод с двумя контрольными цифрами (а по виду EAN13)
    #39691972
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно наверное организовать поиск по маске и исключать этот разряд, но зачем это делать для всех 10000 строк при наличии одной такой единственной "хитрожопой" строки...Этот Х - чья-то дурацкая самодеятельность. :)

Сколько у вас таких товаров ?

Самый простой выход уже сделан - вывести все комбинации этого Х.
...
Рейтинг: 0 / 0
Штрихкод с двумя контрольными цифрами (а по виду EAN13)
    #39692013
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x1ca4064А в БД у товара какой ШК?У него нет штрихкода. Или скорее всего нет.

Вообще, этот штрихкод наверняка генерируют весы. Обычно формат штрихкода в весах настраивается.
...
Рейтинг: 0 / 0
Штрихкод с двумя контрольными цифрами (а по виду EAN13)
    #39692027
x1ca4064
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockУ него нет штрихкода. Или скорее всего нет.[/quit]

Вообще, этот штрихкод наверняка генерируют весы. Обычно формат штрихкода в весах настраивается.

Да, я понимаю, сформулировал криво, интересовал внутренний код в БД. В весах, обычно, настроиваются кол-во цифр для кода товара и веса, либо стоимости. Непонятной дополнительной контрольной цифры никогда не встречал, да и сомневаюсь, что это контрольная цифра. Нужно больше данных от ТС.
...
Рейтинг: 0 / 0
Штрихкод с двумя контрольными цифрами (а по виду EAN13)
    #39692317
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x1ca4064Непонятной дополнительной контрольной цифры никогда не встречал
Та чё, бывает. Если выбран формат ean13 - по любому будет сама в конце. Могут, и еще как-нибудь извернуться - кто знает этих программистов весов.
...
Рейтинг: 0 / 0
Штрихкод с двумя контрольными цифрами (а по виду EAN13)
    #39692411
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможно проблема в утилите, кот. формирует коды для закачки в весы.
...
Рейтинг: 0 / 0
Штрихкод с двумя контрольными цифрами (а по виду EAN13)
    #39699259
Ш+К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Возможно кому-то пригодится
Штрих код с двумя контрольными цифрами
281556 X1 00150 X2
Контрольную сумму X2 итак понятно как посчитать
На Делфи пока не портировал, но код вычисления X1 ниже

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
dim two, plus5, minus5, weight(4), znach, res, dif, res2, i
two = array(0,2,4,6,8,9,1,3,5,7) 'создаем массивы с исходными данными
plus5 = array(0,5,1,6,2,7,3,8,4,9)
minus5 = array(0,5,9,4,8,3,7,2,6,1)
for i = 1 to 5 'посимвольно записываем значение веса в массив, чтобы работать с каждым символом отдельно
weight(i-1) = Mid([pack.nominal;Dbc5,2;DecimalBarcodeFormatter],i,1)
next
znach = 0
'проверяем не пустой ли символ в массиве и потом в переменную znach складываем все значения из массивов
'в соответствии с алгоритмом
if weight(0) <> "" then znach = znach + plus5(cint(weight(0)))
if weight(1) <> "" then znach = znach + two(cint(weight(1)))
if weight(2) <> "" then znach = znach + minus5(cint(weight(2)))
if weight(3) <> "" then znach = znach + plus5(cint(weight(3)))
if weight(4) <> "" then znach = znach + two(cint(weight(4)))
' теперь определяем к какому десятку относится сумма
res = 0
dif = 0
if znach < 51 then res = 50
if znach < 41 then res = 40
if znach < 31 then res = 30
if znach < 21 then res = 20
if znach < 11 then res = 10
dif = res - znach ' разница между суммой и этим же десятком
' теперь ищем какому значению соответствует разница в массиве minus5
for i = 0 to 9
if dif = minus5(i) then
res2 = i
exit for
end if
next

Result = [pack.material.barcode] & cstr(res2) & [pack.nominal;Dbc5,2;DecimalBarcodeFormatter] 
...
Рейтинг: 0 / 0
Штрихкод с двумя контрольными цифрами (а по виду EAN13)
    #39699288
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В таком штрихкоде главне - как называется этот стандарт. А потом уже вычисление контролек и т.п.
...
Рейтинг: 0 / 0
Штрихкод с двумя контрольными цифрами (а по виду EAN13)
    #39699442
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fraksВ таком штрихкоде главне - как называется этот стандарт. А потом уже вычисление контролек и т.п.Та какой стандарт. Это кто-то придумал формат для себя, и всё. Я и посложнее придумывал - с 3-4 контрольными разрядами
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Штрихкод с двумя контрольными цифрами (а по виду EAN13)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]