Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Передача штрихкода в форму в RDP (http://forums.kuban.ru/f1040/peredacha_shtrihkoda_v_formu_v_rdp-3317416.html)

mr Gilmor 17.11.2012 12:07

Передача штрихкода в форму в RDP
 
Я в тупняке.
Ситуация подробно.
Есть ТСД на WinMobile 6.5, работает по WiFi через RDP с базой v7.
(Win2008 Server x64, v7.27)
Передача штрихкодов идет через клавиатурный ввод.
В качестве префикса сканера ШК используется <CR>.
В форме для работы с ТСД предусмотрен контрол (тип Строка, длина 32).
Так вот, при сканировании/вводе некоторых штрихкодов в контрол происходит
непонятная вещь - например, значение "4810438008884" вводится как "481043800884"
(теряется один из символов "8").
Другие же штрихкоды (EAN8/EAN13) вводятся без искажений.
Что пробовал и выяснил:
1) При сканировании ШК утилитой Barcode-Demo самого ТСД ШК определяется правильно.
2) При сканировании ШК в RDP в notepad (не в форму 1С) ШК определяется правильно.
3) Если контрол на форме 1С сделать "многострочным" сканирует правильно !!!
4) На другом сервере (Win2003) в копии этой же базы сканирует правильно.
Вроде бы напрашиваются такие выводы:
1) Сам ТСД сканирует и передает в сеанс RDP ШК правильно.
2) Проблема происходит только на Win2008 и только при вводе ШК в "однострочный" контрол.
И на этом моя фантазия иссякает.
Из ВК используются v7plus, DialMail и FormEx.
Непосредственно в модуле формы только FormEx.

Коллеги, какие мысли?

mr Gilmor 17.11.2012 12:10

Еще в догонку из того, что пробовал.
5) При запуске базы по RDP, но не с ТСД, а с ПК с клавиатурным сканером ШК и работе с той же формой, ШК вводится также правильно.

afanasovmaksim 17.11.2012 12:23

(0) - Попробуй использовать драйвер АТОЛ Устройства ввода(бесплатный) - подключи ВК Scaner1C.dll, настрой работу с сканером ШК клавиатурным и обрабатывай внешнее событие в форме 1С, т.е. без использования поля ввода. Делал подобное, только на 1С 8.2 - все работает отлично. А что за модель терминала, случайно не Honeywell Dolphin 6000?

mr Gilmor 17.11.2012 12:46

2-afanasovmaksim >Casio IT-800.
Да у меня вся логика интерактивной работы с формами для ТСД построена на обработке вводе данных в поле ввода.
Это уже второй проект такого рода. Первый прекрасно работает в другом месте на пред.модели Casio IT-600.
А второй делался на основе первого. Там до фига переписывать придется, очень уж не хочется.

afanasovmaksim 17.11.2012 12:49

У меня была подобная проблема с Dolphin 6000, там тоже WM6.5 стоит. Решилась проблема следующим образом:

Надо в настройках сканера переключить:
- Запустить Пуск-PowerTools - EzConfig Utilites-ScanWedge
- Перейти на папку Settings
- Найти параметр Send Mode и дважды кликнуть по нему
- Выбрать параметр Virtual Key (Safe)
- нажать ок, затем File-Save.

Поищи что-то подобное в своем терминале.

mr Gilmor 17.11.2012 13:02

4-afanasovmaksim >Это, полагаю, параметры настройки сканирования и передачи данных в ТСД ?
А SendMode что-такое? Режим передачи данных штрихкода?
Параметр VirtualKey - типа передавать ШК "в клавиатуру"?
В Casio своя приблуда для подобных настроек.
Но ключевые моменты вроде такие же - вывод ШК "в клавиатуру".
Да и самое главное - ТСД передает ШК в программу вроде как правильно...

afanasovmaksim 17.11.2012 13:10

(5) - Да, это параметры настройки самого сканера в ТСД, по умолчанию у меня стояло "Virtual Key", а не "Virtual Key (Safe)" и каким-то образом символы перекодировались не правильно при передачи из ТСД в сессию RDP. У меня была такая же проблема, но только с штрихкодом типа CODE39/CODE128 на WinServer2008R2 - передавал вообще левые символы. Поставщик терминала кто? ScanCity?

mr Gilmor 17.11.2012 13:23

6-afanasovmaksim >В Casio чуть другие варианты режима передачи ШК:
- Output Keyboard
- Output OBR Buffer
- Output Clipboard
Да и повторюсь - "портятся" только некоторые штрихкоды. Другие ШК этого же формата (EAN13) передаются нормально.
Насчет СканСити точно не скажу, ТСД приобретали в ОптЛайн, а они и со СканСити работают. Для DOS bath ТСД это сразу определяется по прошивке, а здесь оригинальная от Casio.

mr Gilmor 17.11.2012 13:24

опечатка - "DOS batch"

mr Gilmor 17.11.2012 13:31

Интересно. Изменил тип поля ввода на Число - вводит нормально.
В поле ввода типа Строка - теряется символ.

mr Gilmor 17.11.2012 13:46

Хрень какая-то.
В поле ввода типов Строка или Число вводит "через раз" - то правильно, то нет.
В поле ввода типа Строка многострочная - всегда правильно.
Дым уже из мозга идет.

afanasovmaksim 17.11.2012 13:57

(10) - Может быть на сервере какие-то программы установленны, которые работают с клавиатурой, типа Punto Switcher и перехватывают ввод с клавиатуры? Врядли, но все же)))

USSR 17.11.2012 21:11

При работе со сканером в разрыв клавиатуры не нужны драйверы. Была аналогичная проблема при работе с драйвером Атолла и обработкой ожидания. Все выкинул и вставил поле. И забыл )

USSR 17.11.2012 21:11

еще могут быть проблемы со связью

mr Gilmor 17.11.2012 21:49

13-USSR >Не, вряд-ли. Пробовал и в локалке по WiFi, и удаленно.
В общем причину так и не установил доподлинно, но эффект удалось забороть методом бубна. В настройках обработки данного формата ШК в ТСД изменил режим преобразования на другой вариант - ШК стал дополняться ведущими нулями, но зато само значение стало почему-то передается стабильно без искажений. Нули отрезаю.
Но, блин, все равно, природа проблемы осталась непонятной.


Текущее время: 10:48. Часовой пояс GMT +3.