Всем привет, как правило, все мои решения и обработки начинаются и создаются на по просьбе моих клиентов и заказчиков, и эта разработка не исключение.
Один из моих клиентов приобрел на Алиэкспресс пару ТСД на базе Андроид Ссылка1 и Ссылка2. Были опробовано несколько разных решений, но они не устраивали заказчика. Из требований было следующее:
1. Обмен данными через Wifi (никаких проводов).
2. При сборе данных должна присутствовать информация о ценах и суммах.
3. Новая номенклатура должна создаваться на ТСД (ввод наименований).
4. Сканирование должно быть как по обычными штрихкодам, так и по акцизным маркам (PDF417 или Datamatrix)
5. Ввод количества в ручном и автоматическом режиме
6. Поиск и редактирование отсканированной позиции по штрихкоду.
7. При наличии одного штрихкода у нескольких номенклатур, необходим диалог выбора из списка найденных.
В качестве базового решения я использовал ранее созданный Терминал сбора данных штрихкодов на планшете Windows, код которого был адаптирован под мобильную платформу версии 8.3.13.45
Используется сканер в режиме клавиатуры с переводом каретки. Не используются библиотеки работы со сканером. Сам процесс обработки/получения штрихкода прост, в форме работает обработчик ожидания, который проверяет поле штрихкод, в случае его присутствия идет поиск и ввод данных и дальнейшая фокусировка в поле штрихкод
нюанс на экране в момент ожидания ввода штрихкода отображается клавиатура андроид, но на функционал это не никак не влияет
Обработка обмена реализована для 1С Розницы, не используются характеристики товаров.
Видео (анимированные gif):
2019-09-22 При тестировании сканирования на обычном смартфоне с подключенным через OTG-кабель сканером (использовалcя Honeywell 1450G) было выявлено, что штрихкод с внешнего сканера вводится посимвольно (не быстро), а не моментально как в ТСД с аппаратным сканером, при этом обработчик ожидания сканирования срабатывает не всему введенному штрихкоду, а только по нескольким первым символам (особенно заметно при сканировании акцизных марок, где длина штрихкода 68 или 150 знаков). Причина: время интервала обработчика ожидания меньше чем время на получение данных от внешнего сканера. Поэтому добавлен так называемый полуавтоматический режим, в котором обработчик ожидания сканирования только активирует поле ввода штрихкода, и только при изменении фокуса с поля штрихкод срабатывает обработка ввода штрихкода. Но автоматическая обработка в этом режиме также работает, если в свойствах внешнего сканер установлен суффикс перевода каретки, и это запускает обработчик ПриИзмененииШтрихкода(). Если же после получения данных от сканера не происходит смены фокуса с поля штрихкода, достаточно сделать тап в любой области экрана, и будет запущен обработчик ПриИзмененииШтрихкода().
Пример кода сканирования + конфигурация обновлены.
Примечание: в ТСД с аппаратным сканером при включенном авторежиме отслеживается свойство ТекстРедактирования, т.к. значение реквизита поля штрихкода не успевает заполниться после сканирования.
2019-09-20 Добавил возможность использования голосового набора, оказалось очень удобно вводить наименования новой номенклатуры.
2019-09-19 Добавил возможность сканирования штрихкода через встроенную камеру (можно использовать обычный смартфон), есть выбор приложения для сканирования: стандартный через СредстваМультимедиа.ПоказатьСканированиеШтрихКодов или Barcode scaner ZXing. Через стандартный у меня не заработало сканирование PDF417.