|
v7: Генерировать штрихкод GS1-128 в 1с77 | ☑ | ||
---|---|---|---|---|
0
saksaul
16.12.19
✎
08:21
|
Платформа 27
База файловая. Надо генерировать штрихкод формата GS1-128. Что пытался использовать: штрифты Eangvic - этот формат не поддерживает Code128 - этот формат не поддерживает Barcode - этот формат не поддерживает компонента OcvitaBarcode.ocx - вылетает 1с77 как только ставишь нужный вид штрихкода... вот тут QR код В 1С 7.7 эта проблема озвучивалась, но печать без предпросмотра ничего не дает - тоже вылетает |
|||
1
saksaul
16.12.19
✎
08:22
|
ссылку перепутал... Почему крашится OcvitaBarcode?...
|
|||
2
Fragster
гуру
16.12.19
✎
08:26
|
zint
|
|||
3
NorthWind
16.12.19
✎
08:43
|
(0) В некоторых случаях можно использовать EAN128 из ActiveBarcode.
Но не будет скобочек в HRC, и по-моему, там нельзя вкрячить FNC1, т.е. можно использовать только для AI постоянной длины. Для SSCC я использовал, прокатывало. |
|||
4
saksaul
16.12.19
✎
08:49
|
(3) У меня как раз два последних поля переменной длины
|
|||
5
Strogg
16.12.19
✎
08:50
|
(0)У нас принтер Godex, я печатаю с помощью EZPL. Формирую строку шаблона EZPL и отправляю его на принтер.
(3 Как правило, без FNC1 не взлетает, ибо заказчикам из-за этого как раз и нужен ГС1. |
|||
6
saksaul
16.12.19
✎
08:52
|
(5)У меня такой же! Надо попробвать
|
|||
7
Strogg
16.12.19
✎
08:58
|
(6) пробоуй. Предварительно я нарисовал в GoLabel шаблон, получил его строку в формате EZPL. Затем, обязательно надо сделать принтер сетевым, чтобы потом расшарить его и навесить на какой-нибудь LPT2 с помощью net use. Ну и не забудь предварительно загрузить в принтер требуемую кодовую страницу и необходимые изображения (в случае, если они есть) с корректными именами.
Короче, гемор еще тот... |
|||
8
big
16.12.19
✎
09:52
|
Вот здесь паренёк довольно подробно описывает.
http://cs-cs.net/markirovka-auto-1c-labels |
|||
9
saksaul
16.12.19
✎
10:14
|
(7) Э... я думал как-то проще делается) Ну будем осваивать все варианты. Спасибо.
\ |
|||
10
Strogg
16.12.19
✎
10:20
|
(9) я пробовал всякие варианты. Наверное, судя по (8) изобретал велосипед, но на этом остановились как на самом оптимальном варианте. Что уж о 7.7 говорить, 1С до сих пор и для 8 не удосужились сделать вменяемую компоненту печати ШК ГС1...
|
|||
11
saksaul
16.12.19
✎
10:24
|
(10) А Zint чем не подошел?
|
|||
12
MWWRuza
гуру
16.12.19
✎
10:28
|
Вообще, сейчас новый FormEx печать ШК поддерживает, тоже на основе Zint...
Кстати, и OcvitaBarcode.ocx у меня работает и не крашится, во многих местах и с разными 1D и 2D ШК... Что я не так делаю? |
|||
13
Strogg
16.12.19
✎
10:29
|
(11) я уже не помню. Дело было 2 года назад. То ли 1С валился, то ли недоразобрались... Так же как и с оквитой...
|
|||
14
Fragster
гуру
16.12.19
✎
10:36
|
(13) зинт раобтае тиз командной строки, 1с от этого не падает :)
|
|||
15
ptiz
16.12.19
✎
10:43
|
(0) "GS1-128 (ранее также назывался: UCC-128 или EAN-128) формат штрихкода глобальной организации по стандартизации GS1, предназначенный для передачи информации о грузе между предприятиями. В формате регламентирован словарь (Code-128) и группы кодов, но не регламентирована длина."
Как это Code-128 не поддерживает? |
|||
16
saksaul
16.12.19
✎
12:11
|
(15) Я в формате устанавливаю шрифт Code128 и в итоге сканер не читает полученный штрихкод, вставляю передаваемую строку в генератор GS1-128 и получаю читаемый сканером штрихкод. Есть какие-то параметры о которых может быть я не знаю?
|
|||
17
ptiz
16.12.19
✎
12:20
|
(16) Проблемы со спецсимволами или чем-то еще? Что именно "портится"?
|
|||
18
saksaul
16.12.19
✎
13:18
|
(17) Спецсимволы не генерируются при передаче строки и сам штрихкод вообще не читается сканером - значит и сформирован не верно.
|
|||
19
ptiz
16.12.19
✎
13:19
|
(18) Дай пример строки штрихкода.
|
|||
20
saksaul
16.12.19
✎
13:28
|
014607041741532310300252011011219100010112192100001 - передается вот так
|
|||
21
saksaul
16.12.19
✎
13:29
|
служебный символ не видно, но если скопировать он есть
|
|||
22
ptiz
16.12.19
✎
13:46
|
(20) Зачем это кодировать в code-128? Из датаматрикса же взял? Признавайся :)
|
|||
23
Strogg
16.12.19
✎
13:51
|
(20) Перед GTINом 0 поставь. Первый блок должен содержать 14 символов :). На какого-то ритейлера весовые короба отгружаешь, небось? Судя по набору блоков, очень похоже)))
|
|||
24
saksaul
16.12.19
✎
14:06
|
Я смотрю на образец предоставленный покупателем и там перед GTIN стоит AI= 01
Короче это должно в итоге вот так быть (01)4607041741532(3103)002520(11)011219(10)001011219(21)00001 |
|||
25
saksaul
16.12.19
✎
14:07
|
Ориентируюсь на вот это https://strokescribe.com/ru/gs1-128-ean-128.html
и это http://www.gs1ru.org/datacapture/ |
|||
26
ptiz
16.12.19
✎
14:07
|
(24) А тут спецсимволы должны быть? Если просто строка - не должно быть проблем.
|
|||
27
saksaul
16.12.19
✎
14:07
|
Там же в стандарте сказано что скобки не надо указывать в передаваемой строке
|
|||
28
saksaul
16.12.19
✎
14:09
|
(26) Вроде оно само должно распознаваться... В генераторе https://www.terryburton.co.uk/barcodewriter/generator/
просто передаю строку без скобой и служебных и получется считываемый код |
|||
29
saksaul
16.12.19
✎
14:12
|
Вот так было в коде:
ШтрихкодПартии = "01"+GTIN+"3103"+ВесВКод+"11"+ДатаВыпускаВКод+"10"+НомерПартииВКод+"21"+Строка(НомерКоробкиВКод); |
|||
30
Strogg
16.12.19
✎
14:14
|
(24) 01 блок имеет длину 14 символов. Т.е. "0" + твой GTIN. В общем случае в представленной структуре, 10 блок предполагает символ FNC1 и 21 блок предполагает символ FNC1.
|
|||
31
saksaul
16.12.19
✎
14:25
|
(30) ок, завтра пересмотрю. Спасибо за корректировки
|
|||
32
Fragster
гуру
16.12.19
✎
14:28
|
https://imgur.com/SZ1ct9U читается?
|
|||
33
Fragster
гуру
16.12.19
✎
14:28
|
только там зазумить надо, чтобы края не мылило
|
|||
34
Strogg
16.12.19
✎
14:35
|
(31) пожалуйста. Вот тут общие спецификации для GS1 найдешь. http://www.gs1ru.org/wp-content/uploads/2017/02/СТО-5_V4.pdf
|
|||
35
NorthWind
16.12.19
✎
20:45
|
(12) не так то, что вы это в семерке делаете, а не в свежих релизах восьмерки
|
|||
36
NorthWind
16.12.19
✎
20:48
|
хотя здесь вроде тоже семерка... тогда странно
|
|||
37
timurhv
16.12.19
✎
21:26
|
(0) Можно один раз поковыряться и использовать Jasper, в конце ссылки.
https://xdd.silverbulleters.org/t/pechatnye-formy-bol/1168/7 |
|||
38
MWWRuza
гуру
16.12.19
✎
22:08
|
(35)это в семерке делаете, а не в свежих релизах восьмерки
А при чем ФормЕкс, и восьмерка? Метод НарисоватьШтрихкод() - v7: Обновление FormEx. Версия 2.5.0.115 - рисует штрих-код заданного типа на объекте "Картинка" с помощью библиотеки zint; |
|||
39
MWWRuza
гуру
16.12.19
✎
22:10
|
||||
40
saksaul
17.12.19
✎
05:21
|
(38) Знаю про это, но обновить формикс мне не разрешают
|
|||
41
mishaPH
модератор
17.12.19
✎
07:14
|
(0) я использую строке скрайбе
|
|||
42
mishaPH
модератор
17.12.19
✎
07:15
|
(29) там стоп символы надо добавлять
|
|||
43
mishaPH
модератор
17.12.19
✎
07:16
|
Если КодМеркурийВид = 1 Тогда
КодТР = "01" +ШтрихКодА+"3103"+ВесТовара+"11"+датаПр+"17"+датаГоденДо+"10"+ПартияКодМ+Симв(29)+"21"+ТекНомУпак+Симв(29); ИначеЕсли КодМеркурийВид = 2 Тогда КодТР = "01" +ШтрихКодА+"3103"+ВесТовара+"11"+датаПр+"10"+ПартияКодМ+Симв(29); ИначеЕсли КодМеркурийВид = 3 Тогда КодТР = "01" +ШтрихКодА+"3103"+ВесТовара+"10"+ПартияКодМ+Симв(29)+"11"+датаПр+"17"+датаГоденДо; КонецЕсли; |
|||
44
victuan1
17.12.19
✎
07:32
|
||||
45
saksaul
18.12.19
✎
05:49
|
(32) Читается правильно
|
|||
46
saksaul
18.12.19
✎
12:28
|
(7) Шаблон этикетки я сделал, но как его теперь из 1с вызвать чтобы заменить нужные места на значения например наименования номенклатуры пока не дошло. Файл который получается в GoLable - это что-то типа xml.
Можно подробнее что значит "получил его в строку"? ВСтрокуСРазделителями()??? |
|||
47
NorthWind
18.12.19
✎
12:52
|
(46) это точно не должен быть XML. Нужно сделать выгрузку на EZPL. Это такие строчки, которые начинаются с ^.
|
|||
48
Strogg
18.12.19
✎
13:06
|
(46) Это и есть EZPL.
Должно получиться что-то вроде вот этого: Q140,3 ^W70 ^H3 ^P1 ^S5 ^AD ^C1 ^R24 ~Q+8 ^O0 ^D0 ^E12 ~R255 ^XSET,ROTATION,0 ^L Dy2-me-dd Th:m:s Y2,852,Image26 Y215,128,Image6 Y128,122,Image5 Y79,126,Image4 Y230,209,Image3 Y137,199,Image2 B55,412,1093,2,4,24,3,0,01046800044600153103015220111808181717081910012291812230&G2125005&G BE,337,126,3,8,80,2,1,2800729152206 AE,19,237,1,1,0,3,%%Параметр1%% AB,484,1028,1,1,0,3,(01)04680004460015(3103)015220(11)180818(17)170819(10)012291812230(21)25005 R12,135,67,247,4,4 AC,0,788,1,1,0,3E,%%Текст1%% ...(т.п.) E Далее, сохраняешь его в текстовик а из 1С его открываешь и заменяешь параметры (%%Параметр1%%, %%Текст1%%)..... своими с помощью СтрЗаменить(). Штрихкод и текст штрихкода я оставил как пример - он тоже в параметре будет передаваться. Таким образом, ты получаешь готовый файл к отправке на принтер. Я печатаю с помощью copy to Lpt2, предварительно настроив его Net Use-ом. |
|||
49
saksaul
18.12.19
✎
13:14
|
(47) в GoLable есть только возможность выгрузить *.ezpx
(48) это я уже понял, даже уже код написан для этого (за исключением команды печати) а вот как *.ezpx перевести в EZPL... пока не ясно, ну будем читать |
|||
50
Strogg
18.12.19
✎
13:19
|
(49) еще раз. Ничего не надо переводить.
ПутьКШаблону = СокрЛП(Константа.КаталогЭтикетки); ТекстШаблона = СоздатьОбъект("Текст"); ТекстШаблона.Открыть(ПутьКШаблону + "\" + "Label140x70.cmd"); Это текст этикетки. строкаШтрихкода = ТекстШаблона.ПолучитьСтроку(34); СтрокаШтрихКода = стрЗаменить(СтрокаШтрихкода, "%%Наименование1%%", Наим1); ТекстШаблона.ЗаменитьСтроку(34, СтрокаШтрихкода); ...заменяешь все переменные в шаблоне. ТекстШаблона.Записать(ПутьКШаблону + "\" + "LabelPrint.txt"); и записываешь готовый к печати шаблон после записи я сделал так: ЗапуститьПриложение(ПутьКШаблону + "\" + "print.cmd"); В файлике print.cmd находится что-то типа echo off copy to lpt2 c:\Label\Labelprint.cmd |
|||
51
saksaul
18.12.19
✎
13:24
|
Ура! Я нашел эту панельку "Окно команд" ))
|
|||
52
saksaul
19.12.19
✎
11:25
|
(50) в строке вызова шаблона ошибка (для тех кто будет эту тему читать)
Надо: copy c:\Label\Labelprint.cmd to lpt2 |
|||
53
saksaul
19.12.19
✎
12:41
|
(52) copy c:\Label\Labelprint.cmd lpt2
вот так правильно |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |