Имя: Пароль:
IT
Мобильный мир
Пожамкайте апп? Андроид-камера в сканер штрихкодов для 1С
0 Sapiens_bru
 
30.10.17
19:04
Уже второй месяц приобщаюсь к программированию не только под 1С, начал с андроида. Прошу посмотреть, пользоваться если нужно и прокомментировать результаты.

https://yadi.sk/d/Sw_pHf8i3PEdXj
По ссылке архив. В нём 2 файла.
Barcode_server.exe запускаем на компе, он выводит список IP адресов компа. Нужный запоминаем
(Необязательно) В любом браузере проверяем http://ХХХ.ХХХ.ХХХ.ХХХ:4242 , где ХХХ.ХХХ.ХХХ.ХХХ - адрес компа на котором запущено ПО-сервер. Если не видим ответа "Barcode server ready", даем доступ к порту 4242 в брэндмауре.
Barcode_scanner.app запускаем на смартфоне. Вводим IP компа на котором запущен сервер. Жмем скан. Сканим

Результаты сканирования будут передаваться на комп в виде событий клавиатуры, аналогично работе беспроводного клавиатурного сканера. Понимает только цифры!
Можно подключать к типовым 1С с помощью типового обработчика Сканер 1С(Native-Api) и к любым программам поддерживающим работу с клавиатурными сканерами, а так же сканить в блокнот, ворд или куда угодно.

Оба приложения бесплатны и открыты, написаны с использованием открытых компонент. Можно брать себе, переписывать, продавать итд.
Ссылки на исходный код:
https://github.com/Sapiens-bru/WifiBarcodeScanner
https://github.com/Sapiens-bru/WifiBarcodeServer

Кто пожелает протестировать апп, пишите свои комментарии сюда или на почту [email protected] .
Если вам в работе нужно приложение подобного типа, также пишите. Попытаюсь реализовать пожелания в порядке самообучения.
1 Woldemar177
 
30.10.17
19:14
(0) а можно сделать чтоб сканировало 2д из медицинских полисов?
2 Sapiens_bru
 
30.10.17
19:18
(1)Можно. Нужно знать таблицу всех возможных символов в этом коде, или их Alt-Num варианты.
Например если зажать Alt и на нумпаде набрать 155 - получится буква "Ы"
3 Woldemar177
 
30.10.17
19:23
Делай. Это реальная победа. Сотни программистов из медицины тебе будут благодарны. Я бы даже денег заплатил.
4 Злопчинский
 
30.10.17
19:27
А аналогичное приложение от Serginio смотрел? Лежит на ИС
5 Sapiens_bru
 
30.10.17
19:28
(3)Денег не надо.
Скинь на почту [email protected] несколько кодов из полисов. Можно сфотографировать на телефон. И результат их расшифровки. Добавлю этот функционал серверу.
Простые EAN 13 коды найти не проблема, а что за медицинские я понятия не имею.
6 Sapiens_bru
 
30.10.17
19:34
(4) Нашел их с десяток разной степени крутости. Все безусловно рабочие и все лучше моего. Но все просили денег так или иначе, или рекламу показывали. Опенсорса не нашел в принципе, только буржуйский пример на C#.
На Инфостарте у Serginio не вижу подобного.
В любом случае я потратил с пользой 3 вечера. Может кому поможет сэкономить эти три вечера на разработке чего-то коммерчески применимого
7 Cyberhawk
 
30.10.17
19:58
Без видео с демонстрацией лениво читать
8 Злопчинский
 
30.10.17
20:03
(0) что будет если связь отвалилась? Будут ли буферизироваться  насканированные коды и будут ли сливаться на сервер при восстановлении связи?
9 Злопчинский
 
30.10.17
20:04
(0) обратная связь от сервера на клиента есть? Что позволяет делать?
10 Sapiens_bru
 
30.10.17
20:30
(0) буфера нет. Сама идея сканера штрихкодов не подразумевает буфер. Реализовать несложно, но как должно реагировать клиентское приложение на внезапно свалившиеся из буфера данные?
11 Sapiens_bru
 
30.10.17
20:33
(9) Обратная связь возможна, но конкретно в этом аппе ее нет. Вставлю обратную связь в виде ответа "штрихкод принят" в следующем обновлении.
Вообще можно сделать например апп-прайсчекер или апп-тсд. Их тоже немало написано.
12 Злопчинский
 
30.10.17
22:13
(10) как реагировать - это вы уж разбирайтесь, обеспечьте чтобы реакция на свалившиеся из буфера данные была эквивалентна реакции последовательных данных обычной работы
13 Злопчинский
 
30.10.17
22:17
(11) если приложение работает только при наличии постоянного канала связи - зачем это морочить отдельной прокладкоц вместо организации при постояннои канале связи прямого рдп в базу с использованием простенькой лёгкой родной формы для приемки и обработки штрих-кода? И при этом вдобавок ещё и обратную реакцию обеспечить с любой логикой?
14 Sapiens_bru
 
31.10.17
02:05
(12)Вас куда-то не туда несёт
Возьмём простой пример:
Магазин одежды продает при помощи розницы 2.2 базовой мне кнопки. СканерШК, не сработал потому что перегружался роутер. Продавец нашла товар по артикулу и продала мне. Открывает второй чек и в это время прилетает штрихкод носок. Бред же.
СканШК это не письмо электронной почты. Не пришел сразу - не должен вообще прийти.
15 Sapiens_bru
 
31.10.17
02:06
(14) Чертов т9.
16 Sapiens_bru
 
31.10.17
02:11
(13) Чтобы обеспечить обратную связь нужно знать в какую базу идёт скан. 99.99% программ не дают сканеруШК обратной связи. Какую обратную связь должен дать Блокнот в который я сканирую ШК?
17 Sapiens_bru
 
31.10.17
02:16
Ещё раз. Этот набор программ эмулирует поведение Сканера штрихкодов. Не ТСД, не прайсчекера, не РМК. А простого сканера. Как например honeywell 1202g и ему подобных.
18 Злопчинский
 
31.10.17
10:26
(14) по крайней мере в таком случае приложение на дивайсе должно сигнализировать юзверю большие алярмы цветом и звуком что сканирование не прошло по каналу связи.
А то стоит сборщик, штук 40 товара отжмакал и тут оказывается что в самом начале канал связи отвалился
19 Злопчинский
 
31.10.17
10:27
(16) ну так и напиши тогда что прога предназначена для сбора штрих-кодов и ничего более
20 Злопчинский
 
31.10.17
10:28
(17) ага, это простой эмулятор сканирования штрих-кода...
21 Sapiens_bru
 
31.10.17
10:44
(14) Об этом я написал в (11). Сегодня сделаю. Спасибо за наводку.
(16)(17) Об этом написано в (0)
22 Tatitutu
 
31.10.17
10:45
(0) Barcode_server.exe запустил
выдал только одни IP адрес без указания портов
и этот "адрес" занят Апачем
что делать ?
23 Tatitutu
 
31.10.17
10:46
(0) идея нравится - прикручу к MAGAZKA
готов к поддержке и тестам
24 Tatitutu
 
31.10.17
10:55
в apk на первом окне
где вводишь IP - нужно добавить какую то проверку
подключился ты ли нет (непонятно)
и сообщение добавь чтобы WI-FI нужно включить

сканирование Штрихкода немного подвисает ("окошко" прилипает к штрихкоду)
тоже выводи сообщением (надпись - штрихкод 1234567890123 считан, передан или ошибка чтения)
25 Tatitutu
 
31.10.17
10:56
+(24) Иконку приложению добавь в ПЕРВУЮ ОЧЕРЕДЬ - чтобы кравиво было и над названием подумай

WiFi Barcode
Scanner

а не

WiFiBarcodeSc
anner
26 Sapiens_bru
 
31.10.17
11:13
(22) Апачем занят порт 80 или 443(если с ssl), б_сервер занимает 4242. Графические интерфейсы на яве я еще не умею. Научусь какому-нить свингу, сделаю приличное приложение на сервер. Чтобы порт выбирался, доступ от брендмауэра запрашивался, чтобы в трей сворачивался итд. Чтобы сетап был с выбором ставить как службу или как приложение. Мой опыт работы на яве меньше недели. позавчера узнал что такое jar :)
(24) ок, сегодня сделаю
(25) ок, сегодня сделаю
27 Sapiens_bru
 
31.10.17
11:15
(24) Штрихкод "прилипает" из-за фриза камеры. Камеру подмораживаю специально, иначе она успевает штрихкод раз 10 за секунду считать, передавая его многократно. Подумаю как можно это ограничить без фриза
28 Philix
 
31.10.17
11:24
(27) У Metrologic-ов в давности была следующая логика: блокировалась передача одинаковых ШК в интервале (если память не изменяет - примерно 1 сек). А разные ШК мы для тестов на лист распечатывали и сканировали за секунду штук 5-7.
Т.е. сканер помнит последний считанный ШК и не отдает его слишком часто.
29 Sapiens_bru
 
31.10.17
11:32
(28)Отличная идея. Заодно научусь работать с часами в адроиде.
30 Sapiens_bru
 
31.10.17
20:03
(0) https://yadi.sk/d/SW3MO0u_3PH3q8
* Переименовал приложение красиво
* Добавил иконку приложению, изменил иконку сервера
* Добавил кнопку проверки связи в приложение
* Изменил таймаут ожидания ответа от сервера с стандартных 10 секунд на 2
* Добавил стандартный звук сканирования (пик) при успешной передаче на сервер, звук ошибки (пиу-пиу-пиу) при неудачной передаче.
* Теперь один и тот же штрихкод можно сканировать не чаще чем раз в секунду, камера не фризится после скана
31 ejikbeznojek
 
31.10.17
23:44
А у меня ни 1 шк не считался. мб камера слишком плохая завтра на работе стрельну к кого-нибудь нормальный телефон
32 etc
 
01.11.17
00:09
Напомнило DataWedge для моторолловских ТСД с плагином IPWedge. Тот же принцип.
33 Злопчинский
 
01.11.17
00:21
(31) угу, и обязательно расскажи как получится 2-3 скана штрихкодов в секунду сделать
34 Sapiens_bru
 
01.11.17
04:09
(33) Подключал штук 50 разных сканеров шк , камера самого навороченного смартфона рядом не лежала с самым хреновым сканером. Но иногда бывает что сканера нет, а смартфон есть. Бывает, что штрихкод на экране, а image сканера нет. Бывает что штрихкод на большой коробке и в длину сантиметров 20, а глубина сканирования имеющегося сканера не позволяет видеть шк с расстояния в полметра. При всем при этом штрихкод не дублирован цифрами оказался. Вот тут бы и пригодился апп эмулирующий работу сканера шк, пускай не 2-3 в секунду а один в 5 секунд
35 YuryVG
 
07.11.17
17:18
А попробовать внешний сканер смартфону подключить нет желания? Как в этом решении http://interestingsolutions.ru/BarCodeHarvester.aspx .
36 Sapiens_bru
 
07.11.17
17:48
(35)Не увидел в том решении работы с внешним сканером ШК. Реализовать подобную работу можно элементарно, внешние BlueTooth сканеры андроидом опознаются как клавиатура. Поймать событие клавиатуры и передать его серверу даже проще чем поймать событие камеры.
В приведенном примере коммерческая разработка, автор которой потратил десятки, возможно сотни часов на каждую из 2х компонент.
Моя разработка не коммерческая, сделана в сумме часов за 20 абсолютным новичком в этой области. Весь код выложен в общий доступ. Может быть склонирован подходящей IDE и доработан, либо использован как пример для изучения. При этом приложение работает так как заявлено.

ЗЫ. Если Вы хотите использовать внешние сканеры для подобной задачи (например приложение на планшете ходящее по HTTP в вашу базу 1С за новостями о товаре и сразу к товару что-то дописывающее) пишите в почту, расскажу(бесплатно) как я бы это сделал, либо сделаю(в обмен на планшет и сканер... тестить то надо на чем-то)
37 spydex
 
24.11.17
14:50
(36)  Харвестер прекрасно работает с внешним сканером, на сайте указано что с ним будет максимально быстро работать. Там даже срабатывает авто блокировка экрана, как когда телефон при разговоре к уху подносишь. Кстати, очень даже удобная программка.
38 Адинэснег
 
24.11.17
15:20
https://its.1c.ru/db/v8311doc#bookmark:dev:TI000001452
// Обработчик команды формы ОткрытьИнтерфейсСканирования
&НаКлиенте
Процедура ОткрытьИнтерфейсСканирования(Команда)
    ОбработчикСканирования = Новый ОписаниеОповещения("ОбработкаСканирования", ЭтотОбъект);
    ОбработчикЗакрытия = Новый ОписаниеОповещения("ОбработкаЗакрытияИнтерфейса", ЭтотОбъект);
    СредстваМультимедиа.ПоказатьСканированиеШтрихКодов("Наведите камеру на штрихкод", ОбработчикСканирования, ОбработчикЗакрытия);
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаСканирования(Штрихкод, Результат, Сообщение, ДополнительныеПараметры) Экспорт
    Если Результат Тогда
        Текст = "" + Штрихкод;
    Иначе
        Текст = "Ошибка: " + Сообщение;
    КонецЕсли;
    Если ЗакрытьИнтерфейс Тогда
        СредстваМультимедиа.ЗакрытьСканированиеШтрихКодов();
    КонецЕсли;
    Сообщить(Текст);
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаЗакрытияИнтерфейса(ДополнительныеПараметры) Экспорт
    Сообщить("Закрывается интерфейс сканирования");
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
    Если НЕ СредстваМультимедиа.ПоддерживаетсяСканированиеШтрихКодов() Тогда
        ВызватьИсключение "Сканирование штрихкодов не поддерживается";
    КонецЕсли;
    ЗакрытьИнтерфейс = Ложь;
КонецПроцедуры
39 Kuzmich123
 
24.11.17
17:01
(0) Подскажи, с чего начинал изучать программирование под андройд. Какие книги, ресурсы?
40 romix
 
24.11.17
18:28
(0) Здорово, спасибо - а RS-232 порт эмулировать тоже умеет? Я не уверен, но вроде бы с ним пользователю интерфейсно лучше (не надо позиционировать курсор в текстовое поле).

(39) Я вот думаю тоже что-нибудь поделать, закупил книжку, но там много букв. :-) Старею...
41 Sapiens_bru
 
26.11.17
16:21
(39) Со скачивания андроид студии. Дальше на самом сайте гугла есть краткая инструкция по запуску среды разработки и первого приложения. Много и интересно на русском дает http://developer.alexanderklimov.ru/android/
на английском есть хороший объем видеокурсов на сайте https://www.udacity.com , но там совсем для новичков в программировании.
(40) Нет, не было такой цели. Вообще пользователю 1С и не нужно позиционировать курсор, достаточно в подключении оборудования указать, что сканер клавиатурный.