DataMatrix GS1

Автор PavlovDL, Вчера в 06:26

« назад - далее »

PavlovDL

Добрый день.
Коллеги, подскажите пожалуйста правильные параметры метода НарисоватьШтрихкод для генерации DataMatrix GS1?

ЗначениеШтрихкода="010469325768005521540YkK:wYMCRKCU:n*.i" + Симв(29) + "91FFD0" + Симв(29) + "92dGVzdAX8V8JbgOcia9VWiJjRLv1wlzxl+Ob/EnBEUI8=";

Сервис.НарисоватьШтрихкод(Картинка,71,ЗначениеШтрихкода,,,"GS1_MODE");

При таких значениях разделители групп формируются верно, но отсутствует лидирующий спецсимвол FNC1

vladmenleo

Вот так попробуй
Сервис.НарисоватьШтрихкод(Объект, 71, ШтрихКодДокумента, 0,,0,,);

vladmenleo

Если поставить параметр 2 - что означает то пишет ошибку Error 251: Control characters are not supported by GS1

PavlovDL

Цитата: vladmenleo от Вчера в 07:03Вот так попробуй
Сервис.НарисоватьШтрихкод(Объект, 71, ШтрихКодДокумента, 0,,0,,);
Большое спасибо
Но теперь при таком значение штрих-кода
ШК="[01]04693257680055[21]540YkK:wYMCRKCU:n*.[91]FFD0[92]dGVzdAX8V8JbgOcia9VWiJjRLv1wlzxl+Ob/EnBEUI8=";
такой результат
Признак символики GS1 DataMatrix:
Присутствует
Штрихкод:
010469325768005521540YkK:wYMCRKCU:n*.<FNC1>91FFD0<FNC1>92dGVzdAX8V8JbgOcia9VWiJjRLv1wlzxl+Ob/EnBEUI8=
Длина: 91 символ.
Содержимое штрихкода:
(01) 04693257680055 [14]
(21) 540YkK:wYMCRKCU:n*. [19]
(91) FFD0 [4]
(92) dGVzdAX8V8JbgOcia9VWiJjRLv1wlzxl+Ob/EnBEUI8= [44]
т.е. разделители групп тоже FNC1, а нужен GS

PavlovDL

т.е. лидирующий символ FNC1
разделители групп GS

PavlovDL

на просторах инфостарта, пост victuan
можно сделать вывод, что formex доработан. нужны правильные параметры
Если кратко, то:
Сервис.НарисоватьШтрихкод(Картинка,ТипЧислом,ТекстШтрихкода,0, ,Режим,,РежимВых)

Сам код не сложный, но пришлось некоторые сведения с трудом добывать (например, как сделать чтобы при выводе в начале был FNC1, а дальше GS, а не тоже FNC1, также были глюки при выводе некоторых серийных номеров). Разработчик (АЛьФ) по моим просьбам доработал компоненту, чтобы решить эти вопросы.
Сложность парсинга КМ в зависимости от Товарной группы и устаревших спецификаций (для лекарств).


Злоп

Цитата: PavlovDL от Вчера в 07:47можно сделать вывод, что formex доработан. нужны правильные параметры
ждем правильных параметров
вскорости тоже надо будет марки печатать для ввода в оборот

Злоп

хотя... года два назад печатал для производителя одежды...
но код уже не помню где

АЛьФ

Продублирую сюда свой ответ из переписки.
По идее надо бы погонять Zint в отдельном виде с разными параметрами, добиться нужного результата и потом уже попробовать с теми же параметрами нарисовать в FormEx.
Вот если в этом случае не получится (например, нужных параметров в FormEx не выведено), тогда я подключусь и добавлю нужное в компоненту.

PavlovDL

Решение найдено.
При таком значении штрих-кода:

ЗначениеШтрихкода="[01]04693257680055[21]540YkK:wYMCRKCU:n*.i[91]FFD0[92]dGVzdAX8V8JbgOcia9VWiJjRLv1wlzxl+Ob/EnBEUI8=";

И такими параметрами метода:

Сервис.НарисоватьШтрихкод(Картинка,71,ЗначениеШтрихкода,0,,2,,512);

Получили нужный результат:

Признак символики GS1 DataMatrix:
Присутствует
Штрихкод:
010469325768005521540YkK:wYMCRKCU:n*.i<GS>91FFD0<GS>92dGVzdAX8V8JbgOcia9VWiJjRLv1wlzxl+Ob/EnBEUI8=
Длина: 92 символа.
Содержимое штрихкода:
(01) 04693257680055 [14]
(21) 540YkK:wYMCRKCU:n*.i [20]
(91) FFD0 [4]
(92) dGVzdAX8V8JbgOcia9VWiJjRLv1wlzxl+Ob/EnBEUI8= [44]

т.е. лидирующий символ FNC1, а разделители групп GS

Все дело в параметре <output_options> - в значении 512 или <GS1_GS_SEPARATOR> он заменяет разделители FNC1 на GS

Синтаксис:
НарисоватьШтрихкод(<Картинка>, <ТипКода>, <ЗначениеКода>, <ПрятатьТест>,<eci>,<input_mode>,<УголПоворота>,<output_options>)

В мануале к FormEx этот параметр не описан, но в инструкции к библиотеке ZINT он есть

FormEx (2.0.5.198):
   BARCODE_NO_ASCII   1
   BARCODE_BIND      2
   BARCODE_BOX          4
   BARCODE_STDOUT      8
   READER_INIT          16
   SMALL_TEXT          32
   BOLD_TEXT           64
   CMYK_COLOUR         128
   BARCODE_DOTTY_MODE  256
ZINT:
--------------------------------------------------------------------------------
Value               |  Effect
--------------------------------------------------------------------------------
0                   |  No options selected.
BARCODE_BIND        |  Boundary bars above and below the symbol and between
                    |     rows if stacking multiple symbols. [2]
BARCODE_BOX         |  Add a box surrounding the symbol and whitespace. [2]
BARCODE_STDOUT      |  Output the file to stdout.
READER_INIT         |  Add a reader initialisation symbol to the data before
                    |     encoding.
SMALL_TEXT          |  Use a smaller font for the human readable text.
BOLD_TEXT           |  Embolden the human readable text.
CMYK_COLOUR         |  Select the CMYK colour space option for encapsulated
                    |      PostScript files.
BARCODE_DOTTY_MODE  |  Plot a matrix symbol using dots rather than squares.
GS1_GS_SEPARATOR    |  Use GS instead FNC1 as GS1 separator (Data Matrix)

Надеюсь будет полезно для маркировки РЭП с 01.05.2026
Большое спасибо всем откликнувшимся