Есть беспроводной блютуз сканер, подключается в оборудовании через com порт с native api драйвером. Тест подключения проходит, везде где надо всё нормально сканируется. Но как оказалось, подключение к сканеру от 1С происходит только, когда открываются определённые окна подразумевающие его использование, типа: РМК, Штрихкоды, Номенклатура. Если такие окна закрываются, то и соединение со сканером прекращается. Кроме того, даже если при открытом окне РМК падает соединение (отключился блютуз например или сканер ушёл в спящий режим), то 1С сам обратно его не восстановит, надо заново закрывать и открывать окно РМК что бы опять сканировать штрихкоды. Что с таким делать непонятно. В идеале было бы здорово, что-то настроить что бы 1С всегда связывался со сканером, а не только в специфичных окнах, и проверял на разрывы соединение сразу восстанавливая его при появлении доступности сканера.
Проблему можно воспроизвести с таким приложением Облачный Терминал Сбора Данных и Сканер Штрих-кода, нужно связать ПК и телефон через Bluetooth соединение, номер порта занятого сканером будет видно в Устройства и принтеры>Телефон>Оборудование
Дальше, например, в 1С:Розница подключаем новый сканер с этим портом и он будет работать так же как и обыкновенный, сканировать штрихкоды при продаже, а в приложении будет видно, что есть соединение с ПК. Проблема будет если, находясь в РМК или Номенклатуре, отключить и включить Bluetooth на телефоне, соединение не появится пока заново не открыть РМК. В программе монитора com соединения ComDebug в этот момент видно, как сразу у порта пропадают флаги CTS, DCD, DSR. То есть программные функции проверки наличия устройства есть, но в 1С это происходит однократно, при открытии определённых окон.
Такая же ситуация у меня и с полноценным сканером, если его использовать по Bluetooth и он отключится при неактивности.
Подозреваю что и другие виды оборудования могут не работать при таком сценарии.
(4)Как-то не очень работает, видимо в момент сопряжения сканера и 1С происходит что-то ещё помимо открытия порта. Потому что хоть порт и оставлен открытым, но соединения всё равно нет.
Сейчас случайно зашёл в НСИ>Штрихкоды с выключенным сканером и выдало такое сообщение на картинке. То есть 1С, таки, проверяет факт доступности устройства перед подключением к нему. Осталось выяснить только что это за процедура и поставить её в фоновое задание крутиться каждую секунду, думаю это могло бы решить проблему.
Переподключения - это вообще не про ком-порты, настоятельно рекомендую изучить возможность настройки этого сканера в режиме клавиатуры.
Если уж почему-то совсем никак по-другому, то стоит посмотреть в таком направлении: 1С подключаться к созданному сторонним софтом (вроде com0com) виртуальному ком-порту, связанному с ком-портом сканера.
Логика такая: этот виртуальный ком-порт не пропадет при отключении сканера и связь таким образом не прервется, и восстановится при подключении. Предположительно, нужно пробовать.
(7) Да режим клавиатуры это совсем другой принцип работы и уход от проблемы, хотелось бы полноценную работу сканера через com порт.
Дело не в том, что порт не пропадает, а в том что остаётся открытым при отключении связи сканера, и 1С это не замечает что бы делать новое соединение когда он опять включается.
Проблему можно воспроизвести с таким приложением Облачный Терминал Сбора Данных и Сканер Штрих-кода, нужно связать ПК и телефон через Bluetooth соединение, номер порта занятого сканером будет видно в Устройства и принтеры>Телефон>Оборудование
Дальше, например, в 1С:Розница подключаем новый сканер с этим портом и он будет работать так же как и обыкновенный, сканировать штрихкоды при продаже, а в приложении будет видно, что есть соединение с ПК. Проблема будет если, находясь в РМК или Номенклатуре, отключить и включить Bluetooth на телефоне, соединение не появится пока заново не открыть РМК. В программе монитора com соединения ComDebug в этот момент видно, как сразу у порта пропадают флаги CTS, DCD, DSR. То есть программные функции проверки наличия устройства есть, но в 1С это происходит однократно, при открытии определённых окон.
Такая же ситуация у меня и с полноценным сканером, если его использовать по Bluetooth и он отключится при неактивности.
Через com0com пока не удалось получить от сканера штрихкод, может надо как-то не по умолчанию настроить зависимости?
Режим клавиатуры и является нормальным в данном случае.
"Полноценная" работа с com-портом не предполагает его произвольных отключений, он ни разу не plug-n-play, работа с com-портом - это подключился и работаешь монопольно.
Через com0com все же думаю возможны вполне рабочие костыли.
По идее, Rx/Tx должны быть не перекрестными (нам отзеркалить нужно порт, а не нуль-модемное подключение), остальные сигналы пожалуй вообще не нужно передавать.