![]() |
![]() |
![]() |
|
Вывод на печать GS1 128 | ☑ | ||
---|---|---|---|---|
0
Shalun
naïve
06.09.25
✎
09:01
|
Всем привет!Люди, кто сталкивался с выводом на печать SSCC кода? А точнее, с формированием картинки?
Код формируется вроде правильно: 00 1 123456789 0000001 9, разумеется без пробелов, это для наглядности. Получаю картинку: ГенерацияШтрихкода.ИзображениеШтрихкода(ПараметрыШтрихкода) В параметрах ставлю ТипШК = 4 (пробовал 2) - выводит совершенно не то. Точней выводит именно CODE128 а не GS1 128. Соответственно, сканер его не читают. Везде пишут что это одно и то же, но как видно, все же не одно и то же. Отсюда вопрос, как получить изображение именно в GS1 128 формате. |
|||
1
lEvGl
гуру
06.09.25
✎
09:17
|
если речь про вк 1с, то в описании все
https://its.1c.ru/db/metod8dev/content/5963/hdoc 4 это code128 |
|||
2
Shalun
naïve
06.09.25
✎
10:01
|
(1) Спасибо бро, разобрался! Тип кода 2 то же ставил - не помогало. Оказывается код со скобками нужно передавать (00) 1 123456789 0000001 9, а не как везде пишут, без. Со скобками все норм! Спасибо!
|
|||
3
Shalun
naïve
06.09.25
✎
10:23
|
(1) Может за одно подскажешь по печати DataMatrix?
Задаю полный кодМаркировки из пула кодов, я так понимаю в формате base64 (MDEwNDY4...) Тип кода ставлю 24. При сканировании выдает ошибку, отсутствие признака GS1. Но как сказано в описании, компонента сама добавляет эти признаки, в том числе и FNC1. Что с этим не так, не подскажешь? Может сам код не правильно передаю? Он в виде строки, а его может как то по другому нужно передавать? Но вроде, компонента сама его преобразует... |
|||
4
ejikbeznojek
06.09.25
✎
14:14
|
(3) Нет, неправильно понимаешь. Не в формате base64. Нужен полный код в человеческом виде.
И добавляется вроде только FNC1, а GS1 это уже сам...символами (29) что-ли |
|||
5
Shalun
naïve
06.09.25
✎
14:50
|
(4) Почитайте по ссылке выше, что привет (1). Цитирую: "...компонент интерпретирует строку как код GS1, раскрывает скобки, добавляет символ GS в конце каждой группы переменной длины и генерирует изображение, добавив графический символ начала кода FNC1."
И еще "допускается две формы ввода: 1.В виде Строки. 2.В виде Строки Base64." Т.е. получается не правильно написали? А как формируете вы, посоветуйте. |
|||
6
NorthWind
06.09.25
✎
15:26
|
(0) по известным данным строите код в генераторе штрих-кодов. Их много в сети. Далее строите в своей системе и сравниваете штрихи просто визуально по соотношению толщин. Как совпало - значит, с большой вероятностью оно. В качестве SSCC мне в свое время подошел EAN-128 из того, что было доступно. CODE128 похож, но не совсем то же самое.
|
|||
7
ejikbeznojek
06.09.25
✎
16:16
|
Чёт обманул. Таки base64 тоже можно
https://annotatescreen.com/d/EgC9HbQU2UtX9KkdOscn.png Убедись только что в раскодированном коде есть все нужные символы стрнайти(ПолучитьСтрокуИзДвоичныхДанных(Base64Значение(параметрыштрихкода.штрихкод)),символ(29)) у меня возвращает 32 |
|||
8
Shalun
naïve
06.09.25
✎
21:14
|
(6) Да, спасибо, именно EAN128 нужен (тип ШК - 2) и со скобками! Тогда формирует верно!
|
|||
9
Shalun
naïve
06.09.25
✎
21:17
|
(7) в смысле 32 возвращает? :-( У тебя че, в коде 32 DS символа? :-) Их там 2, максимум 3 должно быть.
А вот на счет проверить эт ты правильно подсказал, я чет не додумался. |
|||
10
Shalun
naïve
06.09.25
✎
21:42
|
(7) Я все туплю. Это у тебя первый символ на 32 позиции. У меня на 25, всего 2 таких символа в строке. Т.е. вроде все верно, но печатает что-то не то.
|
|||
11
MWWRuza
гуру
06.09.25
✎
21:53
|
Я не пойму... А за чем вообще все эти извращения? Почему не напечатать родной для маркировки DataMatrix - ? Или эта компонета этого не умеет? Или сканер только 1D читает? Раскройте секрет...
|
|||
12
ejikbeznojek
06.09.25
✎
23:04
|
(11) так у меня так и печатается. Gs1 data matrix
|
|||
13
NorthWind
06.09.25
✎
23:29
|
(8) как я понял, SSSC это разновидность gs1-128, в котором нет AI переменной длины, там просто единственный AI и он фиксированной длины. А раз их нет, значит, символ GS не используется - таким образом, EAN128 должен подойти.
|
|||
14
Shalun
naïve
07.09.25
✎
13:14
|
(11) SSCC это код упаковки, DataMatrix - код продукта.
А вот почему эта компонета не тот код выводит при печати DataMatrix я и пытаюсь понять. |
|||
15
Shalun
naïve
07.09.25
✎
13:16
|
(12) А ты можешь скинуть строку кода, которую ты передаешь в компоненту для печати? Попробую у себя напечатать. Хотя понятно будет, или функцию коряво запускаю, либо данные не те.
|
|||
16
Shalun
naïve
07.09.25
✎
13:19
|
(13) Это понятно. Просто в функцию AI нужно в скобках передавать, иначе не то рисует.
|
|||
17
MWWRuza
гуру
07.09.25
✎
13:56
|
OFFTOP:
Боже, как все сложно... Не даром говорят, что "восьмерка еще сырая!" :-))) Я в клюшках своей обработкой печатаю, DM на остатки марок, вообще без проблем, через FormEx: Вот: ![]() Все символы GS на месте, это строка прилетевшая со сканера: ![]() В ЧЗ проверяется на раз, в том числе и мобильным приложением. (нет, эти конкретные марки не проверятся, так, как давно проданы клиентом, не из-за структуры ШК, а из-за того, что выведены из оборота)... |
|||
18
Shalun
naïve
07.09.25
✎
14:24
|
(17) Молодец!
|
|||
19
Shalun
naïve
07.09.25
✎
14:33
|
(17) И кстати, у тебя вместо GS используется FNC1.
|
|||
20
MWWRuza
гуру
07.09.25
✎
15:01
|
Ну, да, формат DM FNC1, разделители групп GS. Первый символ там FNC1, просто он не отображается в строке прилетевшей со сканера, так, как используется сканером как управляющий, типа сообщает ему, что дальше в строке данных будет.
Как-бы так прописано в МР по маркировке... Проверку формата в ЧЗ проходит без ошибок. У производителей, которых видел, так-же. PS "вместо GS используется FNC1" - тут вопрос, что нужно получить в итоге - марку, проходящую проверку в ЦРПТ, или именно GS для каких-то других целей... |
|||
21
Shalun
naïve
07.09.25
✎
15:20
|
(20) Если я не ошибаюсь, то GS такой же нечитаемый символ как и FNC1. Почему они у тебя отображаются - не понятно. Не, ну если проверку проходят, то и ладно. Хотя, если отключить проверку структуры кода - будет читать и ошибочные коды, там не вся строка используется. Но я ни в коем случае не настаиваю, просто есть много программ, позволяющих проверять структуру кода и выявлять ошибки. Попробуй отсканировать свои коды, проверить. Если интересно конечно же.
|
|||
22
MWWRuza
гуру
07.09.25
✎
16:44
|
(21) Почему они у тебя отображаются - не понятно.
По тому, что они там есть. Это строка сохраненная именно с моей марки(да пох, можно взять и от производителя, любую) со сканера в режиме эмуляции COM-порта, без "медвежьих услуг" драйвера клавиатурных сканеров и обработки в программе, по замене "чего-то на что-то", без добавления/удаления скобок и т.п., как есть. Они есть в строке кода, прилетевшего со сканера, поэтому и отображаются. Естественно, программой, которая это умеет(в данном случае - Notepad++) - если открыть обычным виндовым блокнотом, то их естественно видно не будет. FNC1 там тоже есть, первым символом идет, но, он не отображается(даже Notepadom++, или терминалом, ловящим строку данных из COM-порта), так, как интерпретируется сканером как управляющий, сообщающий сканеру, чего дальше ожидать в строке данных, и не передается в строку данных. Немного "утрированно", но, общий принцип такой. |
|||
23
MWWRuza
гуру
07.09.25
✎
16:49
|
+(22) то их естественно видно не будет
Но, даже в обычном блокноте, если курсорными клавишами-стрелками двигать курсор - можно заметить, что на местах, где они есть, происходит "типа задержка", пропуск нажатия, так, как символ там есть, его "проскочить" нужно, но его не видно. |
|||
24
ejikbeznojek
07.09.25
✎
19:44
|
Gs можно самому пихать в строку, а fnc1 вроде нет.
По крайней мере в zpl точно. По идее компонента сама должна добавлять. |
|||
25
Shalun
naïve
08.09.25
✎
10:55
|
(23) все верно, курсор остается на месте, но самого символа не видно!
(24) fnc1 то же - Символ(232). |
|||
26
MWWRuza
гуру
08.09.25
✎
10:57
|
(25) но самого символа не видно!
Еще раз - используйте Notepad++, и все увидите. |
|||
27
Shalun
naïve
08.09.25
✎
11:00
|
В общем, методом проб и ошибок победил! В противовес описанному в статье по утилите 1с, из dfse64 нихрена не формирует. Точней, формирует какую то хрень. Перевел в обычную строку, и он напечатал!
Кому интересно: ПараметрыШтрихкода.ТипКода = 24; ПараметрыШтрихкода.Штрихкод = ПолучитьСтрокуИзДвоичныхДанных(Base64Значение(КодМаркировкиbase64)); РезультатШтрихкод = ГенерацияШтрихкода.ИзображениеШтрихкода(ПараметрыШтрихкода); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |