gifts2017

Компонента NativeAPI 1С для массового распознавания и печати штрих-кодов

Опубликовал Igor Berezhnov (igorberezhnov) в раздел Программирование - Внешние компоненты

Программная компонента в формате NativeAPI 1C-предприятия (не ниже 8.2) предназначена для массового распознавания штрих-кодов из файлов на жестком диске, или загруженных в память компьютера из базы данных или любым другим способом, а также отображения штрих-кодов без использования дополнительных компонентов на стороне клиента.

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

Программа предоставляется в виде архива со следующей структурой каталогов:

Component: папка с программным компонентом obrscanner.zip. Компонент представляет из себя zip-архив и содержит в себе файлы динамических библиотек, поддерживающих подключение в режиме NativeAPI 1С для архитектуры i386 и x64 системы Windows, а также манифест для обеспечения правильного процесса загрузки.

Distrib: Содержит необходимые системные файлы для архитектуры i386 и x64 системы Windows, необходимые для обеспечения работы компоненты. Данные файлы необходимо скопировать в системные каталоги Windows в соответствии с расположением в папках в архиве.

InfoBaseShtrih: Содержит тестовую конфигурацию для платформы «1С-Предприятие» версии 8.2 с примером использования компоненты. В данной конфигурации используется вариант компоненты, встроенный непосредственно в конфигурацию (общий макет). В данном варианте не требуется наличие на диске динамических библиотек компоненты или файла архива.

Системные требования:

1. Операционная система: Windows XP и выше, Windows Server 2000 и выше, для архитектуры i386 или x64;

2. Установленная технологическая платформа "1С-Предприятие" версии не ниже 8.2

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

Компонента из архива, находящаяся в каталоге "Component" должна быть встроена в макет конфигурации "1С-Предприятия". Для этого предварительно распакуйте архив на жесткий диск. Запустите конфигуратор 1С-Предприятия. В ветке конфигурации "Общие/Общие макеты" нажмите правую кнопку мыши, и в появившемся контекстном меню выберите пункт "Добавить". В появившемся окне выбора типа макета выберите "Двоичные данные". Перейдите в поле "Загрузить из файла" и выберите файл компоненты "obrscanner.zip".

Затем необходимо скопировать системные библиотеки из папки "Distrib" распакованного архива в каталоги системных файлов Windows. Для 64-битных систем: 64-битные библиотеки должны копироваться в папку System32, 64-битные - в папку SysWOW64. Для 32-битных систем - копировать библиотеки из папки архива SysWOW64 в папку system32 системы Windows. В каждой папке разные версии библиотек, хотя 2 из них имеют одинаковые имена файлов - libiconv.dll и msvcr120.dll, их надо размещать строго по соответствующим папкам. Файлы должны быть скопированы в системную папку именно на том компьютере, на котором будет запущен сервер приложений 1С.

Достоинства

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

Использование в программах 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) – Применение эффекта негатива к переданному программе изображению. Если переданное значение – Истина, то цвета изображения инвертируются.

Внимание! Для того, чтобы наглядно увидеть, каким образом те или иные параметры преобразования изображения влияют на результирующее изображение, запустите обработку «Обработка сканирования кодов» в демонстрационной базе данных.

Применение эффектов преобразования к рисунку перед распознаванием

Декодировать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) – Дополнительные опции, требующиеся для некоторых типов штрих-кодов.

Первичный (Primary) – Дополнительные данные для составных штрих-кодов.

ЦветФона (BackColor) – Цвет фона (подложки) изображения сгенерированного штрих-кода. В качестве параметра могут использоваться следующие значения:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Бесплатная техподдержка в течение 1 месяца с момента покупки. Возможно приобретение платной технической поддержки.

Гарантия возврата денег

Гарантия возврата денег

ООО "Инфостарт" гарантирует Вам 100% возврат оплаты, если программа не соответствует заявленному функционалу из описания. Деньги можно вернуть в полном объеме, если вы заявите об этом течение 14-ти дней со дня поступления денег на наш счет.

Программа настолько проверена в работе, что мы с полной уверенностью можем дать такую гарантию. Мы хотим, чтобы все наши покупатели оставались довольны покупкой.

Для возврата оплаты просто свяжитесь с нами.

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Инструкция по установке и эксплуатации
.docx 972,84Kb
14.08.16
5
.docx 972,84Kb 5 Бесплатно
Компонента распознавания и генерации штрих-кодов для 1С 8.2+
16.11.2016
1.2 8000 руб.

Моментальная
доставка

Платная техническая поддержка на 1 месяц
15.08.2016
1000 руб.

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Сергей (Che) Коцюра (CheBurator) 15.08.16 15:44
Программная компонента.. для использования... без программных компонент - это сильно!
2. Igor Berezhnov (igorberezhnov) 15.08.16 15:51
(1) CheBurator, "без программных компонент" это где Вы нашли? Предполагаю, что Вас смутила фраза "Без использования дополнительных компонентов на стороне клиента". Вам требуется разъяснить её смысл?
3. Дмитрий Шерстобитов (DitriX) 16.08.16 13:54
а в мобильной работать будет?
4. Igor Berezhnov (igorberezhnov) 16.08.16 16:36
(3) DitriX, скорее всего не будет
5. Дмитрий Шерстобитов (DitriX) 16.08.16 20:44
(4) А жаль, мобильная сейчас тоже поддерживает NativeAPI...
6. Igor Berezhnov (igorberezhnov) 17.08.16 08:13
(5) DitriX, Не могу понять, зачем этот функционал в мобильной платформе? Файловое хранилище на мобильнике не устроишь, а для распознавания через камеру есть масса готовых бесплатных решений.
7. Вадим Латышев (pro1c@inbox.ru) 18.08.16 20:45
Извините, конечно, я один не понял, а зачем это нужно?
8. Igor Berezhnov (igorberezhnov) 19.08.16 10:20
(7) pro1c@inbox.ru, Если не поняли, значит это Вам точно не нужно:)
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа