Версия для печати темы (https://pro1c.org.ua/index.php?s=a90ba6fc646382fd8892ead76491f4d6&showtopic=46586)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Не срабатывает ОбработкаВнешнегоСобытия при сканировании штрих кода

Автор: Leschyu 10.07.18, 11:30

Доброго времени суток!
Столкнулся с проблемой в самописной конфигурации на дистрибутиве Lubuntu 18.04 и версии платформы 1С:Предприятие 8.3 (8.3.12.1440) (на Windows все отрабатывает без всяких проблем).
В конфигурацию добавил Библиотеку Подключаемого Оборудования и на её базе подключил сканер штрих кодов с помощью драйверов NativeApi.
Но суть не в этом, все работает. Проблема заключается в том, что после сканирования ничего не происходит, а для того, что бы ОбработкаВнешнегоСобытия сработала нужно нажать любую клавишу либо кликнуть мышкой.
Может кто-то сталкивался, помогите пожалуйста.

Автор: Vidocq05 10.07.18, 12:28

Цитата(Leschyu @ 10.07.18, 12:30) *
для того, что бы ОбработкаВнешнегоСобытия сработала нужно нажать любую клавишу либо кликнуть мышкой

Она точно не срабатывает? В отладчике проверяли? Возможно она сработала и нужно просто обновить форму, или еще что то.

Автор: Leschyu 10.07.18, 13:03

Vidocq05 @ Сегодня, 13:28 * ,
Проверял в отладчике. Срабатывает только после клика или нажатие какой либо клавиши.

Автор: Vidocq05 10.07.18, 13:49

Leschyu @ Сегодня, 14:03 * ,
Что находится в "Источник", "Событие", "Данные"?

Автор: Leschyu 10.07.18, 14:25

Vidocq05 @ Сегодня, 14:49 * ,
ПОСЛЕ клика или нажатия любой клавиши срабатывает ОбработкаВнешнегоСобытия в модуле управляемого приложеня и в ней:
Источник = InputDevice#1
Событие = Штрихкод
Данные = BE000000002

Автор: sava1 10.07.18, 14:25

А что может находиться, если не отработало ?

Автор: batlcat 10.07.18, 15:01

Версия библиотеки какая (версия драйвера) ???

Вроде как в ноябрьской что то исправляли касаемо работы в Linux

Автор: Leschyu 10.07.18, 15:07

batlcat @ Сегодня, 16:01 * ,
Версия NativeApi 8.1.8.1 

Автор: batlcat 10.07.18, 15:27

Leschyu @ Сегодня, 16:07 * ,
lsusb

И посмотреть что он отдает

sudo tail -f /dev/[порт на который он зацепился]

Автор: Vidocq05 10.07.18, 15:43

Leschyu @ Сегодня, 16:07 * ,
По видимому с драйвером косяк. По драйверу ничего не подскажу.

Автор: Leschyu 10.07.18, 15:57

batlcat @ Сегодня, 16:27 * ,
Там он все нормально отдает.

igor@igor-desktop:~$ sudo tail -f /dev/bus/usb/003/008
.
    �X    "��        !"?�
BE000000002
BE000000003
BE000000002
BE000000004

Автор: Vidocq05 10.07.18, 16:05

Leschyu @ Сегодня, 16:57 * ,
Из просторов интернета:

Сам сканер ШК при сканировании генерит КОД, который может состоять собственно из самого ШК и префикса с суффиксом... Для того, чтобы сработало "внешнее событие" и ОбработкаВнешнегоСобытия() - должен быть в настройках программы(драйвера) корректно описан СУФФИКС ШК - т.е. спец.символ(последовательность спец.символов), которые "говорят" что ШК "закончился"... можно его "обрабатывать"... т.е.
- со сканера идет: <Префикс><ОтсканированныйШК><Суффикс>;
- <Префикс> и <Суффикс> настраиваются по книжке с настройками сканера;
- если правильно В ДРОВАХ настроены <Префикс> и <Суффикс> (т.е. такие же, как у сканера), то дрова их отбрасывают, оставляя <ОтсканированныйШК> для 1С-ны.
- если правильно В ДРОВАХ настроен <Суффикс>, то по его приходу и генерится "Внешнее событие". Иначе - ждем это событие до второго пришествия...
- <Суффикс> - это символ(спец.код), который говорит компу о том, что переданная от железа последовательность закончилась;
- <Префикс> - символ, позволяющий отличать "нашу" последовательность (со сканера) от "не нашей" (с фиг знает еще какого устройства) или, например, <префикс> можно использовать чтобы отличать наши "внутренние" ШК от ШК производителей/поставщиков.

Автор: Leschyu 10.07.18, 16:12

Vidocq05 @ Сегодня, 17:05 * ,
В настройках оборудования выставлен суффикс 13 (CR). Такой же я при помощи штрих кодов забил в сканер.
Пытался заставить работать с другим суффиксом (выставлял и в настройках, и забивал в сканер) - безрезультатно. Либо не работает вообще, либо так же ждет нажатия клавиши или клика.

Автор: twilight_dream 12.07.18, 13:24

Значится и постфикс надо настроить, например "Ввод"

Автор: Leschyu 13.07.18, 8:53

twilight_dream @ Вчера, 14:24 * ,
Перерыл всю инструкцию по программированию сканера, но там нету "постфикса".
А там и так после сканирования кода шлет ещё "Ввод"(CR).

Автор: batlcat 13.07.18, 12:46

Вопрос
Как он у вас настроен
Клавиатура или эмуляции СОМ
Сможете показать диалог настройки в 1С
На какой порт вы его настроили

И покажите
lsusb
Интересно все же что за сканер у вас
Как он опознавался в системе
Подставилось родное в качестве драйвера или [Generic USB K/B]

Автор: Leschyu 17.07.18, 15:44

batlcat @ 13.07.18, 13:46 * ,
В системе он настроен как клавиатура.
Сканер Honeywell Eclipse MS5145.


Автор: Vofka 18.07.18, 8:21

batlcat, обратите внимание на пункт 1 http://pro1c.org.ua/index.php?act=announce&f=36&id=2

Автор: batlcat 18.07.18, 10:24

ВЫ не замечаете некоторого диссонанса в том как его опознала система и от кого ждет события 1С

Попробуйте поменять "HID устройства" такой же как его опознала система



Согласно ссылке на тех поддержку сканер дожен нормально работать в режиме эмуляции СОМ порта

http://pro1c.org.ua/redirect.php?https://support.honeywellaidc.com/s/article/Do-Honeywell-hand-held-scanners-interface-with-Linux

Думаю в таком режиме будет работать более предсказуемо

Voyager 1300g у меня на оборудовании с linux embedded работают как раз в режиме эмуляции COM

Автор: agrigoryev 30.11.19, 8:34

Leschyu @ 17.07.18, 16:44 * ,
Здравствуйте. у меня подобная проблема. сканер переводил как в режим эмуляции com так и в клавиатурном режиме.
1С:Розница также реагирует как у Вас.
Победить удалось?

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua