Получить консультацию

Edit Template

Компонента массового распознавания штрих-кодированных данных

Программная компонента разработана в соответствии со стандартным интерфейсом внешних компонент  NativeAPI 1C-предприятия (не ниже 8.2) предназначена для массового распознавания штрих-кодов из файлов на жестком диске, или загруженных в память компьютера из базы данных или любым другим способом. Может работать как на стороне клиента, так и на стороне сервера приложений. В связи с тем, что компонент оформлен в формате NativeAPI, не требует установки и регистрации. Может быть загружена как из файла динамической библиотеки, расположенного на жестком диске, так и из общего макета конфигурации 1С-предприятия. Работает как с обычными, так и с управляемыми формами. Перед тем, как дать программе задание распознать изображение, к нему можно применить массу различных улучшающих эффектов – осветление, увеличение контрастности, выделение контура и т.д. В процессе распознавания можно запустить вращение изображения по 15%. В части отображения изображений штрих-кодов не требует установки никакого дополнительного программного обеспечения на компьютере клиента, так как сгенерированное изображение является стандартным для системы Windows. В отличии от других подобных компонент такого типа имеет следующие неоспоримые преимущества:

  1. Генерируемое изображение является векторным, и не зависит от разрешения устройства вывода;
  2. При формировании изображения не используются временные файлы на диске, изображение формируется прямо в программе на языке 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. При помощи загрузки динамической библиотеки по указанному пути (в этом случае необходимо указывать путь к динамической библиотеке определенной архитектуры платформы 1С.
  2. При помощи указания URL к внешнему компоненту, в виде двоичных данных или ZIP-архива, в формате, аналогичном ПолучитьНавигационнуюСсылку.
  3. При помощи встраивания в общий макет двоичных данных архива.

Пример использования:

				
					Процедура ПриНачалеРаботыСистемы()
	ПутьКМакету = "ОбщийМакет.КомпонентаШтрихКода";

	Если ПодключитьВнешнююКомпоненту(ПутьКМакету, "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С массива структур со следующим набором полей:

  1. ТипКодаСтр – тип распознанного символа в виде текстовой строки с наименованием типа.
  2. Данные – строка с распознанными данными, закодированная в формате base64. Может быть раскодирована при помощи следующего кода:
				
					Данные = СканерОбъект.ДекодироватьBase64(ДанныеСканирования[Сч].Данные);
				
			
  1. Угол – угол, на который было повернуто изображение для того, чтобы распознать символ. Число с плавающей точкой.
  2. Аддон – строка с именем дополнения, которое было применено для распознавания.
  3. Локации – массив структур, содержащих координаты точек контура участка изображения, в котором найден распознанный символ. Каждая структура содержит поля 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) – Цвет фона (подложки) изображения сгенерированного штрих-кода. В качестве параметра могут использоваться следующие значения:

  1. Целое число, в котором упакованы значения RGB цвета. Упаковку можно произвести по следующей формуле: Красный + (Зеленый * 256) + (Синий * 65536);
  2. Строка с наименованием цвета на английском языке. Список соответствии наименований цветов представлен на рисунке 3. Все наименования цветов соответствуют наименованиям Web-цветов в 1С.

ЦветТекста (TextColor) – Цвет шрифта, используемого при отображении надписи сгенерированного штрих-кода. Требования к передаваемому значению такие же, как и для свойства «ЦветФона».

ЦветШтриха (BarColor) – Цвет, используемый при отображении графических элементов (штрихов) сгенерированного штрих-кода. Требования к передаваемому значению такие же, как и для свойства «ЦветФона».

ВыводитьТекст (ShowText) – Для типов символов, в которых возможен вывод надписи в изображении штрих-кода (например, EAN-13) позволяет включать и отключать отображение надписи. В случае присвоения значения «Истина» надпись будет отображена, в противном случае – отключена.

HTML Имя Цвета

HEX RGB
Красные тона:
IndianRed #CD5C5C 205, 92, 92
LightCoral #F08080 240, 128, 128
Salmon #FA8072 250, 128, 114
DarkSalmon #E9967A 233, 150, 122
LightSalmon #FFA07A 255, 160, 122
Crimson #DC143C 220, 20, 60
Red #FF0000 255, 0, 0
FireBrick #B22222 178, 34, 34
DarkRed #8B0000 139, 0, 0
Розовые тона:
Pink #FFC0CB 255, 192, 203
LightPink #FFB6C1 255, 182, 193
HotPink #FF69B4 255, 105, 180
DeepPink #FF1493 255, 20, 147
MediumVioletRed #C71585 199, 21, 133
PaleVioletRed #DB7093 219, 112, 147
Оранжевые тона:
LightSalmon #FFA07A 255, 160, 122
Coral #FF7F50 255, 127, 80
Tomato #FF6347 255, 99, 71
OrangeRed #FF4500 255, 69, 0
DarkOrange #FF8C00 255, 140, 0
Orange #FFA500 255, 165, 0
Жёлтые тона:
Gold #FFD700 255, 215, 0
Yellow #FFFF00 255, 255, 0
LightYellow #FFFFE0 255, 255, 224
LemonChiffon #FFFACD 255, 250, 205
LightGoldenrodYellow #FAFAD2 250, 250, 210
PapayaWhip #FFEFD5 255, 239, 213
Moccasin #FFE4B5 255, 228, 181
PeachPuff #FFDAB9 255, 218, 185
PaleGoldenrod #EEE8AA 238, 232, 170
Khaki #F0E68C 240, 230, 140
DarkKhaki #BDB76B 189, 183, 107
Фиолетовые тона:
Lavender #E6E6FA 230, 230, 250
Thistle #D8BFD8 216, 191, 216
Plum #DDA0DD 221, 160, 221
Violet #EE82EE 238, 130, 238
Orchid #DA70D6 218, 112, 214
Fuchsia #FF00FF 255, 0, 255
Magenta #FF00FF 255, 0, 255
MediumOrchid #BA55D3 186, 85, 211
MediumPurple #9370DB 147, 112, 219
BlueViolet #8A2BE2 138, 43, 226
DarkViolet #9400D3 148, 0, 211
DarkOrchid #9932CC 153, 50, 204
DarkMagenta #8B008B 139, 0, 139
Purple #800080 128, 0, 128
Indigo #4B0082 75, 0, 130
SlateBlue #6A5ACD 106, 90, 205
DarkSlateBlue #483D8B 72, 61, 139
Коричневые тона:
Cornsilk #FFF8DC 255, 248, 220
BlanchedAlmond #FFEBCD 255, 235, 205
Bisque #FFE4C4 255, 228, 196
NavajoWhite #FFDEAD 255, 222, 173
Wheat #F5DEB3 245, 222, 179
BurlyWood #DEB887 222, 184, 135
Tan #D2B48C 210, 180, 140
RosyBrown #BC8F8F 188, 143, 143
SandyBrown #F4A460 244, 164, 96
Goldenrod #DAA520 218, 165, 32
DarkGoldenRod #B8860B 184, 134, 11
Peru #CD853F 205, 133, 63
Chocolate #D2691E 210, 105, 30
SaddleBrown #8B4513 139, 69, 19
Sienna #A0522D 160, 82, 45
Brown #A52A2A 165, 42, 42
Maroon #800000 128, 0, 0
Основные цвета:
Black #000000 0, 0, 0
Gray #808080 128, 128, 128
Silver #C0C0C0 192, 192, 192
White #FFFFFF 255, 255, 255
 
Fuchsia #FF00FF 255, 0, 255
Purple #800080 128, 0, 128
Red #FF0000 255, 0, 0
Maroon #800000 128, 0, 0
 
Yellow #FFFF00 255, 255, 0
Olive #808000 128, 128, 0
Lime #00FF00 0, 255, 0
Green #008000 0, 128, 0
 
Aqua #00FFFF 0, 255, 255
Teal #008080 0, 128, 128
Blue #0000FF 0, 0, 255
Navy #000080 0, 0, 128
HTML Имя Цвета HEX RGB
Зелёные тона:
GreenYellow #ADFF2F 173, 255, 47
Chartreuse #7FFF00 127, 255, 0
LawnGreen #7CFC00 124, 252, 0
Lime #00FF00 0, 255, 0
LimeGreen #32CD32 50, 205, 50
PaleGreen #98FB98 152, 251, 152
LightGreen #90EE90 144, 238, 144
MediumSpringGreen #00FA9A 0, 250, 154
SpringGreen #00FF7F 0, 255, 127
MediumSeaGreen #3CB371 60, 179, 113
SeaGreen #2E8B57 46, 139, 87
ForestGreen #228B22 34, 139, 34
Green #008000 0, 128, 0
DarkGreen #006400 0, 100, 0
YellowGreen #9ACD32 154, 205, 50
OliveDrab #6B8E23 107, 142, 35
Olive #808000 128, 128, 0
DarkOliveGreen #556B2F 85, 107, 47
MediumAquamarine #66CDAA 102, 205, 170
DarkSeaGreen #8FBC8F 143, 188, 143
LightSeaGreen #20B2AA 32, 178, 170
DarkCyan #008B8B 0, 139, 139
Teal #008080 0, 128, 128
Синие тона:
Aqua #00FFFF 0, 255, 255
Cyan #00FFFF 0, 255, 255
LightCyan #E0FFFF 224, 255, 255
PaleTurquoise #AFEEEE 175, 238, 238
Aquamarine #7FFFD4 127, 255, 212
Turquoise #40E0D0 64, 224, 208
MediumTurquoise #48D1CC 72, 209, 204
DarkTurquoise #00CED1 0, 206, 209
CadetBlue #5F9EA0 95, 158, 160
SteelBlue #4682B4 70, 130, 180
LightSteelBlue #B0C4DE 176, 196, 222
PowderBlue #B0E0E6 176, 224, 230
LightBlue #ADD8E6 173, 216, 230
SkyBlue #87CEEB 135, 206, 235
LightSkyBlue #87CEFA 135, 206, 250
DeepSkyBlue #00BFFF 0, 191, 255
DodgerBlue #1E90FF 30, 144, 255
CornflowerBlue #6495ED 100, 149, 237
MediumSlateBlue #7B68EE 123, 104, 238
RoyalBlue #4169E1 65, 105, 225
Blue #0000FF 0, 0, 255
MediumBlue #0000CD 0, 0, 205
DarkBlue #00008B 0, 0, 139
Navy #000080 0, 0, 128
MidnightBlue #191970 25, 25, 112
Белые тона:
White #FFFFFF 255, 255, 255
Snow #FFFAFA 255, 250, 250
Honeydew #F0FFF0 240, 255, 240
MintCream #F5FFFA 245, 255, 250
Azure #F0FFFF 240, 255, 255
AliceBlue #F0F8FF 240, 248, 255
GhostWhite #F8F8FF 248, 248, 255
WhiteSmoke #F5F5F5 245, 245, 245
Seashell #FFF5EE 255, 245, 238
Beige #F5F5DC 245, 245, 220
OldLace #FDF5E6 253, 245, 230
FloralWhite #FFFAF0 255, 250, 240
Ivory #FFFFF0 255, 255, 240
AntiqueWhite #FAEBD7 250, 235, 215
Linen #FAF0E6 250, 240, 230
LavenderBlush #FFF0F5 255, 240, 245
MistyRose #FFE4E1 255, 228, 225
Серые тона:
Gainsboro #DCDCDC 220, 220, 220
LightGrey #D3D3D3 211, 211, 211
LightGray #D3D3D3 211, 211, 211
Silver #C0C0C0 192, 192, 192
DarkGray #A9A9A9 169, 169, 169
DarkGrey #A9A9A9 169, 169, 169
Gray #808080 128, 128, 128
Grey #808080 128, 128, 128
DimGray #696969 105, 105, 105
DimGrey #696969 105, 105, 105
LightSlateGray #778899 119, 136, 153
LightSlateGrey #778899 119, 136, 153
SlateGray #708090 112, 128, 144
SlateGrey #708090 112, 128, 144
DarkSlateGray #2F4F4F 47, 79, 79
DarkSlateGrey #2F4F4F 47, 79, 79
Black #000000 0, 0, 0

Список наименований цветов и их соответствий


ПолеСлева (MarginLeft), ПолеСверху (MarginTop), ПолеСправа (MarginRight), ПолеСнизу (MarginBottom), ОтступСлева (PaddingLeft), ОтступСверху (PaddingTop), ОтступСправа (PaddingRight),ОтступСнизу (PaddingBottom) – отвечают за размеры отступов и полей. Соответствие параметров показано на рисунке 4.

Соответствие параметров размеров

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

РазмерШрифта (FontSize) – Установка размера шрифта человекочитаемой текстовой метки, выводимой вместе с  штрих-кодом. Допускаются значения в виде целых чисел от 7 до 72.

СемействоШрифта (FontFamily) – Текстовая строка с наименованием семейства шрифта, с применением которого будет отображена текстовая метка на штрих-коде. Допустимые значения – наименования шрифтов, установленных в системе (на сервере, где будет запущена компонента). Например – «Arial», «Times New Roman», «Tahoma».

СтильШрифта (FontStyle) – Текстовая строка, содержащая набор стилей шрифта, с применением которого будет отображена текстовая метка на штрих-коде. В случае применения нескольких стилей возможно их перечисление через запятую. Допустимые значения:

  1. Bold – жирный шрифт
  2. Italic – наклонный шрифт
  3. Underline – подчеркнутый шрифт
  4. Strikeout – зачеркнутый шрифт

Пример значения: «Bold, Italic».


Методы объекта OBRExtension

СоздатьРисунок (GenPicture) – Сгенерировать векторный рисунок в формате WMF (windows metafile) в соответствии с установленными ранее параметрами. Параметры метода:

Ширина: Ширина результирующего изображения

Высота: Высота результирующего изображения

Возвращаемое значение: двоичные данные, которые могут быть переданы в конструктор встроенного объекта 1С «Картинка».

Выбор свойств отображения

 

Предыдущая запись
Следующая запись

Оставить отзыв

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Ознакомьтесь с нашими услугами

Широкий спектр предоставляемых услуг.