Имя: Пароль:
1C
 
Хотел по легкому подключить ТСД (Андроид) к 1С - не выходит.
0 ОператорПК
 
24.09.25
22:32
Здравствуйте.

Попробую коротко...

Что хотим:
Считать Штрихкод со штатных физических кнопок ТСД и передать его в 1С.

Что имеем:
1 Развернута база на сервере (БПО для мобильных устройств - последний релиз 3.2.725), база опубликована через Apache 2.2. в базу по минимуму внесено доработок (свои справочники и документы) без расширений. Платформа 1C 8.3.27.1606.
2 ТСД globalpos на базе Андроид 13 (модель GP-N4100) тут установлен мобильный клиент 8.3.27.55 и прописан путь к базе.

Что делаем:
Делаем все как описано тут https://fastcode.im/Templates/9801/ispolzovanie-v-mobilnom-prilozhenii-android-skanera-shtrixkodov-s-komponentoj-drajver1sustrojstvovvodanative-ot-1s
только используя ветку Подключение сканера к пустой 1С 8 через nativeapi и рекомендации lEvGl дописываем код типа рекомендованного в (10) и вуаля процедура "ПодключитьСканерМобильноеПриложение" выдает радостное сообщение "Успешно подключен!"
но беда в том что не отрабатывает ОбработкаВнешнегоСобытия.... в форме документа сколько не жмякай на считывание кода процедура ОбработкаОповещения "молчит".
Есть идеи что не так?
1 p-soft
 
24.09.25
22:44
(0) там не все так просто, для генерации событий клавиатуры надо сервис отдельный разворачивать (ACCESSIBILITY) а только потом их ловить драйвером.
смотрите тему A-WMS Mobile - cистема управления мобильными рабочими местами на складе
2 p-soft
 
24.09.25
22:44
(1) со сканером все значительно проще, там и стандартная компонента работает
3 ОператорПК
 
24.09.25
23:02
(1) я грешным делом подумал (особенно учитывая что у товарища из https://fastcode.im/Templates/9801/ispolzovanie-v-mobilnom-prilozhenii-android-skanera-shtrixkodov-s-komponentoj-drajver1sustrojstvovvodanative-ot-1s заработало все "так")  работать должно так: сам драйвер ловит от Android оповещения (тем более что в параметрах указываются интенты. зачем они драйверу если он с ними все равно работать не может?!) :
Интент             = "scan.rcv.message";                    //Указано в настройках Сканера
    ИнтентДанные     = "barcodeData";            
    
    глСканер.УстановитьПараметр("Action"        , Интент);        
    глСканер.УстановитьПараметр("Extra"        , ИнтентДанные);
Но спасибо за ветку. А сервис ACCESSIBILITY - это приложение (apk файл) я так понял из контекста ветки, его где взять можно?
4 p-soft
 
24.09.25
23:45
(3) ссылка в разделе загрузки есть: https://awms.ru/distr/AWMSDeviceBrokerService.apk
надо поставить, потом зайти в системное меню "Спец.возможности" или "ACCESSIBILITY" и включить "AWMS:Device broker"
оно генерит событие "com.awms.message.keycode", с полем "keycode"
уже это событие надо ловить компонентой в 1с
5 p-soft
 
24.09.25
23:37
(3) да, событие со сканера оно ловит, но чтобы ловить событие клавы у приложения 1с нет нужного разрешения. был вариант поправить манифест платформы (взлом, по сути), но вроде уже так не работает.
6 ОператорПК
 
25.09.25
00:07
(1)+(2)+(5) я в терминах что-то запутался совсем... то Вы пишите "там не все так просто,"  то "со сканером все значительно проще, там и стандартная компонента работает" или "а, событие со сканера оно ловит," вот что Вы имеете в виду под "сканером"? Вот тут например "https://vkvideo.ru/video300336536_456239401?t=7m7s&ref_domain=yastatic.net&showAutoLoginModal=1" описывается работа когда физических кнопок сканирования нет (например обычный смартфон) это имеете в виду под "сканером"? если "да" то о какой компоненте речь? тут из "компонент" кроме как самого мобильного клиента 1С ничего и не нужно. Если Вы все-таки мой случай имеете в виду когда мне от "клавиатуры" всего то и нужно "отсканировать" на события всех клавиш я как бы не претендую... тогда не понятно почему не отрабатывают обработки оповещения.
(4) Спасибо!
7 p-soft
 
25.09.25
00:18
(6) сканер - это то что сканирует штрихкод. событие сканера можно отловить внешней компонентой из приложения.
кнопки аппаратной клавиатуры - это реальные выпуклые кнопки, на которые можно нажать и это не тачскрин. для отлова событий клавы нужна специальная прога
8 p-soft
 
25.09.25
00:28
(7) да, каждой физической кнопке соответствует цифровой код.
в этом контексте, выражение "Считать Штрихкод со штатных физических кнопок ТСД" некорректное - вы считаете код кнопки. но через ваше приложение вы можете сделать что угодно
9 ОператорПК
 
25.09.25
00:31
(7) см видос из (6) чтобы считать ШК с использованием "тачскина" (предварительно нарисовав там кнопку) никакие дополнительные ВК не нужны - все необходимое встроено в мобильный клиент 1С. Еще раз спасибо за ссылку из (4) - завтра уже буду пробовать, сегодня "я уже все"...
10 p-soft
 
25.09.25
00:41
(9) это не считывание - эмуляция. естественно, обрабатывать с помощью вк там ничего не надо.

считывание - это когда лазерный лучик скачет по этикетке со штрихкодом, и программа через вк получает значение считанного шк.
11 Маленький Вопросик
 
25.09.25
05:16
(9) у меня в профиле посмотри на известном ресурсе - там есть рабочий пример работы с ТСД
12 ОператорПК
 
25.09.25
08:35
(11) я так понимаю что про вот это https://infostart.ru/1c/tools/2242904/ речь?
Меня там несколько смущает вот это "В приложенном к публикации файле, так же даны пояснения по дополнительной настройке сервера iis, без которых полноценная работа со сканером терминала не получится." - на Apache 2.2 будет работать?
13 ОператорПК
 
25.09.25
09:05
(10) Ну понятно что тут камера работает а не лазер. - ок.
В свете написанного в (2) и (10) получается что стандартная компонента должна реагировать не на нажатие кнопки (а на луч лазера который собственно и является следствием нажатия кнопки) и получается раз луч есть то должно все работать без доп. приложений как у гражданина из https://fastcode.im/Templates/9801/ispolzovanie-v-mobilnom-prilozhenii-android-skanera-shtrixkodov-s-komponentoj-drajver1sustrojstvovvodanative-ot-1s ...
(4) Установил, вошел в спец. возможности и там есть приложение "AWMS..."на котором написано "Отключено"  если кликнуть на него то пишет "настройки с ограниченным доступом", "В целях безопасности доступ к этой функции пока ограничен" из кнопок только "ок"... - как включить то его?
14 ОператорПК
 
25.09.25
09:23
+(13) включил приложение "AWMS... но войти в него не могу (нет на экране его как приложения) так и должно быть?
15 ОператорПК
 
25.09.25
09:31
+(14) в обработку оповещения ничего не прилетает... в коде же как я понимаю интенты вот такие Интент             = "scan.rcv.message";                    //Указано в настройках Сканера
    ИнтентДанные     = "barcodeData";            
    
    глСканер.УстановитьПараметр("Action"        , Интент);        
    глСканер.УстановитьПараметр("Extra"        , ИнтентДанные);
остаются?
нигде прописывать вот это "com.awms.message.keycode" не нужно?
16 p-soft
 
25.09.25
09:32
(13) да, в последних андроидах включается через жопу.
(14) да, все нормально, это сервис. он только включается и генерит события, своего окна не имеет.
17 p-soft
 
25.09.25
10:26
(15) нужно заменить настройку события на то, что я выше указывал
18 ОператорПК
 
25.09.25
09:42
(16) - спасибо!
(17) переписал код определения интентов вот так:

    Интент             = "com.awms.message.keycode";                    //Указано в настройках Сканера
    ИнтентДанные     = "keycode";            

    глСканер.УстановитьПараметр("Action"        , Интент);        
    глСканер.УстановитьПараметр("Extra"        , ИнтентДанные);
не срабатывает обработка оповещения. :( где нужно изменить "настройку события"?
19 ОператорПК
 
25.09.25
09:44
(17) или в настройках самого ТСД нужно интенты поменять на "com.awms.message.keycode" и "keycode"
?
20 p-soft
 
25.09.25
09:49
(18) если все включено, то при нажатии на физическую клавишу должно приходить событие с кодом нажатой клавиши.
проверяйте включен ли сервис, загружается ли вк..
21 p-soft
 
25.09.25
09:51
(19) и все таки попробуйте разобраться с кашей в голове: как работает механизм интентов android, как именно нужно ловить события, что такое аппаратный сканер и клавиатура тсд.
22 p-soft
 
25.09.25
09:53
(21) там много нюансов, сложно бывает понять где застрял.
23 p-soft
 
25.09.25
09:57
на сайте, в разделе скачать по самой нижней ссылке есть приложение, которое помогает отладить работу с событиями: выдает код нажатых клавиш и данные сканирования, если указан идентификатор события. пробуйте с ним поиграться сначала.
да, оно также требует сервиса для отображения событий клавы
24 ОператорПК
 
25.09.25
10:02
(20) если под ВК понимается штатная "Драйвер1ССканерШтрихкода" то "да" она работает (о чем пишет приложение мобильный клиент 1С при входе в базу), Ваш сервис "AWMS..." работает судя по "Спец. возможностям" - пишет "включено".
25 p-soft
 
25.09.25
10:06
(24) пробуйте приложение в (23) - это поможет понять, работает ли сервис. https://awms.ru/distr/AWMSTest-arm.apk
тут коллеги писали, что драйвер от 1с не всегда получается настроить. я свой драйвер писал.
26 ОператорПК
 
25.09.25
10:08
(21) как работает механизм интентов android - ну я х.з. в основном на ресурсах инета "все просто" типа посмотрите в настройках ТСД его интенты и внесите их значения в параметры настроек 1С - все.... что тут еще придумать можно... сейчас правда в 1С интенты внесены получается не от ТСД а от Вашего сервиса как я писал в (18).
"как именно нужно ловить события" - ну тут вроде как должа просто отрабатывать обработка "ОбработкаВнешнегоСобытия" в модуле приложения и она делает рассылку оповещения открытым формам через "Оповестить" открытые формы в свою очередь ловят это оповещение через ОбработкаОповещения.
"что такое аппаратный сканер" - ну я так понимаю это тот самый лазерный луч который возникает при нажатии на физическую кнопку в ТСД. "клавиатура тсд" - ну тут скорее всего имеется в виду физическая клавиатура ТСД, но есть и виртуальная на экране.
27 ОператорПК
 
25.09.25
10:16
(25) Приложение AWMSTest поставил, при открытии выдает "подключено". если сканирую ШК то приложение AWMSTest "молчит" - ничего в нем не меняется.
28 p-soft
 
25.09.25
10:18
(26) сервис только события от клавы генерит и все.
по событиям. события андроида 1с сама ловить не умеет, для этого используется вк. процесс выглядит так: 1с инициирует внешнюю компоненту, с этого момента вк начинает мониторить указанное в настройках событие андроид. как только поймало - генерится вызов обработки внешнего события 1с, а дальше все как указано.

виртуальная клава на экране не генерит обсуждаемые события 1с!
29 p-soft
 
25.09.25
10:19
(27) потому что надо прописать идентификатор события сканера там же в настройках.
событие клавы прописывать не нужно, оно уже само ловится - просто включите ползунок для отображения
30 ОператорПК
 
25.09.25
10:19
+(27) если прописать "Событие"="com.awms.message.keycode" в настройках то при считывании ШК пишет:
ПодключаемоеОборудование/Barcode:
31 p-soft
 
25.09.25
10:24
(30) говорю же - разберитесь с кашей.
видите - ловит. но это событие клавиатуры, что сервис генерит. поле данных не указали - поэтому данных нет.
событие сканера сами выше приводили:
имя: scan.rcv.message
данные: barcodeData
но это если оно в настройках сканера так прописано в системном меню - проверяйте
32 ОператорПК
 
25.09.25
10:26
+(19) в настройках ТСД поменял интенты на "com.awms.message.keycode" и "keycode" все равно не работает...
33 ОператорПК
 
25.09.25
10:28
(31) данные прописал "keycode" но в результате все равно так:
ПодключаемоеОборудование/Barcode:
34 ОператорПК
 
25.09.25
10:29
+(33) тут имелось в виду Данные в настройках AWMStest
35 p-soft
 
25.09.25
10:30
(33) в настройках "Тип события" в "Клавиатура" переведите
36 ОператорПК
 
25.09.25
10:30
+(34) по новой вошел в приложение AWMStest и уже теперь ест ПодключаемоеОборудование/Barcode:4670008492716
37 ОператорПК
 
25.09.25
10:31
(35) перевел, теперь в окне "результат" ни чего не меняется...
38 ОператорПК
 
25.09.25
10:31
+(37) при сканировании
39 ОператорПК
 
25.09.25
10:34
(35) сейчас в настройках ТСД вернул интенты на
имя: scan.rcv.message
данные: barcodeData
и теперь в приложении AWMStest при сканировании пишет ПодключаемоеОборудование/Barcode:621 - видимо это код кнопки...
40 ОператорПК
 
25.09.25
10:38
+(39) вернул интенты в настройках самого ТСД на  "com.awms.message.keycode", с полем "keycode" и теперь при каждом сканировании выдается сразу две строки:
ПодключаемоеОборудование/Barcode:621
ПодключаемоеОборудование/Barcode:4670008492716
41 p-soft
 
25.09.25
10:38
(39) "Тип события" переключайте.
все правильно, если событие клавы прописать в настройке сканера, то словим глюк, т.к. оно УЖЕ прописано в коде вк и ловится отдельным потоком.
42 ОператорПК
 
25.09.25
10:39
+(40) если бы такое прилетало в 1С меня бы вполне устроило (просто по длине строки отсек бы лишнее и все)
43 p-soft
 
25.09.25
10:39
(40) ну в общем все так и должно быть при кривых настройках.
главное - получили связь своих действий с изображением на экране, дальше проще. удачи!)
44 ОператорПК
 
25.09.25
10:40
(39) если переключить тип события на "Клавиатура" то в окне сообщения ничего нет при сканировании.
45 ОператорПК
 
25.09.25
10:49
(43) Спасибо, удача мне понадобится :)
46 ОператорПК
 
25.09.25
15:20
Если кому то интересно, то уважаемый "p-soft" предоставил мне "каркасную (тестовую) конфигурацию" в виде cf, в которой встроен им разработанный драйвер + нужен файлик из (4) на ТСД установить (и обеспечить работу). С их помощью все заработало: ШК считывается и передается в мобильное приложение 1С! СПАСИБО!
47 Маленький Вопросик
 
25.09.25
17:05
(46) вот мой пример с "лазером"

https://infostart.ru/1c/tools/2242904/

может не своевременно, но он точно рабочий

уважаемый p-soft вероятно не сказал, что публикация должна быть по ряду параметров, если это через приложение 1с ?
48 ОператорПК
 
25.09.25
17:57
(47) Да именно об этом примере я писал в (12).
"уважаемый p-soft вероятно не сказал, что публикация должна быть по ряду параметров" - я публиковал из конфигуратора 1С на сервере, в качестве web сервера использую Apache 2.2 ни каких особых настроек при этом не делал - стандартная процедура публикации базы для того чтоб ее можно было использовать например через браузер.
49 ProxyInspector
 
25.09.25
18:24
(0) Считать Штрихкод со штатных физических кнопок ТСД и передать его в 1С ....
  Что то не понятно что вы хотите
50 ОператорПК
 
25.09.25
18:32
(49) видимо я не удачно выразился. имелось в виду следующее: ШК можно считать "камерой" и без проблем передать в 1С (описано тут например https://vkvideo.ru/video300336536_456239401?t=7m7s&ref_domain=yastatic.net&showAutoLoginModal=1) - работает это "из коробки" без каких либо драйверов и реализуется за 10 минут с перерывом на чай :), но само собой такой способ на ТСД "не айс", на ТСД есть физические кнопки которые включают лазер для считывания - вот мне и нужно было "считать лазером" ШК и передать его в 1С.
51 ОператорПК
 
25.09.25
18:36
(49) кстати!!!! этож Ваш код то тут https://fastcode.im/Templates/9801/ispolzovanie-v-mobilnom-prilozhenii-android-skanera-shtrixkodov-s-komponentoj-drajver1sustrojstvovvodanative-ot-1s может расскажите как у Вас то все взлетело??? у меня не работало считывание чисто на вашем слегка измененном коде по части загрузки драйвера (писал об этом в (0))...
52 Маленький Вопросик
 
25.09.25
18:44
(48) я работаю штатным iis

стандартно тоже опубликуется, но "лазер" не подхватится
53 ОператорПК
 
25.09.25
18:58
(52) если у меня перестанет что-то устраивать в текущей схеме работы, то ваша разработка из https://infostart.ru/1c/tools/2242904/ будет определенно первым кандидатом, для покупки бесценных знаний по настройке IIS для нужного мне механизма.
54 ProxyInspector
 
25.09.25
19:13
(51) Да это мой код. все взлетело и летает.На нескольких типах ТСД
55 ProxyInspector
 
25.09.25
19:15
А если вы хотите использовать Камеру вместо лазера, то вам никакие компоненты не нужны. В мобильном приложении есть свои методы. Но я не использовал их.
56 ОператорПК
 
25.09.25
19:19
(54)+(55) может быть у Вас секрет такой же как у (52) вы в качестве web сервера используете iis с хитрыми настройками а не Apache? камеру я разумеется использовать не хочу
57 ProxyInspector
 
25.09.25
19:24
(50) "считать лазером" ШК и передать его в 1С
   1С вы называете Мобильное приложение?
  Тогда вам нужна компонента от 1С.
  Если у вас компонента установилась, а событие не попадает, то вам надо смотреть настройки сканера ТСД. Для разных ТСД в разных местах настраивается.
   Вам надо настроить ТСД, так чтобы он генерировал BROADCАST сообщение с ожидаемыми компонентой "Intent action" и "Intent string extra" Больше там ничего нет.
58 ОператорПК
 
25.09.25
19:27
(57) 1С у меня "мобильный клиент".
59 ProxyInspector
 
25.09.25
19:27
А при чем здесь IIS? А меня конечно Apach. Там наверно важно в каком режиме у вас работает Мобильное приложение. Мое мобильное приложение ничего не знает об IIS
60 ProxyInspector
 
25.09.25
19:31
Наверно что "Мобильный клиент" что "Мобильное приложение" большой разницы не имеет.
  Если вы установили компоненту от 1С. И вызвали метод ПолучитьПараметры()

ПараметрыКомпонентыXML = "";                        // Получаем XML документ описывающий возможные параметры Компоненты
        глСканер.ПолучитьПараметры(ПараметрыКомпонентыXML);  

И вам вернулся разумный текст XML. То дальше вам надо копать в сторону настройки ТСД
61 ProxyInspector
 
25.09.25
19:33
IIS - это зло.
62 ОператорПК
 
25.09.25
19:35
(60) ну я на счет ПараметрыКомпонентыXML не в курсе был... параметры устанавливал как у Вас в коде было типа:глСканер.УстановитьПараметр("Prefix"            , -1);                    // NONE
63 ОператорПК
 
25.09.25
19:35
(61) ну коллега из (52) так не считает например :)
64 ProxyInspector
 
25.09.25
19:37
ПолучитьПараметры() возвращает вам описание доступных методов на компоненте от 1С
65 ProxyInspector
 
25.09.25
19:39
Там как раз и прописаны возможные параметры.
Плюс эти параметры описаны на сайте 1С
66 ОператорПК
 
25.09.25
19:40
(57)+    Тогда вам нужна компонента от 1С. - разумеется компонента из макета "Драйвер1СУстройстваВводаNative" есть (об этом я писал еще в (0) что она есть и вполне себе "стартует") итенты разумеется были настроены в коде (ваша процедура Процедура ПодключитьСканерМобильноеПриложение()) точно такие же как были на устройстве. но меня смущают другие параметры типа "глСканер.УстановитьПараметр("Prefix"            , -1);                    // NONE"
на сколько они Важны в коде? если что-то не дописал или не так написал могло это как раз повлиять на то что ШК не передавался?
67 ProxyInspector
 
25.09.25
19:41
Если у вас одна база то IIS может и пойдет. А если десятки баз, то нет.