Добрый день.
Коллеги, подскажите пожалуйста правильные параметры метода НарисоватьШтрихкод для генерации DataMatrix GS1?
ЗначениеШтрихкода="010469325768005521540YkK:wYMCRKCU:n*.i" + Симв(29) + "91FFD0" + Симв(29) + "92dGVzdAX8V8JbgOcia9VWiJjRLv1wlzxl+Ob/EnBEUI8=";
Сервис.НарисоватьШтрихкод(Картинка,71,ЗначениеШтрихкода,,,"GS1_MODE");
При таких значениях разделители групп формируются верно, но отсутствует лидирующий спецсимвол FNC1
Вот так попробуй
Сервис.НарисоватьШтрихкод(Объект, 71, ШтрихКодДокумента, 0,,0,,);
Если поставить параметр 2 - что означает то пишет ошибку Error 251: Control characters are not supported by GS1
Цитата: 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
т.е. лидирующий символ FNC1
разделители групп GS
на просторах инфостарта, пост victuan
можно сделать вывод, что formex доработан. нужны правильные параметры
Если кратко, то:
Сервис.НарисоватьШтрихкод(Картинка,ТипЧислом,ТекстШтрихкода,0, ,Режим,,РежимВых)
Сам код не сложный, но пришлось некоторые сведения с трудом добывать (например, как сделать чтобы при выводе в начале был FNC1, а дальше GS, а не тоже FNC1, также были глюки при выводе некоторых серийных номеров). Разработчик (АЛьФ) по моим просьбам доработал компоненту, чтобы решить эти вопросы.
Сложность парсинга КМ в зависимости от Товарной группы и устаревших спецификаций (для лекарств).
Цитата: PavlovDL от Вчера в 07:47можно сделать вывод, что formex доработан. нужны правильные параметры
ждем правильных параметров
вскорости тоже надо будет марки печатать для ввода в оборот
хотя... года два назад печатал для производителя одежды...
но код уже не помню где
Продублирую сюда свой ответ из переписки.
По идее надо бы погонять Zint в отдельном виде с разными параметрами, добиться нужного результата и потом уже попробовать с теми же параметрами нарисовать в FormEx.
Вот если в этом случае не получится (например, нужных параметров в FormEx не выведено), тогда я подключусь и добавлю нужное в компоненту.
Решение найдено.
При таком значении штрих-кода:
ЗначениеШтрихкода="[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
Большое спасибо всем откликнувшимся