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

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

Создаю мобильное приложение под Андроид и пытаюсь прикрутить сканер ШК который соединяется по bluetooth с КПК через HID (эмуляция клавиатуры).
Все хорошо и замечательно работает кроме одного... крайне неудобно и сводит к нулю практическую пользу от приложения тот факт, что необходимо чтобы поле ввода было активировано вручную т.е. на нем стоял курсор и иначе штрих-код сканируется в некуда...Все попытки, что то сделать не увенчались успехом. Но случайно наткнулся на приложение "Монитор ERP" в котором при переходе в раздел "Партнеры" чудесным (совсем не понятно каким) поле ввода для поиска партнера активизируется само. Как в мониторе ERP это получается разобраться не смог, может это глюк обращенный во благо. Подскажите если кто сталкивался.
Ответы
Избранное Подписка Сортировка: Древо
2. DJDUH 19 11.09.13 15:39 Сейчас в теме
(1) dablack, порядок обхода поставь "1"!
56. capone 23 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 658 07.11.13 22:13 Сейчас в теме
Я сталкивался с глюком таким, что если изменить свойство "Заголовок" у поле надписи, то курсор становится на первое поле ввода на форме
6. born85 36 08.11.13 13:09 Сейчас в теме
Активизировать элемент формы при ее открытии можно, установив свойство Активизировать по умолчанию. Это поможет избавить пользователя от лишних действий по переходу на нужный элемент формы и обратит его внимание на самый важный (с точки зрения работы приложения) элемент.
7. DanilaDru 241 14.11.13 22:57 Сейчас в теме
У нас такое сценарий работает через ТекущийЭлемент. При открытии формы мы позиционируемся на поле ввода. А потом после каждой обработке введенного штрих-кода обратно возвращаем ТекущийЭлемент на это поле ввода.
8. KillHunter 6 17.11.13 15:06 Сейчас в теме
да нет это глюк платформы похоже!
9. ejik2012 04.12.13 13:14 Сейчас в теме
ДД! Столкнулся с такой же проблемой. ТекущийЭлементы в мобильном приложение не отрабатывает. Решили ли вы как-нибудь данную проблему?
22. mar82 06.07.14 17:33 Сейчас в теме
(9) ejik2012, нормально отрабатывает, у меня приложение для склада все построено на "Текущем элементе"
23. flyer 207 06.07.14 22:55 Сейчас в теме
(22) mar82, на какой платформе такое возможно? вот mobile 8.3.5.62 на этой попробуйте
10. Широкий 685 12.05.14 11:37 Сейчас в теме
Беда, в 17 версии работало, в более новой - нет.
Костыли кто нить придумал?
11. DanilaDru 241 12.05.14 12:13 Сейчас в теме
Та же ситуация. После обновления платформы позиционирование через текущий элемент не выполняется.
12. flyer 207 12.05.14 14:50 Сейчас в теме
не знаю зачем они это сделали с 21 версии убрали эту возможность. 8.3.5 тестовая вышла в ней уже тестирую с изображения штрих код снимать.
13. FuZZ_90 19.05.14 14:25 Сейчас в теме
В версии 8.3.5.52 тоже не работает ТекущийЭлемент
14. flyer 207 19.05.14 22:08 Сейчас в теме
можно конечно голову поломать и что нибудь придумать с 8.3.5.52 с его новым объектом ЗапускПриложенияМобильногоУстройства. например такой изврат будет в 1с инициируем запуск внешнего приложения. вне.прилож читает все что идет со сканера и возвращает данные в 1с. минус только то что нужен синхронный режим работы. получили данные со сканера, отправили в 1с, 1с возвращает ответ чтобы отобразить на экране.
35. ferre 10.09.14 15:15 Сейчас в теме
(14) flyer, (31) Широкий, есть ли уже примеры использования этой новой возможности: ЗапускПриложенияМобильногоУстройства, хотелось бы глянуть на пример кода...
36. Широкий 685 10.09.14 15:30 Сейчас в теме
(35) Применения не нашел.
Виндовый это аналог - запуска файлика - а система по расширению понимает с помощью чего его нужно открыть.
37. flyer 207 10.09.14 15:38 Сейчас в теме
(35) ferre, нет еще не реализовывал. хотя скоро наверное начну делать.
15. lisov 16.06.14 13:22 Сейчас в теме
Можно ли как-нибудь совсем обойтись без поля ввода? Можно ли отлавливать внешнее событие, или еще как-нибудь? Неужели сканер можно использовать только в режиме клавиатуры?
16. flyer 207 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, Истина);
	
КонецПроцедуры

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

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

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

Обработчик ожидания без Текущего элемента тоже не поможет
42. Широкий 685 17.09.14 13:49 Сейчас в теме
76 версия вышла - тоже болт, хоть бы метод вставили "Показать клавиатуру"
43. flyer 207 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 359 03.10.14 17:36 Сейчас в теме
(46) Андрей, видимо правда в (43) :(
48. flyer 207 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 82 10.07.15 18:49 Сейчас в теме
(50) ulterior, я смирился с этим и логику программы изменил. Как правило после сканирования хочется вводить количество, так вот я сделал реквизит с количеством заданным по умолчанию 1 и после сканирования беру информацию из него. В этом случае фокус остается. После сканирования не стоит обращаться к элементам формы, так как это тоже переключит фокус. Т.о. если нужно ввести количество, то сначала вводим количество, а потом сканируем. В моем случае количество редко нужно вводить, поэтому фокус теряем не часто.
52. flyer 207 10.07.15 13:18 Сейчас в теме
посмотрите как сделали в мобильной кассе. там отдельная компонента apk. читают с нее и отправляют в 1с результат сканирования.
54. Tigreno 16.07.15 13:43 Сейчас в теме
(52) flyer, А где бы взять исходники это мобильной кассы???
55. ni032mas 82 16.07.15 14:22 Сейчас в теме
(54) Tigreno, если вы хотите читать штрихкод через внешнее приложение, то посмотрите на это решение http://infostart.ru/public/310565/
58. ni032mas 82 19.05.16 09:52 Сейчас в теме
Недавно обновлял на андройде мобильную платформу 8.3.5.112, так вот она запросила разрешение на использование блютуз, чтобы это могло означать? Может быть как-то можно установить связь со сканером?
59. dablack 19.05.16 10:07 Сейчас в теме
(58) ni032mas,
Не обратил внимание.
А так вроде на хабре 1с анонсировала, что то вроде внешних компонент, но под мобильную платформу. Правда не скоро наверное, но работы ведутся.
61. ni032mas 82 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 216 20.12.16 13:42 Сейчас в теме
(64) У меня та же ситуация. Сканер китайский, прошит в эмуляцию клавиатуры (пробовал несколько разных моделей сканеров). В поле ввода штрихкод попадает весь, при считывании сканером, но потом сам сокращается на произвольное количество символов. Появилось это именно в платформе 8.3.7. На платформе 8.3.6 работает, но не срабатывают процедуры ОкончаниеВводаТекста и ПриИзменении. У кого-нибудь получилось решить это?
72. bashinsky 121 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 359 22.11.16 21:44 Сейчас в теме
А при открытии формы не срабатывает АктивироватьПоУмолчанию?
68. elephant_x 22.11.16 23:33 Сейчас в теме
69. flyer 207 23.11.16 09:05 Сейчас в теме
с выходом 8.3.9 можем использовать активизацию поля ввода.
используйте НачатьРедактированиеЭлемента(); и ПодключитьОбработчикОжидания
для активного использования трудно использовать
user745653; Danil.Potapov; inf012; elephant_x; +4 Ответить
70. elephant_x 23.11.16 16:10 Сейчас в теме
(69) Да, вчера сам уже нашел это решение, сегодня уже принимал товар на складе)
73. odinassdeveloper 24.05.17 14:50 Сейчас в теме
(69)
НачатьРедактированиеЭлемента() замечательно отрабатывает, но мешает отрываемая по-умолчанию клава
при этом если клаву закрыть, то фокус на элементе все равно остается. у кого-нибудь получалось закрыть клаву программно?
74. ni032mas 82 25.05.17 11:03 Сейчас в теме
(69)
НачатьРедактированиеЭлемента() замечательно отрабатывает, но мешает отрываемая по-умолчанию клава
при этом если клаву закрыть, то фокус на элементе все равно остается. у кого-нибудь получалось закрыть клаву программно?

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

Так может подскажете как закрыть клавиатуру?
76. ni032mas 82 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 82 29.06.17 18:36 Сейчас в теме
(75)А еще есть модели смартфонов у которых можно скрыть клавиатуру в настройках при подключении сканера в режиме HID. Т.е. тапаешь в поле для сканирования, а клава не появляется.
78. demONx7 30.06.17 08:05 Сейчас в теме
(77)
Это не сканер, а терминал сбора данных. Он работает без присоединения к компу. Подключается к нему только для передачи собранной информации.
В данный момент сканирует, пополняет собственную базу, после чего формирует XML файл, который при соединении с компом обрабатывается уже далее.
79. ni032mas 82 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С (ЗУП)
Санкт-Петербург
Полный день

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

Руководитель группы сервисов ЭДО, ЭЦП и криптографии
Москва
зарплата от 150 000 руб.
Полный день

Руководитель группы интеграций (1С)
Москва
зарплата от 150 000 руб.
Полный день

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