Как заставить компоненту FormEx формировать штрихкод DataMatrix в формате GS1?

Программист 1С v7.7 IT и автоматизация бизнеса
← На главную

При работе с маркировкой товаров часто возникает необходимость формирования штрихкодов стандарта DataMatrix с поддержкой GS1. Если вы используете внешнюю компоненту FormEx для 1С 7.7, вы могли столкнуться с тем, что простое использование квадратных скобок для обозначения идентификаторов применения AI не приводит к автоматическому добавлению символа FNC1, и сканеры не распознают такой код как GS1. Давайте разберем, как решить эту задачу.

Настройка режима формирования штрихкода

Для корректной работы FormEx необходимо передать дополнительные параметры в метод НарисоватьШтрихкод. Библиотека Zint, лежащая в основе генерации штрихкодов в данной компоненте, имеет специальный режим для обработки GS1.

Метод НарисоватьШтрихкод принимает следующие параметры:

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

Ключевым моментом для решения нашей задачи является параметр input_mode. Чтобы библиотека правильно интерпретировала содержимое строки и добавила необходимые управляющие символы (включая FNC1), необходимо установить этот параметр в значение 2.

Реализация решения в коде 1С

Рассмотрим, как правильно вызвать метод в коде вашей обработки. Для успешной генерации убедитесь, что вы используете достаточно свежую версию компоненты FormEx (рекомендуется версия 148 и выше), так как в старых версиях поддержка GS1_MODE может отсутствовать или работать некорректно.

Пример вызова метода в коде:


// Предположим, что Сервис - это инициализированный объект FormEx
// ШК - переменная с данными, например: [01]04610016191669[21]2a97...

ТипКода_DataMatrix = 71;
ПрятатьТекст = 0;
ECI = 0;
InputMode = 2; // Режим GS1_MODE для DataMatrix
Угол = 0;

Сервис.НарисоватьШтрихкод(ОбъектКартинка, ТипКода_DataMatrix, ШК, ПрятатьТекст, ECI, InputMode, Угол);

Обратите внимание: при установленном InputMode = 2, библиотека Zint будет воспринимать текст внутри квадратных скобок как AI (идентификаторы применения) и автоматически вставит требуемые символы FNC1. Вам не нужно пытаться добавлять их вручную через спецсимволы — это приведет к ошибке формата.

Рекомендации по подготовке данных

  1. Структура данных: Идентификаторы применения всегда заключайте в квадратные скобки. Например, [01]04610016191669[21]2a97.
  2. Версия компоненты: Если после указания input_mode = 2 штрихкод все равно не читается сканером как GS1, проверьте версию zint.dll, которую использует ваш FormEx. Старые версии библиотек не умеют корректно отрабатывать структуру GS1 даже при правильных параметрах вызова.
  3. Визуальное оформление: Если вас не устраивает размер текста под штрихкодом, который генерирует FormEx, мы рекомендуем установить параметр «прятать текст» в значение 1. В этом случае компонент отрисует только сам графический квадрат штрихкода. Подписи и цифры вы сможете вывести на форму 1С стандартными средствами (например, через текстовое поле или надпись), что даст вам полный контроль над шрифтом, его размером и расположением.

Используя этот подход, вы сможете добиться корректной генерации кодов, полностью соответствующих спецификациям системы маркировки, при этом сохраняя работу в привычной среде 1С 7.7.

← На главную