Имя: Пароль:
1C
1С v8
Как послать команду/сообщение на сканер HoneyWell/MetroLogic?
0 FirstOrsk
 
21.11.12
12:04
Здравствуйте!
Есть задача: организовать блокировку после считывании незарегистрированного в базе штрихкода.

Имею в наличии:
Сканер ШК: Honeywell(Metrologic) Voyager MS5145, MS9540, скоро появится MS9535 Bluetooth USB.
1С: 8.2 УПП 1.3.
Драйвер ШК: 1С ScanOPOS 8.0.14.1, еще есть Атол'овские дрова - последняя бесплатная версия или платная - не принципиально.

1-я попытка:
Через установку свойства Устройство.Драйвер.ПосылкаДанных = 1 блокирую прём считанных штрихкодов, через Устройство.Драйвер.ПосылкаДанных = 0 делаю разблокировку.
В 1С отрабатывает нормально, но сканер не блокируется, продолжает исправно считывать штрих-коды и пикать.

2-я попытка:
В 'Руководстве по программированию сканеров Metrologic' нашел такую вещь, как 'Программное управление потоком', то есть надо послать сканеру команду XOFF (ASCII 13H) - останов сканера с включением красной лампочки, команду начала XOFF (ASCII 11H), также есть команды: ACK(06H) - подтверждение, знакомый штрихкод, NAK(15H) - отрицание, незнакомый штрихкод, BEL(07H) - выход из режима передачи данных с подачей звукового сигнала, CAN(18H) - выход из режима передачи данных молча.
Есть механизм включения/отключения работы с командами XON/XOFF, ACK/NAK, BEL/CAN.

Но я не нашел ни одного примера, как послать сканеру какую-то команду.

Прошу откликнуться тех, кто знает хоть какие-то варианты отправки команды сканеру или может помочь чем-то еще.

Нашел также в описании драйвера 1С ScanOPOS такую штуку:
Метод:  Управление (DirectIO)
Параметры: Команда (Число, код команды), ЧислПарам (Число, числовой параметр), СтрокПарам (Строка, строковой параметр)
Возвращаемое значение:    Результат в формате OPOS
Описание:    Общий метод OPOS. Используется для взаимодействия с сервис-объектом напрямую.

Пообщался с Honeywell. Отмазались, что с их железячной стороны все реализовано, а реализована ли ответная часть кем-то из разработчиков ПО, даже не интересуются. Предложили обратиться в Атол и 1С. Послали так послали, в общем.
1 FirstOrsk
 
22.11.12
08:37
В 8.2 нашел 3 комплекта драйвер + обработка. Производители: 1С, Атол, 1С:БиТ(он же теперь первый бит).
Подозреваю, что вышеописанный метод 1С'ного драйвера Управление (DirectIO) может быть заглушкой, по крайней мере мне не удалось через него добиться от сканера реакции хоть на одну команду:
Объект.Драйвер.Управление(19,19,"XOFF");
Объект.Драйвер.Управление(17,17,"XON");
Объект.Драйвер.Управление(6,6,"6");
19 и 17 - это я попробовал перевести 11 и 13 из хекса в десятичный формат (1*16+3=19).
2 FirstOrsk
 
22.11.12
13:59
Сделал запрос в Атол, можно ли это сделать через их драйвер.
3 FirstOrsk
 
26.11.12
10:01
Сделал запрос в 1С:БиТ (Первый бит), можно ли это сделать через их драйвер.
4 REM
 
27.11.12
08:19
Подниму эту ветку! Вопрос очень интересный и практически важный.
5 Нуф-Нуф
 
27.11.12
08:24
Не знаешь как сделать на стороне железа - делай на стороне 1с
6 ICWiner
 
27.11.12
08:28
Когда копался с драйверами на фискальник, то оказалось, что для драйверов 1С совместимо куча команд драйвера обрезается или переименовываются... Задача сводится к тривиальной - найти правильную документацию.
7 REM
 
27.11.12
08:29
Вопрос именно в том чтобы заблокировать сам сканер, чтобы не "пикал" следующий штрих код.

Я делал как то  звуковым сигналом на компе - включается если код неизвестен. но при работе с блютуз сканерами оператор его не слышит.
8 REM
 
27.11.12
08:31
(6) к сожалению это именно так.
9 Тихий омут
 
27.11.12
09:08
(0) Была задача, связанная с массовым чтением ШК. Первоначально сделали также - при чтении неизвестного ШК блокировали прием следующих. А вот люди, непосредственно работающие с этим б(д)обром, настояли на реализации полноценной очереди ШК - при чтении неизвестного ШК софт на компе выводит модальную мессагу "Блаблабла не найден", но продолжает ставить в очередь обработки все ШК, сосканированные во время этой блокировки. После снятия блокировки - берем следующий ШК из очереди, обрабатываем и так далее. Два года полёт нормальный.
10 REM
 
27.11.12
09:16
(9) Ну в принципе реализация аналогичная. Только если штрих код не найден и сканируем дальше другие товары, ставя их в очередь, то как потом найти товар с неизвестным штрихкодом?
11 Тихий омут
 
27.11.12
09:31
(10) Ищут как-то. Были разные мысли о сигнализации чтения неизвестного ШК - и звук выдавали, и лампу вешали красную - толку нуль, всё равно хватают следующую коробку (на том участке, где всё это работает - только упаковки и коробки, штучного нет) и сканируют, сканируют... а конвейер идет, идёт и подает их в машину... В общем, у нас операторы настояли именно на таком подходе. Попробуй сам с простого, как изначально задумал, только не вдавайся в полное прямое управление сканером, а начни с софтовой блокировки приема ШК после неизвестного. Ну а не понравится людям - сделаешь очередь, это не намного сложнее. Потом расскажешь, что удобнее для ваших пользователей)))
12 FirstOrsk
 
27.11.12
09:48
(7) Отрабатываю по первому варианту, в эске сделал Сигнал() и модальное окно. На виндозный звук по умолчанию повесил сирену, выведу колонку наружу, как блютузный сканер придет. Наши 3 производителя драйверов пока молчат. Вышел на Атол'овского партнера, он тоже отправил запрос. Пока молчат.
С удивлением узнал, что куча старого оборудования на COM-порту использовала Xon/Xoff. Это же так просто: надо-включил, не надо - выключил. Однако производители софта решили еще проще)
(9) Мне как раз надо было _отключить_ полноценную очередь)
Спасибо всем, кто откликнулся!