Имя: Пароль:
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 идет как кнопка по умолчанию.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан