Тип кода штрих кода 1с

Обновлено: 07.07.2024

Работа с камерой реализована с применением технологии DirectX и требует установленного в системе DirectX, а также поддержку web-камерой этой технологии (практически все современные камеры, в том числе бюджетные, поддерживают DirectX).

Комплектация ПО:

  • ActiveX-компонент для печати штрих-кодов
  • Внешняя компонента захвата видео с камеры и распознавания штрих-кодов
  • Инструкция по эксплуатации (с подробным описанием каждого поддерживаемого типа штрих-кодов)
  • Пример внешней обработки для 1С 8.2

Программа предоставляется в виде программы-установщика, весь процесс установки происходит в мастере установки автоматически, с запросом параметров установки у пользователя. Установка может быть осуществлена как для одного пользователя, так и для всей системы.

В разработке использованы следующие свободно распространяемые библиотеки:

Zint – библиотека отображения штрих-кодов

Настройка свойств объекта из конфигуратора

Выделите указателем мыши элемент «CBarGenerator» в шаблоне печатной формы в конфигураторе, и щелкните правой кнопкой. В появившемся меню выберите пункт «CBarGenerator Control/Properties». В появившемся окне Вы можете изменять тип штрих-кода, данные, цвет, шрифт текста, отступы и т.д. (значения доступных для изменения свойств описаны в разделе «Программный интерфейс приложения»).

Вкладка основных настроек элемента управления

При изменении какого-либо из пунктов настроек становится доступной кнопка «Применить», с помощью которых Вы можете просмотреть результирующие изменения, не закрывая окна настроек. При нажатии кнопки «Ok» все сделанные изменения применяются к объекту, а окно настроек закрывается.

Программное управление свойствами объекта из 1С 7.7

Выделите указателем мыши элемент «CBarGenerator» в шаблоне печатной формы в конфигураторе «1С-Предприятие» 7.7, и щелкните правой кнопкой. В появившемся меню выберите пункт «Свойства».

Настройка свойств в 1С 7.7

В поле «Расшифровка» поместите имя функции, которая будет вызываться для события получения расшифровки. При вызове данной функции свойство шаблона «ТекущийОбъект» будет указывать на наш элемент управления, поэтому здесь можно изменять любые свойства, описанные в разделе «Программный интерфейс приложения». Пример программного кода:

Программное управление свойствами объекта из 1С 8.2

Выделите указателем мыши элемент «CBarGenerator» в макете табличного документа в конфигураторе, перейдите во вкладку «Свойства рисунка» и задайте ему имя.

Задание имени рисунка

Теперь Вы можете обращаться к объекту из программного кода по указанному имени. Предварительно необходимо вывести макет в результирующий табличный документ. Пример программного кода:

Программный интерфейс приложения

Свойства объекта

BackColor

Чтение и запись. Тип – числовой. Установка и получение цвета фона штрих-кода. Устанавливается 24-битным целым числом, в котором каждый из трёх байтов отвечает за свою цветовую составляющую (RGB). Например, $FF0000 (десятичное 16711680) соответствует красному цвету,

BarColor

Чтение и запись. Тип – числовой. Установка и получение цвета штрихов штрих-кода. Установка аналогична параметру BackColor.

BarData

Чтение и запись. Тип – строковой. Установка и чтение строки данных для преобразования в штрих-код (подробнее в разделе «Формат штрих-кодов»).

BarType

Чтение и запись. Тип – числовой (в VBA использовать перечисление Symbology). Установка и чтение типа штрих-кода. Соответствие типов штрих-кодов числовым кодам приведено в таблице:

Для уточнения типа штрих-кода в некоторых случаях требуется установка дополнительных параметров Option1, Option2, Option3. Для составных кодов может потребоваться установка свойства Primary.

BorderWidth

Чтение и запись. Тип – числовой. Установка и чтение толщины рамки вокруг штрих-кода (0 – рамка не используется).

Чтение и запись. Тип – OleFont. В системах «1С-Предприятие» любых версий установка данного параметра невозможна. Установка и получение шрифта человекочитаемой текстовой метки, выводимой вместе с штрих-кодом.

MarginLeft, MarginTop, MarginRight, MarginBottom, PaddingLeft, PaddingRight, PaddingBottom,

SpacingLeft, SpacingTop, SpacingRight, SpacingBottom

Чтение и запись. Тип – числовой. Отвечает за размеры отступов. Соответствие параметров показано на рисунке.

Значение параметров размеров отступов

Option1, Option2, Option3

Чтение и запись. Тип – числовой. Дополнительные опции, требующиеся для некоторых типов штрих-кодов.

Primary

Чтение и запись. Тип – строковой. Дополнительные данные для составных штрих-кодов. Подробнее в разделе «Формат штрих-кодов».

ShowText

Чтение и запись. Тип – булево (в 1С 7.7 – целое число ). Флаг отображения человекочитаемой метки, выводимой вместе с некоторыми типами штрих-кодов. Значение True (1) – выводить текст, False (0) – скрыть текст.

TextColor

Чтение и запись. Тип – числовой. Установка и получение цвета шрифта человекочитаемой текстовой метки, выводимой вместе с штрих-кодом. Установка аналогична параметру BackColor.

Работа с компонентом распознавания

Компонент распознавания штрих-кодов реализован с использованием DirectX для захвата видеопотока с камеры. Поток разбивается на отдельные кадры, которые затем анализируются на предмет наличия одного или нескольких изображений символов штрих-кодов. При обнаружении символов, они выделяются в окне сканирования яркой линией, а информация о распознанных символах, такая, как расшифрованные данные, тип штрих-кодирования, угол, при повороте на который было произведено успешное распознавание, передается при помощи внешнего события в систему "1С-Предприятие".

Использование в программах 1С 7.7, 8.2

Компонент распознавания оформлен в виде внешней компоненты для систем 1С, и может быть встроен в программу стандартным для 1С способом:

В глобальном модуле:

Для вызова окна сканирования и запуска процедуры сканирования служит функция "ПоказатьОкноСканирования()":

После того, как программа распознала штрих-код, она отправляет в 1С строку, в которой зашифрованы распознанные данные, тип штрих-кода, доп. опции, угол поворота, при котором произошло распознавание. Строка данных закодирована алгоритмом Base64. Для раскодирования воспользуйтесь функцией компоненты"ДекодироватьBase64" (англ. "DecodeBase64").

Настройка параметров распознавания в системе 1С

После загрузки компоненты в системе 1С в панели настроек появляется новая вкладка, на которой Вы можете настроить следующие параметры:

Окно настройки сканирования

  • Устройство захвата видео - позволяет выбрать используемое для считывания видеоустройство, если их в системе несколько.
  • Вращать изображение - позволяет добиться более точного качества распознавания на достаточно мощных компьютерах, вращая изображение по 15% до 90% до тех пор, пока символ штрих-кода не найден на снимке.
  • Типы бар-кодов - выбор типов бар-кодов, наличие которых на снимке будет пытаться определить программа. Программа может распознавать следующие типы бар-кодов: EAN-8, EAN-13, UPC-A, UPC-E, ISBN-10, ISBN-13, Code-39, PDF-417, Qr-Code, Code 128, Interleaved 2 of 5.
  • Разрешение камеры - настройка точности распознавания;
  • Проверять корректность данных - проверять соответствие стандарту распознанных данных для определённого типа кода;
  • Останавливать сканирование после распознавания - после распознавания символа остановить процесс сканирования;
  • Закрывать окно после распознавания - закрыть окно сканирования после распознавания символа.

Программный интерфейс компоненты распознавания

Свойства:

Картинка (Picture) - чтение, запись. Установка картинки для распознавания. Возможно два варианта установки данного свойства:

1: В качестве значения свойства устанавливается имя файла изображения. При этом компонента пытается загрузить файл изображения с диска по указанному пути, и определить тип его содержимого. Доступные типы графических файлов – JPEG, PNG, GIF, BMP.

2. В качестве значения свойства устанавливается строка, содержащая закодированные алгоритмом Base64 двоичные данные, полученные из картинки 1С:

При считывании значения из данного свойства, компонент всегда возвращает двоичные данные текущей картинки, загруженной с диска или захваченной с камеры, закодированные алгоритмом Base64. Получить готовую картинку 1С можно следующим образом:

ТипыСимволов (SymbolTypes) – чтение, запись. Установка/считывание доступных для использования типов штрих-кодов. В качестве значения передаётся строка, содержащая символьные наименования типов штрих-кодов, разделённые запятой. Возможные значения следующие: "ean-13", "ean-8", "upc-e", "upc-a", "isbn-10", "isbn-13", "i2/5", "code-39", "code-128", "pdf417", "qr-code".

ПоворачиватьКартинку (RotateBitmap) – чтение, запись. Содержит логическое значение – истина или ложь. В случае установки значения Истина, для наиболее качественного распознавания изображение будет поворачиваться с приращением 15 градусов, до 90 градусов.

ГоризонтальноеРазрешение (DensityX) – чтение, запись. Позволяет задать горизонтальное разрешение камеры, устанавливается число от 1 до 10. Самое мелкое разрешение – 1.

ВертикальноеРазрешение (DensityY) – чтение, запись. Позволяет задать вертикальное разрешение камеры, устанавливается число от 1 до 10. Самое мелкое разрешение – 1.

Методы:

ПоказатьОкноСканирования (ShowScanWindow) – Показать окно сканирования, включить получение данных с видеокамеры и начать процесс распознавания символов штрих-кодов.

ДекодироватьBase64 (DecodeBase64) – Декодирование зашифрованной алгоритмом Base64 строки данных, переданной из внешней компоненты в обработчик внешнего события.

КодироватьBase64(EncodeBase64) – Кодирование строки данных 1С алгоритмом Base64. Для использования в следующих версиях компоненты.

СканироватьРисунок (ScanPicture) – Сканирование рисунка, переданного компоненте в свойстве «Картинка», на предмет наличия штрих-кодов. Декодированные данные возвращаются в программу в виде строки. Расшифровка строки возможна при помощи следующего кода 1С:

ПолучитьФрагмент (GetFragment) – возвращает фрагмент исходного рисунка, содержащий обнаруженный символ штрих-кода. Рисунок возвращается в виде строки, закодированной алгоритмом Base64 (метод расшифровки дан в описании свойства «Картинка»). В качестве параметра в функцию передается порядковый номер обнаруженного символа, первый фрагмент обозначается единицей.

Требования к системе

Для использования комплекта ПО требуется, чтобы на компьютере пользователя была установлена операционная система Windows версии Windows XP и выше. Для работы компоненты распознавания на компьютере обязательно должен быть установлен DirectX версии не ниже 7.0, и видеокамера, поддерживающая интерфейс DirectX.

Условия распространения

Программное обеспечение распространяется в виде двоичных файлов, упакованных в программу - установщик. Код программы в комплект поставки не входит, но может быть предоставлен для собственного использования, но не для коммерческих целей.

Техническая поддержка

Возможно приобретение платной технической поддержки.

Достоинства

Преимущества данного комплекта программ - их универсальность. Компоненты поддерживают огромное количество типов штрих-кодов, и могут быть встроены в любые программы, использующие стандартные интерфейсы программирования. Возможно использование данных компонентов как при разработке систем документооборота, так и для целей розничной торговли, формирования регламентированной бухгалтерской отчетности и т.д.

Внешний компонент “1C:Печать штрихкодов” (Native) для платформы «1С: Предприятие 8.3»

Внешний компонент "1С:Печать штрихкодов" для платформы "1С:Предприятие 8.3" поставляется в составе «1С:Библиотеки подключаемого оборудования» (далее БПО) и «1С:Библиотеки стандартных подсистем» (далее БСП) . Компонент предназначен для формирования изображений штрихкодов в формате PNG на основе передаваемых в компонент данных и параметров построения изображения. Компонент может использоваться только совместно с программными продуктами системы "1С:Предприятие 8" на рабочих местах, обеспеченных Лицензией на использование системы программ "1С:Предприятие 8".

  • Основные возможности
  • Алгоритм генерации изображений ШК
  • Невозможность генерации изображения
  • Свойства
  • Методы
  • Особенности работы с GS1 кодами
  • Пример генерации изображений штрихкода с помощью библиотек БПО и БСП

Основные возможности

Внешний компонент "1С:Печать штрихкодов" позволяет формировать изображения штрихкодов следующих типов: EAN8, EAN13, EAN13 AddOn 2, EAN13 AddOn 5, ITF14, RSS14, EAN128, Code39, Code39 Full ASCII, Code93, Code128, Code16k Industrial 2 of 5, Interleaved 2 of 5, CodaBar, PDF417, QR, GS1 databar extended stacked, DataMatrix ASCII, DataMatrix Base256, DataMatrix Text, DataMatrix C40, DataMatrix X12, DataMatrix Edifact, GS1 Datamatrix. Компонент позволяет автоматически определять тип штрихкода исходя из передаваемых параметров (см. раздел «Свойства компонента»).

Алгоритм генерации изображений ШК

Внешний компонент "1С:Печать штрихкодов" реализует следующий алгоритм генерации изображений ШК:



    5. Генерация изображения ШК с учетом заданного угла поворота и других параметров визуализации. Графически это можно представить следующим образом:


В случае успешной генерации изображения ШК свойство Результат будет содержать значение 0.

Невозможность генерации изображения

В случае, когда генерация изображения ШК невозможна, например из за несоответствия ЗначенияКода переданному ТипуКода или когда запрошены Ширина или Высота меньшие чем МинимальнаяШирина или МинимальнаяВысота кода, изображение будет сгенерировано в любом случае, однако вместо изображения ШК, оно будет содержать текст ошибки («invalid barcode» или «size too small») и значение свойства Результат будет содержать значение > 0.

Свойства

* Устаревшие свойства не используются в актуальных версиях компонента и будут удалены (станут недоступны) начиная с версии 10.1.1.1.

Методы

Особенности работы с GS1 кодами

К GS1 типам кодов относятся – EAN128, GS1 Datamatrix и GS1 Databar extended stacked. При задании ЗначенияКода GS1 кодов допускается две формы ввода:

  1. В виде Строки. В этом случае ЗначениеКода должно содержать код GS1 в HRI (Human Readable Inеrpretation) виде, в котором коды групп применения заключены в круглые скобки, например, (01)04600822901507(11)161109(30)2434. В этом случае компонент интерпретирует строку как код GS1, раскрывает скобки, добавляет символ GS в конце каждой группы переменной длины и генерирует изображение, добавив графический символ начала кода FNC1.
  2. В виде Строки Base64. В этом случае внешняя система передает в компонент двоичные данные, содержащие в соответствии со стандартом GS1 группы применения и символ GS завершения группы переменной длины. Компонент генерирует изображение полученных данных, добавляя в штрихкод лидирующий графический символ FMC1. Проверка данных на соответствие стандарту GS1 не производиться. Пример входного значения - MDEwMDg1MTc2ODAwMzAyMDIxPktvbzNLUkx0Z0YicB05M2RHVno=

Пример генерации изображений штрихкода с помощью библиотек БПО и БСП

В состав БПО и БСП включены и необходимые методы по инициализации компоненты “1C:Печать штрихкодов” (Native) и генерации изображений штрихкодов в прикладных решениях 1С.
Для генерации картинки штрикода необходимо использовать метод «ИзображениеШтрихкода()» общего модуля «ГенерацияШтрихкода»
Внешняя компонента будет загружена и инициализирована автоматически при первом вызове этого метода.
Подробное описание возможных значений входящих параметров даны в описании функции конструктора для заполнения структуры входящих параметров «ПараметрыГенерацииШтрихкода()» общего модуля «ГенерацияШтрихкода» .

Пример использования компоненты в составе БПО или БСП может быть представлен следующим листингом

Элемент управления 1С:Печать штрихкодов для платформы "1С:Предприятие 8.1"

Элемент управления предназначен для формирования штрихкода. Элемент управления может использоваться только совместно с программными продуктами системы "1С:Предприятие 8" на рабочих местах, обеспеченных Лицензией на использование системы программ "1С:Предприятие 8". Текущая версия элемента управления - 8.0.14.2 .

  • Основные возможности
  • Возможности оформления
  • Свойства
  • Методы
  • Пример работы с элементом управления
  • Установка элемента управления

Основные возможности

Элемент управления позволяет формировать штрихкоды следующих форматов: EAN8, EAN13, EAN13 AddOn 2, EAN13 AddOn 5, ITF14, RSS14, EAN128, Code39, Code39 Full ASCII, Code93, Code128, Code16k Industrial 2 of 5, Interleaved 2 of 5, CodaBar, PDF417. Поддерживается автоопределение формата штрихкода. Элементу управления можно передавать символьное значение штрихкода как с контрольным символом, так и без него. Есть возможность отключения показа контрольного символа штрихкода на результирующем изображении штрихкода. Для контроля полного вхождения полос штрихкода в область печати имеются свойства "минимальная ширина" и "минимальная высота", содержащие в себе минимально возможную ширину и высоту печатной области, в которой штрихкод может отображаться полностью.

Возможности оформления

Текст, отображаемый на поверхности штрихкода, можно задавать программно вне зависимости от содержания самого штрихкода. Можно изменять шрифт, положение текста (вверху или внизу штрихкода), признак отображения текста. Доступны для изменения цвет текста, цвет фона и цвет полос штрихкода. Фон штрихкода может быть прозрачным. Также изменяется угол поворота (дискретно по 90 градусов) штрихкода вместе с текстом, горизонтальное и вертикальное смещение штрихкода и размер поля вокруг печатаемого штрихкода.

Свойства

Методы

Пример работы с элементом управления

Установка элемента управления

Вы можете прямо сейчас установить элемент управления на жесткий диск Вашего компьютера

Внешний компонент “1C:Печать штрихкодов” (Native) для платформы «1С: Предприятие 8.3»

Внешний компонент "1С:Печать штрихкодов" для платформы "1С:Предприятие 8.3" поставляется в составе «1С:Библиотеки подключаемого оборудования» (далее БПО) и «1С:Библиотеки стандартных подсистем» (далее БСП) . Компонент предназначен для формирования изображений штрихкодов в формате PNG на основе передаваемых в компонент данных и параметров построения изображения. Компонент может использоваться только совместно с программными продуктами системы "1С:Предприятие 8" на рабочих местах, обеспеченных Лицензией на использование системы программ "1С:Предприятие 8".

  • Основные возможности
  • Алгоритм генерации изображений ШК
  • Невозможность генерации изображения
  • Свойства
  • Методы
  • Особенности работы с GS1 кодами
  • Пример генерации изображений штрихкода с помощью библиотек БПО и БСП

Основные возможности

Внешний компонент "1С:Печать штрихкодов" позволяет формировать изображения штрихкодов следующих типов: EAN8, EAN13, EAN13 AddOn 2, EAN13 AddOn 5, ITF14, RSS14, EAN128, Code39, Code39 Full ASCII, Code93, Code128, Code16k Industrial 2 of 5, Interleaved 2 of 5, CodaBar, PDF417, QR, GS1 databar extended stacked, DataMatrix ASCII, DataMatrix Base256, DataMatrix Text, DataMatrix C40, DataMatrix X12, DataMatrix Edifact, GS1 Datamatrix. Компонент позволяет автоматически определять тип штрихкода исходя из передаваемых параметров (см. раздел «Свойства компонента»).

Алгоритм генерации изображений ШК

Внешний компонент "1С:Печать штрихкодов" реализует следующий алгоритм генерации изображений ШК:



    5. Генерация изображения ШК с учетом заданного угла поворота и других параметров визуализации. Графически это можно представить следующим образом:


В случае успешной генерации изображения ШК свойство Результат будет содержать значение 0.

Невозможность генерации изображения

В случае, когда генерация изображения ШК невозможна, например из за несоответствия ЗначенияКода переданному ТипуКода или когда запрошены Ширина или Высота меньшие чем МинимальнаяШирина или МинимальнаяВысота кода, изображение будет сгенерировано в любом случае, однако вместо изображения ШК, оно будет содержать текст ошибки («invalid barcode» или «size too small») и значение свойства Результат будет содержать значение > 0.

Свойства

* Устаревшие свойства не используются в актуальных версиях компонента и будут удалены (станут недоступны) начиная с версии 10.1.1.1.

Методы

Особенности работы с GS1 кодами

К GS1 типам кодов относятся – EAN128, GS1 Datamatrix и GS1 Databar extended stacked. При задании ЗначенияКода GS1 кодов допускается две формы ввода:

  1. В виде Строки. В этом случае ЗначениеКода должно содержать код GS1 в HRI (Human Readable Inеrpretation) виде, в котором коды групп применения заключены в круглые скобки, например, (01)04600822901507(11)161109(30)2434. В этом случае компонент интерпретирует строку как код GS1, раскрывает скобки, добавляет символ GS в конце каждой группы переменной длины и генерирует изображение, добавив графический символ начала кода FNC1.
  2. В виде Строки Base64. В этом случае внешняя система передает в компонент двоичные данные, содержащие в соответствии со стандартом GS1 группы применения и символ GS завершения группы переменной длины. Компонент генерирует изображение полученных данных, добавляя в штрихкод лидирующий графический символ FMC1. Проверка данных на соответствие стандарту GS1 не производиться. Пример входного значения - MDEwMDg1MTc2ODAwMzAyMDIxPktvbzNLUkx0Z0YicB05M2RHVno=

Пример генерации изображений штрихкода с помощью библиотек БПО и БСП

В состав БПО и БСП включены и необходимые методы по инициализации компоненты “1C:Печать штрихкодов” (Native) и генерации изображений штрихкодов в прикладных решениях 1С.
Для генерации картинки штрикода необходимо использовать метод «ИзображениеШтрихкода()» общего модуля «ГенерацияШтрихкода»
Внешняя компонента будет загружена и инициализирована автоматически при первом вызове этого метода.
Подробное описание возможных значений входящих параметров даны в описании функции конструктора для заполнения структуры входящих параметров «ПараметрыГенерацииШтрихкода()» общего модуля «ГенерацияШтрихкода» .

Пример использования компоненты в составе БПО или БСП может быть представлен следующим листингом

Привет всем! В данной статье предлагаю небольшой обзор возможностей актуальной библиотеки стандартных подсистем (БСП) на предмет формирования большинства существующих штрихкодов. На момент написания статьи точка актуальности - это БСП версии 3.1.4.104.

Для чего это нужно и чем может быть полезная эта статья? Поскольку, у нас в России сейчас активно наращивает обороты маркировка продукции (сигареты, обуви, текстиля и т.п), функционал формирования штрихкодов был включен в основу всех типовых конфигураций - БСП. Думаю, что изучение данных типовых методов стандартных подсистем, значительно сократит время разработки ваших программ и не заставит вас ничего придумывать самостоятельно.

Основные возможности БСП инструментов разработчика "Генерация штрихкодов"

Базовой "входящей" серверной функцией-структурой для вывода штрих-кода является функция ПараметрыГенерацииШтрихкода() Экспорт

Выглядит она вот так:

Здесь, я хочу обратить ваше внимание на параметр структуры "ТипКода". Поддерживаются следующие типы кодов:

Далее, все достаточно просто - мы отправляем структуру параметров в серверную функцию ПодготовитьИзображениеШтрихкода(ВнешняяКомпонента, ПараметрыШтрихкода) через экспортную функцию ИзображениеШтрихкода(ПараметрыШтрихкода) Экспорт

выглядит это так:

ПодготовитьИзображениеШтрихкода(ВнешняяКомонента, ПараметрыШтрихкода)

Данная функция возвращает структуру РезультатОперации следующего содержания

Так же, обратите внимание, что Внешняя компонента - основной объект для формирования "картинки" штрихкода, встроенный в ОбщийМакет.КомпонентаПечатиШтрихкодов конфигурации БСП. Получить его можно вот так:

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

Рабочий пример использования функционала БСП для формирования штрихкода

Здесь я привожу набор процедур и функций для формирования штрихкода:

Этого достаточно, чтобы получить сгенерированную картинку на основе входящей строки штрихкода.

Заключение и выводы

В данной статье мы рассмотрели основную выжимку настройки и применения методов генерации штрихкодов с системе БСП. Данные методы вы можете использовать в любой стандартной конфигурации 1с, основой которой является библиотека стандартных подсистем.

Данный материал не претендует на какие-то "сверхсложные знания" - скорее всего, в текущих реалиях жизни - это методичка "в тренде" специально для вас - готовый инструмент для работы со штрихкодами. Как говориться - взял и применил сразу.

Для написания этой статьи я использовал Платформу 1с - 8.3.18.1208 и конфигурацию БСП 3.1.4.104.

Спасибо, что прочитали данную статью.

Другие мои материалы по БСП

Так же прошу ознакомиться с другими моими статьями по функционалу библиотеки стандартных подсистем и типовым конфигурациям:

Читайте также: