LINUX.ORG.RU

[РЕШЕНО] Сканер ШК в 1с. Или как я собираюсь лечить психику?

 , ,


1

1

Привет, мемберы. Работаю админом в одной небольшой компании и столкнулся с такой бедой: с каждым днём у пользователей начинает переставать работать сканер штрих кода, и это число увеличивается в арифметической прогрессии, словно чума.

Ошибка в 1с: «Не удалось подключить устройство 1с, сканеры штрихкода. Проверье устройство. (999)»

«Снова приехал супервайзер и открыл вторую 1с, я же говорил этого не делать!» - подумал я. И очень расстроился, когда после закрытия всех клиентов проблема не устранилась. Стоит ли говорить, что после всех танцев с переподключением и ребутами ничего не решается. Пользователи готовы меня разорвать,а я начинаю сомневаться в своих интеллектуальных способностях!

Я уже даже всех клиентов с сервера 1с покидал, не помогает.

Судя по коду ошибки, что-то захватывает порт и не даёт 1с-ки его использовать.

В блокнот, кстати, тоже не сканится. Пикает штрих 1 раз и сканер отключается, а включается только после переподключения.

Сканер компьютером определяется.

Сканер: атоловский, 1с: Предприятие розница 2.2, Дистр: убунту

В оборудование 1с выставлено: клавиатура, суффикс 13, драйвера установлены нативные.

Призываю всех гуру 1с и убунту на пленум, не хотелось бы в кризис потерять работу :)

З.Ы. перелопатил гугл и яндекс, но решения не нашёл

Ответ на: комментарий от Ex1st1

Смотри, в линуксе всё есть файл. Поэтому устройство - тоже файл. В директории /dev находится список файлов-утройств, которые подключены к данной машине.

Утилита lsof показывает список открытых файлов и кто его открыл. Com-порты открываются монопольно, поэтому кто-то открывший не даст открыть твоей жопе-Одина его второй раз.

Пишешь в терминал lsof или lsof | grep имяфайла и смотришь кто.

PPP328 ★★★★ ()

В блокнот, кстати, тоже не сканится.

В оборудование 1с выставлено: клавиатура

Убедись, что сканер не в режиме эмуляции ком порта работает. Вдруг по-дефолту он в rs232 настроен, и где-то у тебя штрихкод совпал с кодом сброса на заводские настройки.

Если в режиме клавиатуры - он в любом случае тебе будет «в блокнот» сканировать. Это не проблемы 1С.

Если только какой-то из процессов перехватывает весь ввод с клавиатуры, но тогда и с клавиатуры ты ничего не введёшь.

mogwai ★★★★ ()

Можно проверить что это не удев с MM :)

udevadm info –query all /dev/ttyЧТОТАМУТЕБЯ

Если там есть что-то начинающееся с ID_MM_ (например ID_MM_CANDIDATE) эт значит, что udev при регистрации девайса запускает на нем пробер модема :) Может так совпадает, что в это время его пытается поюзать что-там-у-тебя. Есть еще похожая хрень с gprs, MTP и прочим..

vasily_pupkin ★★★★★ ()
Ответ на: комментарий от mogwai

Нет, эту статью я не находил. Вот что там нашёл, похоже на мою проблему: 7.10 видит устройство как USB HID v1.00 Keyboard, включает его, но когда вы сканируете действительный штрих-код, он выключается и не выводит штрих-код. usbkbd.ko был загружен, но все еще не работал.

Оба эти устройства небрежно относятся к соответствию USB HID. Хитрость заключается в том, чтобы позволить драйверу usbkbd справиться с ними. (usbkbd - минимальная альтернатива usbhid для специализированных приложений)Однако для исправления недостаточно вставить модуль usbkbd - драйвер usbhid по-прежнему захватывает его первым, если вы проверяете dmesg.

Old Fix (ломает USB клавиатуры и мыши)

Если вы измените файл черного списка modprobe (/etc/modprobe.d/blacklist) и измените строки драйвера USB-ввода, чтобы они выглядели так:

#blacklist usbmouse #blacklist usbkbd черный список usbhid

Новое исправление

Идеальное исправление для конечного пользователя не должно мешать другим устройствам использовать драйвер usbhid. Debian фактически создал скрипт с именем check_driver специально для этой цели. Добавление следующей строки решило проблему в моей системе, не отказываясь от моих продвинутых устройств USB HID:

KERNEL == «event [0-9] *», SYSFS {idVendor} == «04b4», SYSFS {idProduct} == «bca1», ACTION == «add», RUN + = "/ lib / udev / check_driver usbkbd $ devpath $ env {ID_BUS} "

Первый способ ломает мышку и клаву, хочу попробовать второй. Но немного не понял, куда нужно вписать эти строчки. Есть мысли ?

Ex1st1 ()
Ответ на: комментарий от mogwai

В общем, ни помогло ни это правило: KERNEL == «event [0-9] *», SYSFS {idVendor} == «04b4», SYSFS {idProduct} == «bca1», ACTION == «add», RUN + = "/ lib / udev / check_driver usbkbd $ devpath $ env {ID_BUS} "

Ни в modprobe это правило: options usbhid quirks=0x05e0:0x0600:0x0004

Ex1st1 ()
Ответ на: комментарий от Ex1st1

Ты скинь в бактиксах, чтобы можно было разобрать что ты куда пишешь. И точно ли у тебя USB vid/pid правильные?

И еще такое устройство должно создавать устройство /dev/input/eventX и его полезно потыкать через od /dev/input/eventX чтобы понять живо ли там что. Ну и в dmesg глянуть не отвалилось ли чего. Клавиатурные сканеры работают прозрачно обычно, если производитель не наделал странного. А если наделал, мож к ним и обратиться?

slapin ★★★★★ ()
Последнее исправление: slapin (всего исправлений: 1)
Ответ на: комментарий от Ex1st1

Судя по тому, что в правиле udev и опциях для usbhid ты показываешь разные vendorid:productid, ты не указывал правильные для твоего устройства, а копировал какие-то, найденные на просторах…..

Elyas ★★★★★ ()
Ответ на: комментарий от slapin

[ 1334.339580] usb 3-1: new full-speed USB device number 7 using xhci_hcd [ 1334.492851] usb 3-1: New USB device found, idVendor=0483, idProduct=5750 [ 1334.492856] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 1334.492860] usb 3-1: Product: SCANNER [ 1334.492862] usb 3-1: Manufacturer: SCANNER [ 1334.492865] usb 3-1: SerialNumber: SCANNER-32 [ 1334.495779] input: SCANNER SCANNER as /devices/pci0000:00/0000:00:14.0/usb3/3-1/3-1:1.0/0003:0483:5750.0005/input/input11 [ 1334.556233] hid-generic 0003:0483:5750.0005: input,hidraw0: USB HID v1.10 Keyboard [SCANNER SCANNER] on usb-0000:00:14.0-1/input0 Не отваливается, всё ок.

По поводу работоспособности - проблема возникла на 5-6 устройствах за 2 дня, раньше такого не было. Вряд ли они вышли из строя, при этом, почему такой проблемы не возникало раньше остаётся загадкой

Ex1st1 ()
Ответ на: комментарий от Ex1st1

Ну дык ты сначала разберись это аппаратные проблемы или софтовые. Например поймав когда не работает, включить od /dev/input/eventX и посканировать, не отключая устройство. И в зависимости от результата обращяться сюда или еще куда. Например могло прийти обновление софта какое-нибудь. Да и мало ли чего могло быть.

slapin ★★★★★ ()