Имя: Пароль:
1C
 
Беспроводные сканеры ШК, кто работал?
,
0 Builder
 
14.10.15
09:58
Собственно есть необходимость для удобства работы поставить парочку беспроводных сканеров ШК.
Есть один китайский для тестов - VIOTEH VT 2205, работает через bluetooth.
В режиме клавиатуры все нормально.
Работать будет через rdp, поэтому по опыту COM-порт предпочтительнее.
Настроил через COM-порт.
Теперь проблема - при выходе из зоны действия или по таймауту теряется связь, COM-порт отваливается. Приходится вручную переподключать.
Это проблема всех таких сканеров? Или у других моделей например COM-порт реализован в своей базе-подставке? Как работают WiFi сканеры?
1 ДенисЧ
 
14.10.15
10:02
Я работал.
На одном компе - три базы, каждая со своим комом.
Связь восстанавливалась автоматически.
2 Builder
 
14.10.15
10:05
(1) Связь сканера и компа восстанавливается, но 1C не инициализирует COM-порт.
А какие модели сканеров?
3 ДенисЧ
 
14.10.15
10:07
(2) Уже не помню.
Но главное - что связь не ломалась. Можно было взять сканер в карман и уйти из цеха. Потом вернуться и продолжить работу без всяких телодвижений.
4 Fish
 
14.10.15
10:10
(2) А если не через rdp, а локально запускать 1С?
5 Builder
 
14.10.15
10:11
(3) конфа какая? 7 или 8?
Мне для 7.7 надо.
Причем интересная деталь - последний бесплатный драйвер атола вообще не работает с этим сканером. Работает только в режиме поиска оборудования. Выходишь - закрывает COM-порт и все, тишина.
Стандартный 1С Scanopos.dll - заработал как надо.
(4) Я локально пока тестирую.
6 ДенисЧ
 
14.10.15
10:14
(5) 7rf ,skf
7 Builder
 
14.10.15
10:24
(6) Какой драйвер использовался?
8 Builder
 
14.10.15
11:09
Никто больше не работал?
9 PR третий
 
14.10.15
11:11
(0) >>Работать будет через rdp, поэтому по опыту COM-порт предпочтительнее.
Тут мой мозг взорвался
10 Builder
 
14.10.15
11:17
(9) Что не так? На не быстрых каналах связи в терминале сканер в режиме эмуляции клавы работает не стабильно, как не настраивай. Переводишь на COM - все отлично.
11 mTema32
 
14.10.15
11:25
(8) Я работал с Proton.
12 PR третий
 
14.10.15
11:26
(10) Хм. Ну ХЗ. Видимо у меня быстрые каналы связи.
13 mTema32
 
14.10.15
11:27
(11) Как тупо сканер работал вполне нормально. А вот в автономном режиме были большие проблемы.
14 Builder
 
14.10.15
11:31
(13) Что за проблемы? И как он подключается при выходе из зоны действия?
15 FN
 
14.10.15
11:37
Использую в 1с77 дешевые китайские сканеры, которые только как клава работают. уже штук 40 используется, проблем нет даже на 3Г, на 2Г работать можно, но плохо.


Вместо драйвера использую свой перехват (только для цифровых кодов):

//переменные перехвата клавиатурного ШК

Перем ВСХ, спНажатыхКлавиш, ПропустиьСимвол,БуферШК;

Процедура ПриНажатииКнопкиКлавиатуры(КодКлавиши, Alt, Shift, Ctrl, Символ, ФСО)
    Если ФСО=0 тогда Возврат; КонецЕсли;//легкий антидубль - формекс иногда подглючивает


//самопальный драйвер клавиатурного сканера    

    Если Форма.АктивныйЭлемент()="ШКод" тогда Возврат; КонецЕсли;//тут фильтр по реквизитам формы, где ловить штриход ненужно

    Если Форма.Закладки.ТекущаяСтрока()<>1 тогда Возврат; КонецЕсли;//тут фильтр по закладкам

    Если (КодСимв(Символ)>47) и (КодСимв(Символ)<58) Тогда//нажатие цифры    

        Если ПропустиьСимвол=Символ Тогда
            ПропустиьСимвол="";
            Возврат;
        КонецЕсли;
        БылаНажата=спНажатыхКлавиш.Получить(""+КодКлавиши);
        Если ПустоеЗначение(БылаНажата)=1 тогда//'это первое нажатие - обрабатываем

                ФСО=0;//отменяем нажатие, ждем отжатия

                спНажатыхКлавиш.Установить(""+КодКлавиши,_GetPerformanceCounter());
            Иначе
                спНажатыхКлавиш.Установить(""+КодКлавиши,"");//обнулим нажатие

        КонецЕсли;
    ИначеЕсли (КодСимв(Символ)=13) и (ПустоеЗначение(БуферШК)=0) Тогда
        ФСО=0;
        Возврат;
    КонецЕсли;
КонецПроцедуры


Процедура ПриОтжатииКнопкиКлавиатуры(КодКлавиши,Alt,Shift,Ctrl,Символ,ФСО)
    Если ФСО=0 тогда Возврат; КонецЕсли;//легкий антидубль - формекс иногда подглючивает


//самопальный драйвер клавиатурного сканера

    Если Форма.Закладки.ТекущаяСтрока()<>1 тогда Возврат; КонецЕсли;//тут фильтр по закладкам

    Если Форма.АктивныйЭлемент()="ШКод" тогда Возврат; КонецЕсли;//тут фильтр по реквизитам формы, где ловить штриход ненужно

    Если (КодСимв(Символ)>47) и (КодСимв(Символ)<58) Тогда//нажатие цифры

        Если ПропустиьСимвол=Символ Тогда
            Возврат;
        КонецЕсли;
        БылаНажата=спНажатыхКлавиш.Получить(""+КодКлавиши);
        Если ПустоеЗначение(БылаНажата)=1 тогда//отжатие клавиши, которую мы не мониторим

            Возврат;
        КонецЕсли;
        ТаймАут=?(ПустоеЗначение(БуферШК)=1,30,3000);
        ТекВремяМеждуКлавишами=(_GetPerformanceCounter()-БылаНажата);
        Если ТекВремяМеждуКлавишами<ТаймАут Тогда// это сканер

            БуферШК=БуферШК+Символ;
            спНажатыхКлавиш.Установить(""+КодКлавиши,"");//обнулим факт нажатия

            ФСО=0;
            Возврат;
        Иначе
            Если ПустоеЗначение(БуферШК)=0 Тогда
                БуферШК="";
            КонецЕсли;
            ПропустиьСимвол=Символ;
            ВСХ.SendKeys(Символ,1);
        КонецЕсли;
    ИначеЕсли (КодСимв(Символ)=13) и (ПустоеЗначение(БуферШК)=0) Тогда
        ОбработатьШтрихкод(БуферШК);
        БуферШК="";
    Иначе
        БуферШК="";
    КонецЕсли;
КонецПроцедуры


спНажатыхКлавиш=СоздатьОбъект("СписокЗначений");
ПропустиьСимвол="";
ВСХ=СоздатьОбъект("WScript.Shell");
БуферШК="";


где         ОбработатьШтрихкод(БуферШК); - процедура, которая обрабатывает введенный ШК
16 mTema32
 
14.10.15
11:38
(13) Я уж все проблемы не помню.
Ну так на вскидку:
1. Мог потерять связь с подставкой без видимо на то причины(привет bluetooth).
2. Подставка могла не передать со сканера данные, приходилось переподключать сканер.

А вот как раз при выходе из зоны связи с подставкой как раз все было ок. Сканер просто пищит особым звуком, а потом как возвращаешься в зону, то пищит - мол нашел подставку и связь установлена.
17 stix2010
 
14.10.15
11:44
(0) ключевые слова "Работать будет через rdp, com", давно ль у нас винда при разрывах соединения научилась восстанавливать проброшенные порты?
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший