Android cервис для передачи штрихкода в мобильное приложение 1С

Приложение android (сервис), реализованное для перехвата события считывания штрихкода и передачи события в мобильное приложение 1С.

Компания закупила ТСД от компании Urovo (i6200s), но с утилитами Acode Tools данный сканер штрихкодов не работает, поэтому было реализовано android приложение, которое работает как сервис перехвата событий считывания штрихкодов и передачи его в мобильное приложение 1С.

В отличие от того же Acode Tools приложение не умеет, к сожалению, передавать корректно штрихкод в 1С, если в списке баз указано больше одной базы: в этом случае мобильное приложение выдает ошибку.

Обработку событий произвожу следующим образом:

Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если ИмяСобытия = "1" Тогда
//Параметр уже содержит текстовое представление штрихкода
ОбработатьПолучениеШтрихкода(Параметр);
КонецЕсли;
КонецПроцедуры

Так как у нас в конфигурации мобильного приложения используются утилиты Acode tools, т.е. в процедуре ПриНачалеРаботыСистемы() модуля управляемого приложения вызывается обработчик глобального оповещения:

УтилитыACODEМодульДляОповещений.ПодключитьГлобальноеСобытиеОповещения();

 

Update 2026.12.07. Добавлена новая apk для работы со сканерами iData (протестировано на iData 95W)

P.S. Данное приложение работает без установки утилит Acode, главное чтобы был подключен обработчик глобального оповещения о событиях.

P.P.S. Может быть, кому-нибудь пригодится.

35 Comments

  1. flyer

    но с утилитами Acode Tools данный сканер штрихкодов не работает.

    не выясняли причину почему не работает? acode штука популярная не видел чтобы кто то написал что у него не работает.

    Reply ↓
  2. Meteorage

    (1) Там свои intent’ы перехватываются, а тут они другие, поэтому пришлось писать дополнительное приложение. Я списывался на форме Acode tools, но результата это не принесло.

    Reply ↓
  3. bulpi

    В 1с штрихкод передается, вызывая внешнее событие ?

    Reply ↓
  4. Meteorage

    (3) Нет. Обработку событий я обрабатываю так:

    Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
    Если ИмяСобытия = «4» ИЛИ ИмяСобытия = «1» Тогда
    //Что-то делаем
    КонецЕсли;
    КонецПроцедуры
    

    P.S. Обновил публикацию.

    Reply ↓
  5. bulpi

    (4)

    Непонятно…

    Вот из синтакс-помошника:

    ОбработкаОповещения(<ИмяСобытия>, <Параметр>, <Источник>)

    Описание:

    Возникает при оповещении всех созданных форм методом глобального контекста Оповестить.

    Если не секрет, а как Вы вызываете метод Оповестить(), на который реагирует Процедура ОбработкаОповещения ? Через Com ? А разве так можно на мобиле ?

    Reply ↓
  6. Meteorage

    (5) Прошу прощения за не совсем полный ответ. Я вчера был не совсем адекватный.

    Все просто: у нас используется утилиты Acode Tools и в модуле управляемого приложения расположен код:

    УтилитыACODEМодульДляОповещений.ПодключитьГлобальноеСобытиеОповещения();
    

    И еще небольшое уточнение: ИмяСобытия = «1»

    Reply ↓
  7. bulpi

    Спасибо.

    Но об этом надо бы в публикации написать, тогда не было бы вопроса.

    Reply ↓
  8. Meteorage

    (7) Вам спасибо за уточнения, публикацию поправил.

    Reply ↓
  9. nytlenc

    Не работает проводной сканер HoneyWell MS5145, брал ACODE отсюда http://infostart.ru/public/310565/ стоит версия 2.08 в списке всего одна база (ACODE тестовая) в их конфигурации добавил только проверку на «ИмяСобытия = «1»». Сервисы ACODE и Ваш запущены. Ничего не происходит. Если считывать в текстовое поле то сканер разумеется считывает как клавиатура — тоесть сканер подключен и работает.

    //УтилитыACODEМодульДляОповещений — тут идет подключение глобального оповещения.
    &НаКлиенте
    Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
    Сообщить(ИмяСобытия + » » + Параметр + » » + Источник);
    Если ИмяСобытия = «4» ИЛИ ИмяСобытия = «1» Тогда //если это событие блютуз сканера, то записываем штрихкод.
    ПолучениеСообщения(Параметр)
    КонецЕсли;
    КонецПроцедуры
    

    Показать

    Reply ↓
  10. Meteorage

    (9) А мое приложение и не рассчитано на работу с этим сканером, оно предназначено только для ТСД Urovo i6200 и подобные ему.

    Reply ↓
  11. nytlenc

    (10) а вы не могли бы поделиться исходником, чтобы я доработал для своих нужд?

    Reply ↓
  12. AlexF1983

    Добрый день, Всеволод!

    Мы задумались о приобретении Urovo i6200s.

    Данный ТСД выпускается с тремя вариантами считывателя, что можно понять по первым двум буквам в модели:

    Mindeo (SL), Honeywell N3134 (SH), Motorola SE955 (SS).

    Не могли бы вы уточнить, какая именно модель используется у Вас? Думаю другим таким же «задумавшимся» тоже будет интересно…

    В идеале будет если получится сообщить полную модель, например: Urovo MC6200S-SH1S2E000H

    А то купим в надежде на ваш сервис, а он «не взлетит»…

    Reply ↓
  13. Meteorage

    (12) Добрый день! Единственное чем могу помочь, это скинуть фото с коробки в которой наша компания его купила. Просто все эти ТСД шли непосредственно из китая. Если будут еще вопросы и я в силах ответить на них, то я отвечу.

    Reply ↓
  14. AlexF1983

    (13) Так коробка и ТСД на фото — это i6300, а в статье речь про i6200.

    Reply ↓
  15. Meteorage

    (14) Все просто. На момент написания статьи, мне предоставляли этот же ТСД (кустарного производства), но с маркировкой i6200. Для него я и разрабатывал приложение. После пилотного проекта компания закупила ТСД и их привезли вот с такой маркировкой. Так что прошу прощения, я сам нахожусь в легком диссонансе от этой ситуации.

    Reply ↓
  16. Grivba

    Прошу уточнить.

    Какие настройки необходимо установить в DataWedge для передачи штрихкода и корректного перехвата.

    Reply ↓
  17. Grivba

    Ошибка при синтаксическом анализе пакета.

    Android 4.1.

    Reply ↓
  18. Meteorage

    (16) никакие, мое приложение перехватывает интент и передает его в 1с. Оба файла протестированы на рабочих тсд.

    (17) Вы что именно скачивали?

    Reply ↓
  19. Grivba

    Scaner_barcode.apk

    Reply ↓
  20. Meteorage

    (19) Он предназначен для работы со сканерами UROVO, у Вас какой фирмы ТСД?

    Reply ↓
  21. Grivba

    Symbol MC32

    На Android 4.1

    Работа со сканером через DataWedge

    Reply ↓
  22. Meteorage

    (21) Мои текущие публикации, не помогут Вам, Но я могу попробовать помочь Вам.

    Reply ↓
  23. Grivba

    Было бы очень хорошо.

    Reply ↓
  24. ritd

    Добрый день!

    А вот это «УтилитыACODEМодульДляОповещений.ПодключитьГлобальноеСобытиеОповещения();» откуда взять? Нужно еще что-то от acode устанавливать?

    Reply ↓
  25. Meteorage

    (24) Добрый день. У нас на предприятии используется утилиты ACODE только для push-уведомлений. По сути можно самому определить этот обработчик глобального оповещения и все.

    Reply ↓
  26. AlexF1983

    Добрый день.

    В связи с выходом мобильного клиента, задумались о переводе ТСД на мобильный клиент.

    Есть возможность доработать Ваше приложение?

    Насколько хватает моих дилетантских познаний, нужно передавать ШК не в приложение com.e1c.mobile а в приложение com.e1c.mobile.client. В остальном все должно работать также.

    Заранее спасибо за помощь!

    Reply ↓
  27. Meteorage

    (26) доброго времени суток. На Ваш вопрос пока не могу дать ответ. Мне нужно посмотреть более детально.

    Reply ↓
  28. user708791_ared2000

    (27) Тоже интересует этот вопрос

    Reply ↓
  29. Meteorage

    (28) нельзя) пробовал не в моих силах из-за того что закрыли дырку которой я пользовался для написание текущего приложения

    Reply ↓
  30. marat3581525

    Автор, приветствую тебя!

    Установил компоненту из твоей публикации на свой ТСД.

    Захотел протестировать: создал конфигурацию для мобильного приложения, создал в ней обработку и добавил форму. Потом к этой форме добавил процедуру «Обработка оповещения». Запускаю на своем тсд, нажимаю на кнопку сканирования — а форма на 1С не реагирует никак. Что делаю не так, подскажи!

    Reply ↓
  31. Meteorage

    (30) Приветствую. Ты подключил при старте системы подключение глобального обработчика оповещения? И какая платформа на мобилке?

    Reply ↓
  32. marat3581525

    (31)Привет.

    1. Да, в модуле управляемого приложения в ПриНачалеРаботы системы прописал эту процедуру подключения глобального обработчика оповещения, которая ссылается на клиентский модуль.

    Также пробовал брать другие уже готовые мобильные типовые решения где тоже это прописано сразу — также не срегариовал на сканер.

    2. Платформа стоит 8.3.15, т.е. свежая.

    Reply ↓
  33. Meteorage

    (32) При использовании свежей платформы это не работает, так как с обновлением политики безопасности google был прикрыт механизм глобального оповещения. Следовательно нужно использовать более позднюю платформу

    Reply ↓
  34. marat3581525

    (33) Вот оно что, понятно. Спасибо. Автор, не подскажешь какую версию мобильной платформы ставить?

    Версия Андроида получается тоже влияет на это?

    Reply ↓
  35. Meteorage

    (32) для более поздних релизов я пробовал:

    https://forum.infostart.ru/forum28/topic186089/

    Reply ↓

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *