1. dablack 11.09.13 14:53 Сейчас в теме

Мобильная платформа, как активизирвать поле ввода для получения штрих-кода

Создаю мобильное приложение под Андроид и пытаюсь прикрутить сканер ШК который соединяется по bluetooth с КПК через HID (эмуляция клавиатуры).
Все хорошо и замечательно работает кроме одного... крайне неудобно и сводит к нулю практическую пользу от приложения тот факт, что необходимо чтобы поле ввода было активировано вручную т.е. на нем стоял курсор и иначе штрих-код сканируется в некуда...Все попытки, что то сделать не увенчались успехом. Но случайно наткнулся на приложение "Монитор ERP" в котором при переходе в раздел "Партнеры" чудесным (совсем не понятно каким) поле ввода для поиска партнера активизируется само. Как в мониторе ERP это получается разобраться не смог, может это глюк обращенный во благо. Подскажите если кто сталкивался.
Ответы
Избранное Подписка Сортировка: Древо
2. DJDUH 17 11.09.13 15:39 Сейчас в теме
(1) dablack, порядок обхода поставь "1"!
56. capone 22 12.05.16 09:31 Сейчас в теме
(1) dablack, Расскажите, получилось выйти из положения? У меня возникла аналогичная проблема с платформоф 8.3.7
57. dablack 19.05.16 09:14 Сейчас в теме
(56) capone,
Со сканерами работаю пока только через ACODETools, постом выше ссылка.
3. dablack 11.09.13 16:29 Сейчас в теме
Это же управляемые формы, какой порядок обхода? нет его !
АктивизироватьПоУмолчанию - не прокатывает.
4. AlX0id 16.09.13 14:29 Сейчас в теме
Может, ТекущийЭлемент = трататат?
5. maxx 840 07.11.13 22:13 Сейчас в теме
Я сталкивался с глюком таким, что если изменить свойство "Заголовок" у поле надписи, то курсор становится на первое поле ввода на форме
6. born85 46 08.11.13 13:09 Сейчас в теме
Активизировать элемент формы при ее открытии можно, установив свойство Активизировать по умолчанию. Это поможет избавить пользователя от лишних действий по переходу на нужный элемент формы и обратит его внимание на самый важный (с точки зрения работы приложения) элемент.
7. DanilaDru 253 14.11.13 22:57 Сейчас в теме
У нас такое сценарий работает через ТекущийЭлемент. При открытии формы мы позиционируемся на поле ввода. А потом после каждой обработке введенного штрих-кода обратно возвращаем ТекущийЭлемент на это поле ввода.
8. KillHunter 7 17.11.13 15:06 Сейчас в теме
да нет это глюк платформы похоже!
9. ejik2012 04.12.13 13:14 Сейчас в теме
ДД! Столкнулся с такой же проблемой. ТекущийЭлементы в мобильном приложение не отрабатывает. Решили ли вы как-нибудь данную проблему?
22. mar82 06.07.14 17:33 Сейчас в теме
(9) ejik2012, нормально отрабатывает, у меня приложение для склада все построено на "Текущем элементе"
23. flyer 229 06.07.14 22:55 Сейчас в теме
(22) mar82, на какой платформе такое возможно? вот mobile 8.3.5.62 на этой попробуйте
10. Широкий 687 12.05.14 11:37 Сейчас в теме
Беда, в 17 версии работало, в более новой - нет.
Костыли кто нить придумал?
11. DanilaDru 253 12.05.14 12:13 Сейчас в теме
Та же ситуация. После обновления платформы позиционирование через текущий элемент не выполняется.
12. flyer 229 12.05.14 14:50 Сейчас в теме
не знаю зачем они это сделали с 21 версии убрали эту возможность. 8.3.5 тестовая вышла в ней уже тестирую с изображения штрих код снимать.
13. FuZZ_90 19.05.14 14:25 Сейчас в теме
В версии 8.3.5.52 тоже не работает ТекущийЭлемент
14. flyer 229 19.05.14 22:08 Сейчас в теме
можно конечно голову поломать и что нибудь придумать с 8.3.5.52 с его новым объектом ЗапускПриложенияМобильногоУстройства. например такой изврат будет в 1с инициируем запуск внешнего приложения. вне.прилож читает все что идет со сканера и возвращает данные в 1с. минус только то что нужен синхронный режим работы. получили данные со сканера, отправили в 1с, 1с возвращает ответ чтобы отобразить на экране.
35. ferre 10.09.14 15:15 Сейчас в теме
(14) flyer, (31) Широкий, есть ли уже примеры использования этой новой возможности: ЗапускПриложенияМобильногоУстройства, хотелось бы глянуть на пример кода...
36. Широкий 687 10.09.14 15:30 Сейчас в теме
(35) Применения не нашел.
Виндовый это аналог - запуска файлика - а система по расширению понимает с помощью чего его нужно открыть.
37. flyer 229 10.09.14 15:38 Сейчас в теме
(35) ferre, нет еще не реализовывал. хотя скоро наверное начну делать.
15. lisov 16.06.14 13:22 Сейчас в теме
Можно ли как-нибудь совсем обойтись без поля ввода? Можно ли отлавливать внешнее событие, или еще как-нибудь? Неужели сканер можно использовать только в режиме клавиатуры?
16. flyer 229 27.06.14 14:18 Сейчас в теме
кстати никто не тестировал ВнешнееСобытие может оно уже работает
17. dablack 01.07.14 18:10 Сейчас в теме
Идеальный конечно вариант это ВнешнееСобытие и чтобы из этого внешнего можно было получить данные от сканера подключенного через bluetoth в режиме Slave. По моему мнению сделать такое разработчикам мобильной платформы не составит большого труда (по крайней мере для андроида, как дела с ios не знаю) т.к. и API есть и скачивал для пробы маленькие софтинки для андроида в которых данные полученные через bluetoth в режиме slave выводились как в консоль, причем в таком режиме (не через разрыв клавиатуры) скорость получения значения ШК естественно заметно в разы выше. Ну хотя бы вернули ТекущийЭлемент !!! (может производители дорогущих терминалов сбора данных просили 1с этого не делать ?)
Dimon93dimon; +1 Ответить
18. ejik2012 03.07.14 07:15 Сейчас в теме
(17) dablack, проблему с установкой Текущего элемента при открытии формы я решал через подключение обработчика ожидания, не знаю насколько это актуально для последних релизов 8.3

&НаКлиенте
Процедура ПриОткрытии(Отказ)	
		
	ПодключитьОбработчикОжидания("АктивироватьПолеШК", 1, Истина);
	
КонецПроцедуры

&НаКлиенте
Процедура АктивироватьПолеШК()
	ТекущийЭлемент = Элементы.ШтрихКод;
	Объект.ШтрихКод = "";
КонецПроцедуры

Показать
vasiliy_b; +1 Ответить
34. Широкий 687 11.08.14 16:15 Сейчас в теме
Не совсем. Если нет клавы - нет и курсора, но поле является активным.
Т.е. если "пальцем" открыть клавиатуру и переключать активность полей по методике в (18) все работает как надо.
19. flyer 229 04.07.14 08:55 Сейчас в теме
я так понял 1с принципиально убрали в поле ввода фокусировку в моб.платформе.
20. ejik2012 04.07.14 12:12 Сейчас в теме
(19) flyer, фокусировка насколько я помню работала нормально, был глюк при котором фокусировка не устанавливалась при открытии формы документа, как я писал выше это решалось через "ПодключитьОбработчикОжидания"
21. flyer 229 06.07.14 16:54 Сейчас в теме
одно из моих приложений тоже раньше через обработчик ожидания получал все данные с блютуз сканера штрих кодов. как только это убрали пришлось пользователям самим вручную пальцем поле ввода активировать.беда
24. mar82 06.07.14 23:38 Сейчас в теме
А разве 8.3.5 уже официально зарелизена?
25. flyer 229 07.07.14 17:18 Сейчас в теме
(24) mar82, нет конечно. функционал уж больно у нее богатый.
26. jack_kkm 34 15.07.14 09:34 Сейчас в теме
Мужики, хелп! Замучился уже.
Сейчас ни в одной из версий моб. платформы нельзя вызвать программно клавиатуру андроида, а без неё не работает ввод данных в поле ввода со сканера ШК через блютуз. Данные не попадают в поле, даже если в нем фокус, пока не тапнешь пальцем по полю.
Решения пока нет?
28. dj_serega 368 16.07.14 10:19 Сейчас в теме
(26) jack_kkm, последнюю качали?
27. flyer 229 16.07.14 09:18 Сейчас в теме
в этой версии 8.3.4.17 еще можно было
29. flyer 229 21.07.14 14:23 Сейчас в теме
30. Широкий 687 11.08.14 15:36 Сейчас в теме
(29) +1
Активизация поля программно выполняется, но теперь это не инициирует вызов встроенной клавиатуры.
31. Широкий 687 11.08.14 15:39 Сейчас в теме
Сделал бы какой нить умелец приложение, которое могло бы клаву открывать/скрывать.
"ЗапускПриложенияМобильногоУстройства" - добавили, можно было бы через него выкрутитться
32. Широкий 687 11.08.14 15:41 Сейчас в теме
Есть решения через веб-сервис - но ИМХО это как то не очень надежно
33. flyer 229 11.08.14 16:04 Сейчас в теме
(32) Широкий, под активацией вы понимаете что курсор попадает в поле?
клавиатуру нет смысла вызывать например если к устройству подключено блютус сканер. клава при этом сама уходит. сканер становится клавой.
саму клаву можно на форму нарисовать.
38. ferre 10.09.14 15:43 Сейчас в теме
Судя по методам и свойствам этого объекта (ЗапускПриложенияМобильногоУстройства) - здесь должен быть не только "запуск файлика"))

ЗапускПриложенияМобильногоУстройства (MobileDeviceApplicationRun)
Свойства:
Данные (Data)
Действие (Action)
ДополнительныеДанные (AdditionalData)
ИмяКласса (ClassName)
Категория (Category)
Приложение (Package)
Тип (Type)
Методы:
Запустить (Run)
Описание:
Предназначен для запуска внешних приложений.
В отличие от метода ЗапуститьПриложение позволяет передать в приложение параметры.
Доступен только на устройствах под управлением операционной системы Android.
Доступность:
Мобильное приложение(клиент).
39. Широкий 687 10.09.14 15:47 Сейчас в теме
(38) Ну я же написал - по аналогии. В теории можно музыку проиграть , контакту позвонить и т.д.
40. flyer 229 10.09.14 16:01 Сейчас в теме
(38) ferre, с помощью этого метода вы сможете запускать доступные команды внешнего приложения и при этом передавать данные. далее можно получить ответ о результатах.
41. zwitter 12.09.14 13:48 Сейчас в теме
Та же ерунда, на 8.3.4 Текущий элемент работал, а в 8.3.5 - нет.
И даже в синтаксис помошнике теперь пишет:
Доступность:
Тонкий клиент, веб-клиент, толстый клиент.

Обработчик ожидания без Текущего элемента тоже не поможет
42. Широкий 687 17.09.14 13:49 Сейчас в теме
76 версия вышла - тоже болт, хоть бы метод вставили "Показать клавиатуру"
43. flyer 229 17.09.14 14:20 Сейчас в теме
я думаю этого не стоит ждать
44. dablack 18.09.14 16:35 Сейчас в теме
Посмотрите пожалуйста у кого есть доступ, что пишут в партнерской конференции про bluetooth.Партнерская конференция
45. zwitter 22.09.14 13:23 Сейчас в теме
Я им после 8.3.5.74 письмо написал, но в 8.3.5.76 даже в списке исправлений про это ни слова:(
Да и не работает.
46. Гость 03.10.14 16:35
8.3.5.82 тоже не работает :-(
47. dj_serega 368 03.10.14 17:36 Сейчас в теме
(46) Андрей, видимо правда в (43) :(
48. flyer 229 03.10.14 17:47 Сейчас в теме
парни у кого есть доступ к партнерскому форуму почитайте к чему там пришли как выходят с этой ситуации? тут коротенько напишите
49. zwitter 08.11.14 12:46 Сейчас в теме
8.3.5.83 - не работает
А на мой запрос написали пишите программистам через личный ид, а у меня его нет:(
50. ulterior 10.07.15 09:18 Сейчас в теме
Народ здравствуйте. Кто нибудь смог решить эту ситуацию?
51. AlX0id 10.07.15 10:12 Сейчас в теме
(50) ulterior,
пока вроде только (41) - то бишь, откатиться на 8.3.4
53. ni032mas 99 10.07.15 18:49 Сейчас в теме
(50) ulterior, я смирился с этим и логику программы изменил. Как правило после сканирования хочется вводить количество, так вот я сделал реквизит с количеством заданным по умолчанию 1 и после сканирования беру информацию из него. В этом случае фокус остается. После сканирования не стоит обращаться к элементам формы, так как это тоже переключит фокус. Т.о. если нужно ввести количество, то сначала вводим количество, а потом сканируем. В моем случае количество редко нужно вводить, поэтому фокус теряем не часто.
52. flyer 229 10.07.15 13:18 Сейчас в теме
посмотрите как сделали в мобильной кассе. там отдельная компонента apk. читают с нее и отправляют в 1с результат сканирования.
54. Tigreno 16.07.15 13:43 Сейчас в теме
(52) flyer, А где бы взять исходники это мобильной кассы???
55. ni032mas 99 16.07.15 14:22 Сейчас в теме
(54) Tigreno, если вы хотите читать штрихкод через внешнее приложение, то посмотрите на это решение http://infostart.ru/public/310565/
58. ni032mas 99 19.05.16 09:52 Сейчас в теме
Недавно обновлял на андройде мобильную платформу 8.3.5.112, так вот она запросила разрешение на использование блютуз, чтобы это могло означать? Может быть как-то можно установить связь со сканером?
59. dablack 19.05.16 10:07 Сейчас в теме
(58) ni032mas,
Не обратил внимание.
А так вроде на хабре 1с анонсировала, что то вроде внешних компонент, но под мобильную платформу. Правда не скоро наверное, но работы ведутся.
61. ni032mas 99 20.05.16 08:57 Сейчас в теме
Сегодня немного поковырял Мобильную кассу. В ней в макетах зашиты apk файлы Драйвер1СУстройствоВвода и ДрайверСканкодСканерШтрихкодаChipherlab. Суть такова, 1С устанавливает эти приложения на Android, приложения считывают информацию со сканера и как-то передают в 1С. Как все реализовано до конца не разобрался, но одно ясно, что сделано через интенты и ЗапускПриложенияМобильногоУстройства. Непонятно как приложение оповещает 1С о сканировании штрихкода. Декомпилил Драйвер1СУстройствоВвода в манифесте прописаны интенты, которые вызывает 1С, в частности open. Буду дальше разбираться.
62. zwitter 06.09.16 10:23 Сейчас в теме
Подключили к устройству через OTG сканер штрихкодов - все отлично работает, но после перехода на 8.3.7, может и раньше такое было, но не проверял, штрихкод стал "редактироваться" самостоятельно (И это до события ПриИзменении, событие же ИзменениеТекстаРедактирования при вводе со сканера не обрабатывается). Видно как вводятся все 13 символов, а затем часть из них пропадают (в конце), не всегда и часто разное количество, но все равно пользователей раздражает. Вернулись на 8.3.5.112, там такого глюка нет. Никто не сталкивался с таким? Может это что-то в такси?
Upd Сканирование в другие приложения, к примеру в поле поиска браузера себя ведет нормально.
63. bubus 06.09.16 17:32 Сейчас в теме
(62) zwitter, а что за устройство и какая модель сканера если не секрет?
64. zwitter 07.09.16 10:24 Сейчас в теме
Устройства разные, от отечественных ImPad 2114, 2414, до Lenovo и ZenPad от Asus, даже проверяли на телефоне Meizu M2 Mini. Сканер пробовали китайский Afanda Alanda из безпроводных и Metrologic (модель не вспомню) проводной.
Все подключалось через OTG и определялось планшетом как аппаратная клавиатура, никаких программ прокладок не использовали. Единственный недостаток - нагрузка на батарею.
71. 1108 222 20.12.16 13:42 Сейчас в теме
(64) У меня та же ситуация. Сканер китайский, прошит в эмуляцию клавиатуры (пробовал несколько разных моделей сканеров). В поле ввода штрихкод попадает весь, при считывании сканером, но потом сам сокращается на произвольное количество символов. Появилось это именно в платформе 8.3.7. На платформе 8.3.6 работает, но не срабатывают процедуры ОкончаниеВводаТекста и ПриИзменении. У кого-нибудь получилось решить это?
72. bashinsky 126 08.03.17 21:47 Сейчас в теме
(71) я решил это настройкой сканера. После сканирования сканер вводит enter. Cканер honeywell 5145
86. zwitter 22.11.17 16:33 Сейчас в теме
(72)У нас тоже самое. Пока проблемма только с самосокращением текста на платформах с интерфейсом такси.
65. Nikosc 24.10.16 15:32 Сейчас в теме
Добрый день! Кто-нибудь смог решить текущий вопрос? Интересует, как обойтись желательно без интентов, но на крайний случай, можно и с ними. Нужно, чтобы при открытии формы мой ТСД(на андройде) мог сразу считанный ШК вставлять в активное поле. Ну и желательно без лишних касаний сразу его обрабатывать
66. elephant_x 21.11.16 18:20 Сейчас в теме
Кто-нибудь нашел решение? очень интересует.
67. dj_serega 368 22.11.16 21:44 Сейчас в теме
А при открытии формы не срабатывает АктивироватьПоУмолчанию?
68. elephant_x 22.11.16 23:33 Сейчас в теме
69. flyer 229 23.11.16 09:05 Сейчас в теме
с выходом 8.3.9 можем использовать активизацию поля ввода.
используйте НачатьРедактированиеЭлемента(); и ПодключитьОбработчикОжидания
для активного использования трудно использовать
cwant; vasiliy_b; user745653; Danil.Potapov; inf012; elephant_x; +6 Ответить
70. elephant_x 23.11.16 16:10 Сейчас в теме
(69) Да, вчера сам уже нашел это решение, сегодня уже принимал товар на складе)
73. odinassdeveloper 24.05.17 14:50 Сейчас в теме
(69)
НачатьРедактированиеЭлемента() замечательно отрабатывает, но мешает отрываемая по-умолчанию клава
при этом если клаву закрыть, то фокус на элементе все равно остается. у кого-нибудь получалось закрыть клаву программно?
74. ni032mas 99 25.05.17 11:03 Сейчас в теме
(69)
НачатьРедактированиеЭлемента() замечательно отрабатывает, но мешает отрываемая по-умолчанию клава
при этом если клаву закрыть, то фокус на элементе все равно остается. у кого-нибудь получалось закрыть клаву программно?

Не прошло и 3 года как заработало) Я уже нативно под андроид научился писать и все началось из-за этой проблемы)))
75. demONx7 29.06.17 04:40 Сейчас в теме
Здравствуйте.
(74)
Я уже нативно под андроид научился писать

Так может подскажете как закрыть клавиатуру?
76. ni032mas 99 29.06.17 15:46 Сейчас в теме
(75) Честно говоря в разработку мобильных устройств на платформе 1С уже давно не погружался, незачем и нет желания.
Если сама 1С не может скрыть клаву, а я думаю не может, то можно попробовать написать нативное приложение которое сможет это сделать и через 1С его выполнить. Ниже код на Java который скрывает клавиатуру.
InputMethodManager inputMethodManager = (InputMethodManager) activity.getSystemService(Activity.INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(activity.getCurrentFocus().getWindowToken(), 0);

Но это все в теории, нужно проверять...
В целом подключать сканер как HID устройство не есть хорошо, нужно подключать в режиме SPP и как-то ловить интенты от сканера в 1С. Тогда не будет проблем, ни с клавиатурой, ни с фокусом.
Я использую сканеры generalscan, они могут подключаться в режиме SPP. Когда во всё это начинаешь погружаться, то понимаешь что проще написать на нативном андроид.
77. ni032mas 99 29.06.17 18:36 Сейчас в теме
(75)А еще есть модели смартфонов у которых можно скрыть клавиатуру в настройках при подключении сканера в режиме HID. Т.е. тапаешь в поле для сканирования, а клава не появляется.
78. demONx7 30.06.17 08:05 Сейчас в теме
(77)
Это не сканер, а терминал сбора данных. Он работает без присоединения к компу. Подключается к нему только для передачи собранной информации.
В данный момент сканирует, пополняет собственную базу, после чего формирует XML файл, который при соединении с компом обрабатывается уже далее.
79. ni032mas 99 30.06.17 14:17 Сейчас в теме
(78)Как я понял, у ТСД сканер подключен в режиме HID? Возможно его можно подключить в режиме SPP и наверняка есть софт для ТСД который делает интенты(намерения) при сканировании, а интент уже содержит штрихкод. Так вот задача стоит в том, чтобы отловить эти интенты с помощью 1С. Тогда, повторюсь, не будет никакого геморроя с клавиатурой и с полем ввода.
81. lx@ 08.10.17 18:00 Сейчас в теме
(75)
Так может подскажете как закрыть клавиатуру?

ТекущийЭлемент = НекоеПоле;
82. bubus 08.10.17 20:21 Сейчас в теме
(81)
Так может подскажете как закрыть клавиатуру?

Вы это проверяли?
83. lx@ 08.10.17 23:35 Сейчас в теме
(82)
Да.
Щелкаю в поле - вылазит клавиатура.
Заканчиваю ввод текста - выполняю нужные действия.
Программно очищаю поле.
Устанавливаю ТекущийЭлемент - клава скрывается.
84. bubus 17.10.17 01:04 Сейчас в теме
(83)А в каком событии отлавливаете окончание ввода текста? И какую кнопку там выставляете? готово, найти или еще какую?
Чет у меня не выходит.
Событие НаименованиеОкончаниеВводаТекста.
В обработчике:
Текст = "";
текущийэлемент = Элемент;

Клава дергается, но не скрывается
85. lx@ 17.10.17 07:38 Сейчас в теме
(84)Сделайте форму с двумя полями ввода. На первое повесьте событие приизменении, в нем установите текущим элементом второе поле ввода. Если не получится - набросаю пример. (мобильная платформа 8.3.10)
80. demONx7 03.07.17 03:36 Сейчас в теме
Александр, подскажите как проверить в каком режиме подключен сканер в ТСД? У меня модель LPT82. Работает под андроидом. В настройках (в том числе и в пункте "для разработчиков") нигде это не указано.
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Консультант по 1С:Документооборот
Санкт-Петербург
зарплата от 120 000 руб. до 150 000 руб.
Полный день

Программист по 1С:Бухгалтерии
Санкт-Петербург
зарплата от 120 000 руб. до 150 000 руб.
Полный день

Программист по 1С:ЗУП
Санкт-Петербург
зарплата от 120 000 руб. до 150 000 руб.
Полный день

Консультант-аналитик 1С
Москва
зарплата от 100 000 руб. до 150 000 руб.
Полный день

Программист 1С
Санкт-Петербург
зарплата от 110 000 руб. до 150 000 руб.
Полный день