gifts2017

Демонстрация работы сканера штрих кода "в разрыв клавиатуры" с использованием внешнего события.

Опубликовал Andrey (kentavr27) в раздел Оборудование - Сканер штрих-кода

Данная конфигурация демонстрирует возможность использования сканера "в разрыв клавиатуры" с генерацией внешнего события. При этом дополнительные драйвера для сканера не используются. В конфигурации использована компонента FormEx от АЛьФ'а (для 7.7) и перехватчик клавиатуры NATIVE от Kobra_RU (для 8.2)

Тема генерации события со сканера штрихкодов в разрыв клавиатуры поднималась не раз. Может быть я плохо искал, но ршения, которе бы меня устроило, я так и не нашел. На многочисленных формах довольно часто предлагают использовать драйвера, которые умеют эмулировать COM порт (это касается только USB сканера, но не KB). Как по мне -- это не всегда хорошо. Люди, работающие с этими драйверами регулярно жалутся, что шрихкоды читаются иногда не верно, с ошибками, или  вообще прекращается прием данных со сканера. Кроме того, при работе через удаленный рабочий стол тоже возникают некоторые проблемы с пробросом портов от клиента к серверу, а тем более если таковых подключений не один десяток... Ну а об использовании сканера в разрыв клавиатуры "as is" вообще речь не ведется. Крайне неудобно в каждой форме заводить поле для считываемого штрихкода, да еще и следить за тем, что бы курсор стоял именно в этом поле, а не где попало.

Все эти проблемы поможет решить приведенная методика генерации внешнего события, как для USB, так и для чистого KB сканера. 

В публикации представлены демо конфигурации для платформ 7.7 и для 8.2 (управляемые формы)

Важно:

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

В текущих примерах для 7.7 используется префикс '$'. Для 8.2 -- 'C' Prefix. (тестировалось сканером Metrologic MS9520)

Это и есть единственный минус данного решения. Тот символ, который будет запрограммирован в сканере, будет невозможно набрать с клавиатуры (хотя читать/не читать можно тоже задать программно). Решено: символ '$' как текст можно ввести, например, клавишей F3 (для 7.7)

Потестить данный пример можно и без наличия сканера штрихкодов. В любой из форм можно набрать символ '$' и ввести штрихкод с клавиатуры, закончив ввод клавишей [Enter]. Результат будет одинаковым...

(для тестирования без сканера в 8.2 в настройке "Использовать сканер штрихкодов" поставить НЕТ)

Чуть было не забыл... В приведенном примере решена проблема транслитерации символов, если сканер "в разрыв" считывает данные, когда включена русская раскладка клавиатуры. Для тех, кто работает только с числовыми штрихкодами это не актуально, а вот тем, кому приходится работать с серийными номерами -- это проблема. Дело в том что сканеры "в разрыв" при включенной русской раскладке штрихкод [s/n00557F452AZZUI] считает как [ы/т00557А452ФЯЯГШ] что совсем не устроит ни программу учета, ни самого пользователя :)

Еще один момент... для нормальной отработки сканера в 8.2 кроме префикса 'C' (Enable "C" Prefix) в нем желательно запрограммировать задержку (25 msec Intercharacter Delay)

Источник внешней компоненты перехвата клавиатуры для 8.2: http://infostart.ru/public/91306/

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

Наименование Файл Версия Размер Кол. Скачив.
Демонстрационная конфигурация 7.7
.rar 204,69Kb
19.03.13
31
.rar 204,69Kb 31 Скачать
Демонстраионная конфигурация 8.2
.rar 104,58Kb
03.07.15
65
.rar 104,58Kb 65 Скачать

См. также

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

Комментарии

2. Иван Петров (BoryaMbi) 17.07.13 22:34
Спасибо за пример использования.
Реально был нужен.
3. Александр Никитин (ManyakRus) 16.02.16 10:54
пригодилось :)
разрыв клавиатуры это хорошо :) для сканера
Доделал немножко чтоб префикс брал один из стандартных а не $.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа