Хм... я первое о чём подумал - не колонки, а блютуз-гарнитурка (для ПК надо передатчик, для ноута - блюпуп встроен).
Однако, такая гарнитура имеет сравнительно небольшую дальность и критична к препятствиям.
(6) Кстати интересный вариант. Но как вы правильно заметили, он ограничен дальностью bluetooth соединения (обычно 20-30 метров). А если бы такая гарнитура работала через wifi... Зашел на aliexpress, вбил "wifi headset" - больше тысячи результатов поиска. По-моему интересная тема для следующей статьи.
1. Программируем сканер в ACK/NAK режим
2. Загружаем компоненту из статьи или макета scanopos.dll
3. В обработке внешнего события, если штрихкод ок - отправляем ACK иначе NAK
но при отправке на "\\.\pipe\rs232" получаем ошибку
{ВнешняяОбработка.ОтправкаСигналаНаСканер.Форма.Форма1.Форма(6)}: Ошибка при вызове конструктора (ЗаписьДанных)
ЗаписьДанных = Новый ЗаписьДанных("\\.\pipe\rs232", КодировкаТекста.ANSI, , "");
по причине:
Ошибка при работе с файлом: \\.\pipe\rs232
по причине:
Ошибка при выполнении файловой операции '\\.\pipe\rs232'. 231(0x000000E7): Все копии канала заняты.
(45) Такая ошибка возникает, если отправлять ответ слишком часто (чаще, чем раз в 300 мс). Проверьте отладчиком, возможно этот участок кода вызывается несколько раз.
(46) Это разовый вызов - для проверки даже сделал чистую обработку.
Пробовал делать задержку между получением штрихкода и ответом - ошибка такая же. :(
(48) Если загружена не модифицированная компонента, то текст ошибки будет другим:
{ВнешняяОбработка.ОтправкаСигналаНаСканер.Форма.Форма.Форма(424)}: Ошибка при вызове конструктора (ЗаписьДанных)
ЗаписьДанных = Новый ЗаписьДанных("\\.\pipe\rs232", КодировкаТекста.ANSI, , "");
по причине:
Файл не найден: \\.\pipe\rs232
по причине:
Файл не обнаружен '\\.\pipe\rs232'. 2(0x00000002): Не удается найти указанный файл.
Но вообще странно, что у вас возникает такая ошибка. Вы работаете через COM порт? И компонента успешно открывает, занимает порт, принимает из него штрихкоды и инициирует внешнее событие? Попробуйте отключить антивирусы, вдруг они как-то влияют.
(7) В режиме эмуляции клавиатуры, сканер это просто печатная машинка. Может есть какие-то возможности, но к чему такой изврат, когда есть возможность работы с известным с древнейших времен COM-портом
(8)Ввод в режиме ввода с клавиатуры мне не кажется извратом. Работает без установки драйверов, нет проблемы с портами(когда по какой то причине произвольно меняется номер порта, такое бывает нечасто, но бывает) Есть возможность использовать сканер не только в 1С.
(9) А я и не говорил, что сам режим это изврат. Извратом назвал попытку работать с прерываниями в попытке наладить двухстороннюю связь при работе в этом режиме
(9) Роман, полностью с вами согласен. Если не нужно управление сканером, то работа в режиме эмуляции клавиатуры самый простой и надежный вариант.
Для перевода в режим COM порта читайте документацию, в каждом сканере это делается по-разному. Правда некоторые старые сканеры такой режим не поддерживают (например, Datalogic QS6500BT).
Добрый день ! Если кому то пригодится, то сканер honeywell 1450g , издает звук простой биип, в любом месте программы в любое время когда нужно . сделал в проекте на C#. нужно сканером прочитать с бумажки в документации Beep on BEL on. а затем в программе писать в порт сканера ( должен быть включен как ком порт - у меня через эмуляцию ком порта и драйвер ) символ ascii(7) , когда нужно издать звук.
Есть более простое и прямое, но дорогое решение, не упомянутое в статье.
Промышленные сканеры Zebra (бывшие Motorola, бывшие Symbol) с поддержкой протокола SNAPI.
По этому протоколу можно штатно давать обратную связь на сканер в любом виде: блокировать/разрешать сканирование, пиликать разными мелодиями, вибрировать вибратором, мигать светодиодами. Для них есть и беспроводные базы. Т.е. сканируешь в дальнем углу шумного склада, откуда и монитора не видно и колонки не добивают и вся обратная связь у тебя есть.
Из 1С ими можно управлять родными дровами Zebra Scanner SDK с сайта производителя, так как SDK реализован в т.ч. и в виде COM-объектов. Но есть пара хитростей.
(20) Конкретная модель, работающая у нас на складе через 1С - DS3578. Крэдл продается отдельно и тоже стоит денег. При покупке нужно быть внимательным, т.к. есть модификации без поддержки SNAPI (Symbol Native API). Почему-то SNAPI поддерживают только модификации крэдлов и сканеров с поддержкой FIPS (если не ошибаюсь - это какой-то федеральный стандарт шифрования при передачи данных по блютузу или что-то в этом духе, глубоко не вникал).
ЗЫ. Фактически, через SNAPI реализован полный программный доступ к сканеру. Т.е. можно его удаленно перепрограммировать.
(21) Раз уж вы в теме, можете рассказать, в чем принципиальное отличие промышленных сканеров от обычных? Тот же Cino стоит в районе $500, ваш практически в 2 раза дороже. Почему у вас на фирме выбрали именно эти сканера?
(22) Да без понятия, почему именно их. Это еще до меня произошло. Я ж не топлю за их волшебное сочетание цена/качество. Просто уже внедрили под другой программой, а я на 1С переводил. Про Cino я без понятия, да и вообще не сильно люблю с торговым оборудованием возиться, только по необходимости. Наигрался уже.
А промышленное оборудование отличается от обычного соответствием всяким там промышленным стандартам ударопрочности, влагопылезащищенности и т.п.
Т.е. даются какие-то гарантии надежной работы в не очень человеческих условиях. Ну, как и промышленные компьютеры отличаются от обычных. Характеристики в два раза хуже, цена в три раза выше :)
Но эти сканеры, честно говоря, очень приятно в руке держать. Они большие, но эргономичные, сбалансированные и сделаны на совесть. Хотя с заводским браком тоже сталкивался разок (не работал один из лазерных светодиодов, проецирующих прицельную сетку).
(22) А! Вспомнил, что меня поразило. Вроде как по документации он даже изображения как-то способен сканировать! Вряд ли большие, скорее всего просто расширенный интерфейс сканирования QR-кодов. Раз через SNAPI полная обратная связь, то в теории можно самому чего-то распознавать при сканировании. Но могу соврать, мой английский мог меня и подвести. Так как не нужно было, то глубоко не вдавался.
(24) Спасибо. Почитал еще на оф. сайте - таки да, они позиционируются как более прочные и надежные. Что их можно кидать с высоты двух метров на бетон вообще без проблем) Также они водонепроницаемые и поддерживают 2D штрихкоды. Ну и то, что вы написали - расширенные возможности по управлению с хоста.
Спасибо за такой быстрый ответ. А как Вы выводили русский текст в страницах? Просто русские буквы в UTF-16? Команды выбора кодовой страницы (CP) нужно было использовать? Судя по всему у Вас был выбор русского в настройках сканера? Т.к. я смотрю, что системные (Терм. и Онлайн) у Вас тоже на русском. Если не секрет, а у кого покупали сканер. С уважением, Андрей. gravru@mail.ru
(33) Для вывода русского текста использовал кодовую страницу "OEM Russian", hex код 6203, а сам текст отправляю в кодировке UTF-16LE. Да, русский был изначально в настройках. Покупал у Ютиса, но на все вопросы по программированию сканера отвечали официальные представители Cino в Украине https://reef.ua/
(36) не очень удобно, во первых просто держать в руках два устройства - телефон и сканер - обе руки заняты, особенно если товар, что б отсканировать нужно брать в руки и искать штрих код. Во вторых, постоянно включенный экран сильно сажает батарею и большинство телефонов по умолчанию гасят его и уходят в блокировку, это конечно тоже можно перенастроить, но всё же.
Статья отличная!! Спасибо!! Ответ прямо на беспроводном сканере - это очень круто.
Настраивал как-то через колонки, только не через Сигнал() - его не слышно было, даже на не особо шумном складе, а сделал несколько waw-аудио файлов и в зависимости от результата 1С вызывала или файл - "Да!!" или файл "Ошибка". Так можно подобрать громкие звуки, которые нормально слышно. Но тоже не всегда можно применить, на пример, если шумное производство рядом или несколько кладовщиков одновременно что-то делают.
Еще несколько раз делали вариант - на тележке нетбук с проводным сканером :) дешево и сердито :)) за частую получается дешевле чем ТСД и соизмеримо с беспроводными сканерами, но тоже не всегда применимо. А с планшетом если подружить сканер и 1С, так вообще будет в полне удобно. :)
Такая же ошибка.
{ВнешняяОбработка.СообщениеНаСканер.Форма.Форма.Форма(268)}: Ошибка при вызове конструктора (ЗаписьДанных)
ЗаписьДанных = Новый ЗаписьДанных("\\.\pipe\rs232", КодировкаТекста.ANSI, , "");
по причине:
Ошибка при работе с файлом: \\.\pipe\rs232
по причине:
Ошибка при выполнении файловой операции '\\.\pipe\rs232'. 231(0x000000E7): Все копии канала заняты.
Подскажите кто нибудь в чем может быть причина.
Сам порт открыт. Отсканированные штрихкоды в программу прилетают. А при попытке отправить сообщение на сканер выскакивает это сообщение.
Сканер Cino/
(53) Отвечал выше. Такая ошибка возникает, если отправлять ответ слишком часто (чаще, чем раз в 300 мс). Также попробуйте отключить антивирусы, возможно они как-то влияют. У нас встроенный от Microsoft, с ним всё ок.
Антивирус отключил. Не помогло. Дело в том что даже при переводе сканера в режим STERM выскакивает такая же ошибка. Т. е. на сканере выбираю пункт STERM нажимаю select, после нажатия со сканера в приложение отправляется запрос на который приложение должно отправить ответ в течении 3 секунд. По крайней мере так было написано в документации. Даже делал отсрочку выполнения команды на 1 и 2 секунды. Все равно та же самая ошибка.
Программист 1С
Новосибирск зарплата от 80 000 руб.до 150 000 руб. Полный день
Программист 1С
Красноярск зарплата от 50 000 руб. По совместительству
Перенос данных КА 1.1 / УПП 1.3 => БП 3.0 (перенос остатков, документов и справочников из "1С:Комплексная автоматизация 1.1" / УПП 1.3 в "1С:Бухгалтерия 3.0")