1C не восстанавливает соединение с беспроводным сканером

1. Bonza13 03.01.22 22:41 Сейчас в теме
Есть беспроводной блютуз сканер, подключается в оборудовании через com порт с native api драйвером. Тест подключения проходит, везде где надо всё нормально сканируется. Но как оказалось, подключение к сканеру от 1С происходит только, когда открываются определённые окна подразумевающие его использование, типа: РМК, Штрихкоды, Номенклатура. Если такие окна закрываются, то и соединение со сканером прекращается. Кроме того, даже если при открытом окне РМК падает соединение (отключился блютуз например или сканер ушёл в спящий режим), то 1С сам обратно его не восстановит, надо заново закрывать и открывать окно РМК что бы опять сканировать штрихкоды. Что с таким делать непонятно. В идеале было бы здорово, что-то настроить что бы 1С всегда связывался со сканером, а не только в специфичных окнах, и проверял на разрывы соединение сразу восстанавливая его при появлении доступности сканера.

Проблему можно воспроизвести с таким приложением Облачный Терминал Сбора Данных и Сканер Штрих-кода, нужно связать ПК и телефон через Bluetooth соединение, номер порта занятого сканером будет видно в Устройства и принтеры>Телефон>Оборудование
Дальше, например, в 1С:Розница подключаем новый сканер с этим портом и он будет работать так же как и обыкновенный, сканировать штрихкоды при продаже, а в приложении будет видно, что есть соединение с ПК. Проблема будет если, находясь в РМК или Номенклатуре, отключить и включить Bluetooth на телефоне, соединение не появится пока заново не открыть РМК. В программе монитора com соединения ComDebug в этот момент видно, как сразу у порта пропадают флаги CTS, DCD, DSR. То есть программные функции проверки наличия устройства есть, но в 1С это происходит однократно, при открытии определённых окон.
Такая же ситуация у меня и с полноценным сканером, если его использовать по Bluetooth и он отключится при неактивности.

Подозреваю что и другие виды оборудования могут не работать при таком сценарии.
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Alebul 04.01.22 08:53 Сейчас в теме
Какое-нибудь фоновое задание которое будет постоянно дергать com порт сканера
3. Bonza13 04.01.22 11:49 Сейчас в теме
(2) Знать бы ещё как это делать, вообще не представляю как взаимодействие с ком портом происходит.
4. Alebul 05.01.22 08:00 Сейчас в теме
(3) ну попробуй этот код например
5. Bonza13 05.01.22 14:27 Сейчас в теме
(4)Как-то не очень работает, видимо в момент сопряжения сканера и 1С происходит что-то ещё помимо открытия порта. Потому что хоть порт и оставлен открытым, но соединения всё равно нет.
6. Bonza13 07.01.22 18:45 Сейчас в теме
Сейчас случайно зашёл в НСИ>Штрихкоды с выключенным сканером и выдало такое сообщение на картинке. То есть 1С, таки, проверяет факт доступности устройства перед подключением к нему. Осталось выяснить только что это за процедура и поставить её в фоновое задание крутиться каждую секунду, думаю это могло бы решить проблему.
Прикрепленные файлы:
7. mixa4 10.01.22 16:19 Сейчас в теме
Переподключения - это вообще не про ком-порты, настоятельно рекомендую изучить возможность настройки этого сканера в режиме клавиатуры.

Если уж почему-то совсем никак по-другому, то стоит посмотреть в таком направлении: 1С подключаться к созданному сторонним софтом (вроде com0com) виртуальному ком-порту, связанному с ком-портом сканера.
Логика такая: этот виртуальный ком-порт не пропадет при отключении сканера и связь таким образом не прервется, и восстановится при подключении. Предположительно, нужно пробовать.
8. Bonza13 11.01.22 10:24 Сейчас в теме
(7) Да режим клавиатуры это совсем другой принцип работы и уход от проблемы, хотелось бы полноценную работу сканера через com порт.
Дело не в том, что порт не пропадает, а в том что остаётся открытым при отключении связи сканера, и 1С это не замечает что бы делать новое соединение когда он опять включается.

Проблему можно воспроизвести с таким приложением Облачный Терминал Сбора Данных и Сканер Штрих-кода, нужно связать ПК и телефон через Bluetooth соединение, номер порта занятого сканером будет видно в Устройства и принтеры>Телефон>Оборудование
Дальше, например, в 1С:Розница подключаем новый сканер с этим портом и он будет работать так же как и обыкновенный, сканировать штрихкоды при продаже, а в приложении будет видно, что есть соединение с ПК. Проблема будет если, находясь в РМК или Номенклатуре, отключить и включить Bluetooth на телефоне, соединение не появится пока заново не открыть РМК. В программе монитора com соединения ComDebug в этот момент видно, как сразу у порта пропадают флаги CTS, DCD, DSR. То есть программные функции проверки наличия устройства есть, но в 1С это происходит однократно, при открытии определённых окон.
Такая же ситуация у меня и с полноценным сканером, если его использовать по Bluetooth и он отключится при неактивности.

Через com0com пока не удалось получить от сканера штрихкод, может надо как-то не по умолчанию настроить зависимости?
Прикрепленные файлы:
9. mixa4 12.01.22 14:47 Сейчас в теме
Режим клавиатуры и является нормальным в данном случае.
"Полноценная" работа с com-портом не предполагает его произвольных отключений, он ни разу не plug-n-play, работа с com-портом - это подключился и работаешь монопольно.
Через com0com все же думаю возможны вполне рабочие костыли.
По идее, Rx/Tx должны быть не перекрестными (нам отзеркалить нужно порт, а не нуль-модемное подключение), остальные сигналы пожалуй вообще не нужно передавать.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот