Имя: Пароль:
1C
1С v8
Странное поведение Сканера Штрихкода
0 zhukovia
 
22.06.13
15:27
Странно ведет себя драйвер для сканера Штрихкода от 1С. Если считывать штрихкоды не спеша (с интервалом 0,5-1 сек) то все проходит нормально коды нормально отображаются, но если быстро поводить взад вперед вдоль 5-10 разложенных рядом штрихкодов то программа потом при считывании другого штрихкода (не из этих 5-10) еще какое то количество считываний продолжает выдавать коды из разложеных баркодов. Так и должно быть?
Я так понимаю он их берет из какого то буфера в драйвере, куда видимо при быстром считывании записываются отсканированные штрихкоды, но почему то не успевают передаться в ОбработкаОповещения. И поэтому он какое то время продолжает вытаскивать данные из этого буфера.
Можно как то очищать этот буфер при получении очередного считанного кода? Или как то получать не один код, а все что передал сканер?
1 Тьма
 
22.06.13
16:04
попробуйте настроить использование префикса и суффикса штрихкода - на сканере и в драйвере
2 zhukovia
 
22.06.13
16:10
У меня суфикс на сканере CR LF, а в драйвере только LF. Может это влияет?
3 zhukovia
 
22.06.13
16:16
(1) И кстати префикс в драйвере от 1с почему то неактивный.
4 AlexNew
 
22.06.13
16:23
Сканер не сканирует, пока от компа не получит команду, что предыдущий ШК обработан.
5 zhukovia
 
22.06.13
16:25
(4) И что?
6 zhukovia
 
22.06.13
16:27
(4) При тесте сканера при быстром сканировании в одну строку выводится по несколько штрихкодов.
7 AlexNew
 
22.06.13
16:37
Тогда суффикс, хотя странно. Ну перепрограммь суффикс сканера на LF.
8 zhukovia
 
22.06.13
17:06
(7) Не помогло. Все так же пихает куда то, а потом пока все запиханые не выведет по одному не успокоится. может есть у драйвера какой то буфер и надо его уменьшить?
9 zhukovia
 
22.06.13
17:08
А ещё можно как нибудь узнать в каком формате передан код?
10 banco
 
22.06.13
17:13
может это поможет?
ПосылкаДанных (DataEventEnabled)    Число    Если свойство имеет значение 1, то уведомление о поступлении сообщения отправляется немедленно. Иначе – данные ставятся в очередь.
11 zhukovia
 
22.06.13
17:19
(10) B relf 'nj gjcnfdbnm&
12 zhukovia
 
22.06.13
17:19
(10) И куда это поставить?
13 banco
 
22.06.13
17:22
(12)  это свойство внешней компоненты
14 zhukovia
 
22.06.13
17:56
(10) Не очень помогло. Я поставил в модуль обрабатывающий поступление события от драйвера, там кстати стоял 0.
ОбъектДрайвера.ПосылкаДанных = 1;

Но все по прежнему. Может еще что попробовать?
15 zhukovia
 
22.06.13
18:00
При тесте устройства при быстром считывании он просто выводит строку с 2-5 кодами разделенными LF и потом правильно (без вытаскивания из буфера) выводит следующий считанный код. Тест устройства производится командой драйвера
Команда = "CheckHealth"
Значит где то в недрах 1С происходит накопление. Или я чего не так понимаю?
16 zhukovia
 
22.06.13
18:05
Есть где то описание команд драйвера?
17 zhukovia
 
22.06.13
18:06
(16) Сам уже нашел. В комплекте поставки драйвера. :)
18 zhukovia
 
23.06.13
14:09
Выщел из положения уменьшением на сканере интервала до считывания следующего кода до 100 мсек.
2 + 2 = 3.9999999999999999999999999999999...