Имя: Пароль:
1C
1C 7.7
v7: Клавиатурный сканер и ловля клавиш Formex
,
0 Злопчинский
 
21.01.19
13:25
Если установлен клавиатурный сканер и стоит драйвер, который перехватывает клавиатуру и генерит ВнешнееСобытие (которое отлавливается штатной ОбработкаВнешнегоСобытия), то на самом деле никакого реального перехвата клавиатуры драйвером сканера не происходит ("реальный перехват" = когда 1С не видит что кнопки нажимаются).

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

Вопрос#1: А срабатывает ли в описанной выше ситуации ПриОтжатииКНопкиКлавиатуры()..? Сканера под рукой нет, проверить не на чем...

Вопрос#2: если клавиатурным сканером с драйвером, который генерит ВнешнееСобытие (с суффиксом #13) - отсканировать ШК в _поле ввода_ - то что будет? отработает процедура поля ввода по энтеру и после отработки процедуры - отработает внешнее событие? или как-то иначе? Сканера под рукой нет, проверить не на чем...

Спсб.
1 Сияющий в темноте
 
21.01.19
14:14
Драйвер ловит клавиши до передачи в окно,и если он начал ловить штрихкод,то в окно ничего не попадет.
просто hook для формекса отрабатывает раньше перехватчика драйвера,соответсвенно,отпускания он тоже увидит.
можно перехватывать на уровне системы,тогда до приложения ничего не дойдет
2 Злопчинский
 
21.01.19
16:15
> просто hook для формекса отрабатывает раньше перехватчика драйвера,соответсвенно,отпускания он тоже увидит.
- понял, спсб.

> Драйвер ловит клавиши до передачи в окно,и если он начал ловить штрихкод,то в окно ничего не попадет.
- ээээ, а тут непонятномалость. если это так - то каким образом спокойно сканируется в открытый блокнот, в котором нет никакой обработки внешнего события..? или я что-то не так ..?
3 MWWRuza
 
гуру
21.01.19
23:17
(2)Так в блокноте с драйвера сканера нет :-)

Сканер есть под рукой, в любой момент могу перевести в эмуляцию клавиатуры, и попробовать что нужно...
Набросай обработку, для эксперимента, как тебе надо... Как я понял, нужно одно поле ввода, загрузка формекса, загрузка драйвера сканера, обработка внешнего события, драйвер в котором можно включить порт "клавиатура"... А дальше что? В общем, давай обработку, потестирую, если хочешь.
4 MWWRuza
 
гуру
21.01.19
23:26
Хм... В той ScanOpos, которую я использую, нет возможности выбрать клавиатуру... А ведь где-то видел... Наверно в АТОЛовской компоненте, сейчас нет под рукой. Я использую 1С-овскую, ScanOpos.dll, от 23 ‎июня ‎2008, работает нормально, но в ней нет клавиатуры. Да как-то и не требовалось, всегда через com-порты работал...
5 BalBess
 
22.01.19
06:12
(0)
Вопрос#1: Да
Вопрос#2: отработает внешнее событие (в основном), это зависит от способа подключения, если rdp и wifi, то драйвер глючит, и тогда отправляет данные в поле ввода (причем часть символов может потеряться)

Вообще лучше не использовать одновременно ПриНажатииКнопкиКлавиатуры / ПриОтжатииКнопкиКлавиатуры и ОбработкаВнешнегоСобытия (именно для клавиатурных сканеров)

И кстати "драйвер" клавиатурного сканера реализованный через FormEx работает лучше, стабильней. Особенно в терминальных режимах через WiFi
6 Злопчинский
 
22.01.19
10:15
(3) открой в 1с новый текст из меню файл - и отсканируй клавиатурных сканером - что будет?
7 Злопчинский
 
22.01.19
10:16
(4) через порты вообще проблем нет
8 Злопчинский
 
22.01.19
10:19
(5) в своих разработках я вообще всегда без драйвера работал. Трест сканер  чисто как клавиатура, проблем нет. А тут клиенты на стороне - там что угодно
9 Salimbek
 
22.01.19
10:34
(4) Попробуй - покрути окошко выбора типа подключения ВВЕРХ :-)
10 MWWRuza
 
гуру
22.01.19
13:27
(6)Ну, попробовал... Работает. Сканировал первый попавшийся на столе кассовый чек(QR код)...
[img]https://content.foto.my.mail.ru/mail/m_w_w/_mypagephoto/h-258.jpg[/img]
11 MWWRuza
 
гуру
22.01.19
13:28
Блин, все забываю, что теги img здесь не работают...
Вот: https://content.foto.my.mail.ru/mail/m_w_w/_mypagephoto/h-258.jpg
12 MWWRuza
 
гуру
22.01.19
13:30
(9)Вот, до конца вверх:
https://content.foto.my.mail.ru/mail/m_w_w/_mypagephoto/h-259.jpg
вниз, заканчивается COM32, хотя, по опыту, работают только первые 9...
13 Злопчинский
 
23.01.19
11:10
(11) вот интерсено - если это комовский и генерится внешнее событие - то как без обработчика внешнего события попадает в текст?
14 MWWRuza
 
гуру
23.01.19
11:34
(13)Почему комовский? Это самый что ни на есть клавиатурный. Если делаю те-же действия комовским, то текстовый документ остается пустым. И даже, когда открываешь параллельно любую форму, в которой есть обработка внешнего события, то данные попадают в нее, текстовый файл как был пустым, так и остается.

PS Я кажется понял, что тебе надо... Нужна ВК, которая работает с клавиатурным сканером и ловит внешнее событие по префиксам и суффиксам... И ты хочешь посмотреть, в таком режиме будет сканер в текстовый файл параллельно передавать то, что отсканировал, или только в ВК.
Ну, тогда надо такую компоненту для эксперимента(моя не умеет, выше писал), и в сканер соответствующие префиксы/суффиксы запрограммировать... В повседневной работе я это не использую, как-то не было необходимости, использую эмуляцию СОМ и не морочу голову... А если пользователю нужно получить произвольный ШК в читаемом/копируемом виде, у меня в конфах присутствует специальная обработка, которая ловит ШК с ком по внешнему событию и просто выводит его в поле ввода на форме.
15 Kigo_Kigo
 
23.01.19
11:41
(13) (14) драйвер от Штрих-м ловит все сканеры, в том числе и клавиатурные
16 MWWRuza
 
гуру
23.01.19
13:22
(15)Платный?
АТОЛовский платный, до какой-то (6.20 - ?) версии вроде работал бесплатно, все, что позже выходило, в бесплатном режиме работает с тормозами, секунд по десять, после сканирования ШК. Как с этим у Штриха?
17 Kigo_Kigo
 
23.01.19
13:41
(16) Был бесплатный по моему версии 7.6.0.12
18 Salimbek
 
24.01.19
15:36
(12) Я у себя посмотрел на тестовой базе - там в Сервис - Настройка торгового оборудования можно выбрать - какой обработкой ловить штрихкод. Твоя "Сканер штрихкода" у меня не взлетела из-за проблем с регистрацией Addin. Зато Стандартный сканер - нормально отработал и после com32 - у него есть Клавиатура
https://i.imgur.com/Mf4fcyE.png
19 Salimbek
 
24.01.19
15:46
А если по теме: (0) Можно попробовать запрограммировать на Сканере Префикс, и в ПриНажатии смотреть, если прилетел Префикс, то остальные ХХХ символов игнорировать.

Вопрос №2 - при сканировании таким Клавиатурным сканером - хоть  поле ввода, хоть в списке Номенклатуры - веденные символы обрабатываются как ВнешнееСОбытие. В нажатия клавиатуры они не попадают. Вот когда проблемы с драйвером, тогда да, пытаешься в Номенклатуре найти товар по ШК, а вместо этого входишь в редактирование текущей карточки товара.
20 Сияющий в темноте
 
24.01.19
21:48
это если Enter у сканера не отключен.
по хорошему,нужно отключать,т.к.иначе,если перехватчик не ловит сканер,то enter идет как кнопка по умолчанию.