Программная компонента разработана в соответствии со стандартным интерфейсом внешних компонент NativeAPI 1C-предприятия (не ниже 8.2) предназначена для массового распознавания штрих-кодов из файлов на жестком диске, или загруженных в память компьютера из базы данных или любым другим способом. Может работать как на стороне клиента, так и на стороне сервера приложений. В связи с тем, что компонент оформлен в формате NativeAPI, не требует установки и регистрации. Может быть загружена как из файла динамической библиотеки, расположенного на жестком диске, так и из общего макета конфигурации 1С-предприятия. Работает как с обычными, так и с управляемыми формами. Перед тем, как дать программе задание распознать изображение, к нему можно применить массу различных улучшающих эффектов – осветление, увеличение контрастности, выделение контура и т.д. В процессе распознавания можно запустить вращение изображения по 15%. В части отображения изображений штрих-кодов не требует установки никакого дополнительного программного обеспечения на компьютере клиента, так как сгенерированное изображение является стандартным для системы Windows. В отличии от других подобных компонент такого типа имеет следующие неоспоримые преимущества:
- Генерируемое изображение является векторным, и не зависит от разрешения устройства вывода;
- При формировании изображения не используются временные файлы на диске, изображение формируется прямо в программе на языке 1С для вставки в таблицу или на форму, что позволяет избежать конфликтов доступа к файлу, а также избежать случаев отсутствия доступа к папкам на жестком диске сервера приложений.
Состав архива:
Component: папка с программным компонентом obrscanner.zip. Компонент представляет из себя zip-архив и содержит в себе файлы динамических библиотек, поддерживающих подключение в режиме NativeAPI 1С для архитектуры i386 и x64 системы Windows, а также манифест для обеспечения правильного процесса загрузки.
Distrib: Содержит необходимые системные файлы для архитектуры i386 и x64 системы Windows, необходимые для обеспечения работы компоненты. Данные файлы необходимо скопировать в системные каталоги Windows в соответствии с расположением в папках в архиве.
InfoBaseShtrih: Содержит тестовую конфигурацию для платформы «1С-Предприятие» версии 8.2 с примером использования компоненты. В данной конфигурации используется вариант компоненты, встроенный непосредственно в конфигурацию (общий макет). В данном варианте не требуется наличие на диске динамических библиотек компоненты или файла архива.
Использование в программах 1С 8.2, 8.3
Компонент распознавания и печати штрих-кодов оформлен в виде внешней компоненты «NativeAPI» для систем «1С-Предприятие» версии не ниже 8.2, и может быть встроен в программу несколькими способами:
- При помощи загрузки динамической библиотеки по указанному пути (в этом случае необходимо указывать путь к динамической библиотеке определенной архитектуры платформы 1С.
- При помощи указания URL к внешнему компоненту, в виде двоичных данных или ZIP-архива, в формате, аналогичном ПолучитьНавигационнуюСсылку.
- При помощи встраивания в общий макет двоичных данных архива.
Пример использования:
Процедура ПриНачалеРаботыСистемы()
ПутьКМакету = "ОбщийМакет.КомпонентаШтрихКода";
Если ПодключитьВнешнююКомпоненту(ПутьКМакету, "OBRLib",
ТипВнешнейКомпоненты.Native) Тогда
СканерОбъект = Новый("AddIn.OBRLib.OBRExtension");
ШтрихОбъект = Новый("AddIn.OBRLib.SymbolExtension");
Иначе
СканерОбъект = Null;
ШтрихОбъект = Null;
Сообщить("Невозможно подключить внешнюю компоненту!");
КонецЕсли;
КонецПроцедуры
Свойства объекта OBRExtension
Картинка (Picture) — чтение, запись. Установка картинки для распознавания. Возможно два варианта установки данного свойства:
1: В качестве значения свойства устанавливается имя файла изображения. При этом компонента пытается загрузить файл изображения с диска по указанному пути, и определить тип его содержимого. Доступные типы графических файлов – JPEG, PNG, GIF, BMP.
2. В качестве значения свойства устанавливается строка, содержащая двоичные данные, полученные из картинки 1С:
СканерОбъект.Картинка = Картинка.ПолучитьДвоичныеДанные();
При считывании значения из данного свойства, компонент всегда возвращает двоичные данные текущей картинки, загруженной с диска или захваченной с камеры. Получить готовую картинку 1С можно следующим образом:
Картинка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.
Яркость (Brightness) — Регулировка яркости переданного программе изображения
Контрастность (Contrast) — Регулировка контрастности переданного программе изображения
ОттенкиСерого (GrayScale) — Преобразование цветного изображения в изображение с оттенками серого
Освещенность (Lightness) — Регулировка освещенности переданного программе изображения
Затемненность (Darkness) — Регулировка затемненности переданного программе изображения
Насыщенность (Saturation) — Регулировка насыщенности цвета переданного программе изображения
СведенныйСвет (SplitLight) — Регулировка сведения цветов переданного программе изображения
Постеризация (Posterize) – Эффект получения обобщённого изображения с ограниченным количеством полутонов
Соляризация (Solarize) – Применение эффекта соляризации к переданному программе изображению. Регулировка глубины эффекта.
ГауссовоРазмытие (GaussianBlur) – Применение фильтра размытия по гауссу к переданному программе изображению. Регулировка глубины эффекта.
Сглаживание (AntiAlias) – Применение эффекта сглаживания к переданному программе изображению. Регулировка глубины эффекта.
Трассировка (Trace) – Применение эффекта выделения контуров изображения к переданному программе изображению. Регулировка глубины эффекта.
Инверсия (Invert) – Применение эффекта негатива к переданному программе изображению. Если переданное значение – Истина, то цвета изображения инвертируются.
| Внимание! Для того, чтобы наглядно увидеть, каким образом те или иные параметры преобразования изображения влияют на результирующее изображение, запустите обработку «Обработка сканирования кодов» в демонстрационной базе данных (Рис. 1). |
ДекодироватьBase64 (DecodeBase64) – Декодирование зашифрованной алгоритмом Base64 строки данных, возвращаемой из внешней компоненты при распознавании.
КодироватьBase64(EncodeBase64) – Кодирование строки данных 1С алгоритмом Base64.
СканироватьРисунок (ScanPicture) – Сканирование рисунка, переданного компоненте в свойстве «Картинка», на предмет наличия штрих-кодов. Декодированные данные возвращаются в программу в виде внутреннего представления 1С массива структур со следующим набором полей:
- ТипКодаСтр – тип распознанного символа в виде текстовой строки с наименованием типа.
- Данные – строка с распознанными данными, закодированная в формате base64. Может быть раскодирована при помощи следующего кода:
Данные = СканерОбъект.ДекодироватьBase64(ДанныеСканирования[Сч].Данные);
- Угол – угол, на который было повернуто изображение для того, чтобы распознать символ. Число с плавающей точкой.
- Аддон – строка с именем дополнения, которое было применено для распознавания.
- Локации – массив структур, содержащих координаты точек контура участка изображения, в котором найден распознанный символ. Каждая структура содержит поля X и Y, являющиеся целыми числами.
Получение описанного массива структур из результирующей строки возможна при помощи следующего кода 1С:
ДанныеСканирования = ЗначениеИзСтрокиВнутр(Коды);
ПолучитьФрагмент (GetFragment) – возвращает фрагмент исходного рисунка, содержащий обнаруженный символ штрих-кода (рис.2). Рисунок возвращается в виде двоичных данных 1С и может быть передан в конструктор встроенного объекта 1С «Картинка»:
Рисунок = Новый Картинка(ПолучитьФрагмент(1));
В качестве параметра в функцию передается порядковый номер обнаруженного символа, первый фрагмент обозначается единицей.
Свойства объекта SymbolExtension
ШтрихкодДанные (BarcodeData) – Установка и чтение строки данных для преобразования в штрих-код (подробнее в разделе «Формат штрих-кодов»).
ШтрихкодТип (BarcodeType) – Установка и чтение типа штрих-кода. В качестве значения передается числовой код. Соответствие типов штрих-кодов числовым кодам приведено в таблице:
| 1 | Code 11 | 2 | Standard Code 2 of 5 |
| 3 | Interleaved 2 of 5 | 4 | Code 2 of 5 IATA») |
| 6 | Code 2 of 5 Data Logic | 7 | Code 2 of 5 Industrial |
| 8 | Code 3 of 9 (Code 39) | 9 | Extended Code 3 of 9 (Code 39+) |
| 13 | EAN | 16 | GS1-128 (UCC.EAN-128) |
| 18 | Codabar | 20 | Code 128 (automatic subset switching) |
| 21 | Deutsche Post Leitcode | 22 | Deutsche Post Identcode |
| 23 | Code 16K | 24 | Code 49 |
| 25 | Code 93 | 28 | Flattermarken |
| 29 | GS1 DataBar-14 | 30 | GS1 DataBar Limited |
| 31 | GS1 DataBar Extended | 32 | Telepen Alpha |
| 34 | UPC A | 37 | UPC E |
| 40 | PostNet | 47 | MSI Plessey |
| 49 | FIM | 50 | LOGMARS |
| 51 | Pharmacode One-Track | 52 | PZN |
| 53 | Pharmacode Two-Track | 55 | PDF417 |
| 56 | PDF417 Truncated | 57 | Maxicode |
| 58 | QR Code | 60 | Code 128 (Subset B) |
| 63 | Australia Post Standard Customer | 66 | Australia Post Reply Paid |
| 67 | Australia Post Routing | 68 | Australia Post Redirection |
| 69 | ISBN (EAN-13 with verification stage) | 70 | Royal Mail 4 State (RM4SCC) |
| 71 | Data Matrix | 72 | EAN-14 |
| 74 | CODABLOCKF | 75 | NVE-18 |
| 76 | Japanese Postal Code | 77 | Korea Post |
| 79 | GS1 DataBar-14 Stacked | 80 | GS1 DataBar-14 Stacked Omnidirectional |
| 81 | GS1 DataBar Expanded Stacked | 82 | PLANET |
| 84 | MicroPDF417 | 85 | USPS OneCode |
| 86 | Plessey Code | 87 | Telepen Numeric |
| 89 | ITF-14 | 90 | Dutch Post KIX Code |
| 92 | Aztec Code | 93 | DAFT Code |
| 97 | Micro QR Code | 98 | HIBC Code 128 |
| 99 | HIBC Code 39 | 102 | HIBC Data Matrix |
| 104 | HIBC QR Code | 106 | HIBC PDF417 |
| 108 | HIBC MicroPDF417 | 110 | HIBC_BLOCKF |
| 112 | HIBC Aztec Code | 128 | Aztec Runes |
| 129 | Code 32 | 130 | Composite Symbol with EAN linear component |
| 131 | Composite Symbol with GS1-128 linear component | 132 | Composite Symbol with GS1 DataBar-14 linear component |
| 133 | Composite Symbol with GS1 DataBar Limited component | 134 | Composite Symbol with GS1 DataBar Extended component |
| 135 | Composite Symbol with UPC A linear component | 136 | Composite Symbol with UPC E linear component |
| 137 | Composite Symbol with GS1 DataBar-14 Stacked component | 138 | Composite Symbol with GS1 DataBar-14 Stacked Omnidirectional component |
| 139 | Composite Symbol with GS1 DataBar Expanded Stacked component | 140 | Channel Code |
| 141 | Code One | 142 | Grid Matrix |
Опция1 (Option1), Опция2 (Option2), Опция3 (Option3) – Дополнительные опции, требующиеся для некоторых типов штрих-кодов.
Угол (Angle) – Угол поворота результирующего изображения в градусах.
Первичный (Primary) – Дополнительные данные для составных штрих-кодов.
ЦветФона (BackColor) – Цвет фона (подложки) изображения сгенерированного штрих-кода. В качестве параметра могут использоваться следующие значения:
- Целое число, в котором упакованы значения RGB цвета. Упаковку можно произвести по следующей формуле: Красный + (Зеленый * 256) + (Синий * 65536);
- Строка с наименованием цвета на английском языке. Список соответствии наименований цветов представлен на рисунке 3. Все наименования цветов соответствуют наименованиям Web-цветов в 1С.
ЦветТекста (TextColor) – Цвет шрифта, используемого при отображении надписи сгенерированного штрих-кода. Требования к передаваемому значению такие же, как и для свойства «ЦветФона».
ЦветШтриха (BarColor) – Цвет, используемый при отображении графических элементов (штрихов) сгенерированного штрих-кода. Требования к передаваемому значению такие же, как и для свойства «ЦветФона».
ВыводитьТекст (ShowText) – Для типов символов, в которых возможен вывод надписи в изображении штрих-кода (например, EAN-13) позволяет включать и отключать отображение надписи. В случае присвоения значения «Истина» надпись будет отображена, в противном случае – отключена.
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Список наименований цветов и их соответствий
ПолеСлева (MarginLeft), ПолеСверху (MarginTop), ПолеСправа (MarginRight), ПолеСнизу (MarginBottom), ОтступСлева (PaddingLeft), ОтступСверху (PaddingTop), ОтступСправа (PaddingRight),ОтступСнизу (PaddingBottom) – отвечают за размеры отступов и полей. Соответствие параметров показано на рисунке 4.
ТолщинаРамки (BorderWidth) – Установка толщины рамки вокруг штрих-кода (0 – рамка не используется).
РазмерШрифта (FontSize) – Установка размера шрифта человекочитаемой текстовой метки, выводимой вместе с штрих-кодом. Допускаются значения в виде целых чисел от 7 до 72.
СемействоШрифта (FontFamily) – Текстовая строка с наименованием семейства шрифта, с применением которого будет отображена текстовая метка на штрих-коде. Допустимые значения – наименования шрифтов, установленных в системе (на сервере, где будет запущена компонента). Например – «Arial», «Times New Roman», «Tahoma».
СтильШрифта (FontStyle) – Текстовая строка, содержащая набор стилей шрифта, с применением которого будет отображена текстовая метка на штрих-коде. В случае применения нескольких стилей возможно их перечисление через запятую. Допустимые значения:
- Bold – жирный шрифт
- Italic – наклонный шрифт
- Underline – подчеркнутый шрифт
- Strikeout – зачеркнутый шрифт
Пример значения: «Bold, Italic».
Методы объекта OBRExtension
СоздатьРисунок (GenPicture) – Сгенерировать векторный рисунок в формате WMF (windows metafile) в соответствии с установленными ранее параметрами. Параметры метода:
Ширина: Ширина результирующего изображения
Высота: Высота результирующего изображения
Возвращаемое значение: двоичные данные, которые могут быть переданы в конструктор встроенного объекта 1С «Картинка».



