Фоновый сервис событий в Simple UI. Релиз Июнь 2021

15.06.21

Разработка - Мобильная разработка

В новом релизе появился постоянно висящий в памяти сервис для обработки внешних событий – штрихкодов, голосового ввода, сообщений от других программ и внутренних процессов. Который может управлять программой поверх стандартных процессов – что то спрашивать голосом, что то озвучивать(ассистент), показывать диалоги, запускать процессы и экраны, отправлять управляющие команды. С помощью этого можно получить многоплановый интерфейс и более удобное взаимодействие с пользователем не только через экран и ввод, но и с помощью событий голосового ввода и других средств взаимодействия. Эта статья является дополнением к основной статье по Simple UI: https://infostart.ru/public/1153616/

В конфигурации можно поставить галку и фоновый сервис будет запускать вместе с программой. Это постоянно висящий процесс, который работает даже когда программа закрыта. Можно настроить его выключение при полном завершении основного приложения либо он может работать даже если основное приложение выгружено из памяти (тогда завершить его можно вручную в шторке уведомлений). Надо сказать что в платформе и так уже есть фоновые сервисы – по расписанию и асинхронное выполнение скриптов питона, но технологически это другие сервисы и функционал у них другой. Это – неубиваемый foreground service к нему у Андроида особое отношение. Кроме того обработчики в этом сервисе и на 1С и на Python, а не только на Python.


Сервис предназначен для приема событий извне или внутри программы и выполнения действий во всей области приложения.

События которые регистрирует сервис:

  1.  события штрихкода Bluetooth в режиме SPP, сканер ТСД через подписку на интент (не HID)
  2.  Голосовой ввод команд в фоне
  3.  Подписка на сообщения от любой другой программы. Например от сканера меток или какого то сервиса.
  4.  Любая команда через встроенный в приложение веб сервис. 
  5.  Любая команда из Экрана или ActiveCV, события из других обработчиков например по расписанию

Виды управления, доступные в обработчике сервиса:

 

  1.  исполнить общую команду без контекста : озвучка текста, звук, тост и т.д. См. «Общие команды» . Все что без контекста будет исполнено даже если приложение закрыто, заснуло. Например Переменные.Вставить(“toast”,”Привет мир”) выведет это сообщение поверх других программ
  2.  диалог поверх любых окон в программе. В любом режиме (во время работы с процессом, в Active CV, просто в меню) будет выведен кастомный модальный диалог, результат нажатия вернется в сервис «onResultPositive», «onResultNegative». Работа с диалогом стандартная. 
  3. запуск голосового ассистента. См. далее Голосовой ассистент.
  4. запустить процесс и экран. Запускает любой процесс и любой экран процесса командой "ShowProcessScreen" в значении надо указать JSON с процессом и экраном. Например так: Переменные.Вставить("ShowProcessScreen","{""process"":""Некий процесс"",""screen"":""Экран 1""}");
  5. сгенерировать событие ввода для экрана или ActiveCV или например для плиточного главного экрана. Т.е. можно передать команду и управление действующему процессу.


Фоновый голосовой ассистент


Это не совсем такой ассистент как Гугл или Алиса, в том плане что активируется он не по голосовой команде, а  по событиям от сервиса – например сканированию штрихкода или каким то другим. Т.е. он слушает микрофон в фоне но после того как получил команду, а не постоянно прослушивает микрофон для активации. 


Основное назначение фонового голосового ввода – освободить руки в моменты, где программа может что то спросить и получить ответ – спросить «да/нет» на заданный вопрос (например, «Завершить приемку?»), спросить количество, спросить готовность начать процесс и т.д. Это несложные для системы распознавания тексты, которые обрабатываются потом в вашем коде 1С или Python. С помощью фонового сервиса создается многоплановый интерфейс – на первом плане экраны или ActiveCV, фоном озвучка и чтение речи и еще поверх могут быть выведены диалоговые элементы. Это локальные вставки голоса и распознавания речи в тех местах где это уместно, а не классический pick-by-voice где голосовой интерфейс полностью заменяет визуальный интерфейс. Например вы можете сказать «покажи план-факт» и она откроет экран «план-факта» на устройстве а не будет перечислять голосом сколько еще осталось сканировать. Т.е. эти вставки дополняют интерфейс, делают его более удобным.  


Управление процессами и экранами


Из фонового сервиса можно запустить любой процесс конфигурации и открыть в нем любой экран с помощью команды ShowProcessScreen. Например можно отсканировать документ и начать работать с ним ничего ен нажимая в меню, отсканировать метку ворот и начать приемку, отсканировать этикетку груза и начать процесс работы с ним. Ну и т.д. Голосовой ассистент может показывать экраны. Сканирование RFID может запустить процесс на ТСД. В общем применений много.


Генерация событий для процессов


В обработчике сервиса можно генерировать события ввода для текущих экранов или шагов Active CV т.е. передавать управление. Например в видео результат распознавания голоса генериует событие для ActiveCV (аналогично можно сделать для экрана) и оно обрабатывается уже в обработчике ввода там. 
Кстати можно генерировать события обновления для плиток главного меню. Можно сделать например конфу с главным меню в виде плиток с количеством отсканированных объектов и обновлять счетчики на плитках со сканера вообще не запуская экраны. Т.е. ходить, сканировать и на плитках будет выводиться «отсканировано столько то и столько то». 


Диалоги в любом месте программы в любое время


Можно получив событие извне вывести модальный диалог (а он полностью переопределяемый – туда можно натолкать все что угодно) поверх люого экрана программы – процесса, меню и active cv. Т.е. например можно вывести вопрос «Примешь задание такое то?»  или наоборот оповещение о том что коллективная сборка заказа подходит к концу.


Фоновый «общий модуль» с возможностью асинхронного выполнения и возврата коллбека отправителю

Ну и наконец можно выполнять длительные процессы и передать управление по их завершению или выполнять какие то иные действия. Всегда по рукой есть модуль в фоне в котором можно что то параллельно основному UI-потоку запустить при желании получив событие завершения.

 

Прочие дополнения в релизе

 

 

  • Теперь можно отключать верхний заголовок экрана. Задается на уровне экрана. Актуально для маленьких экранов.
  • В главном меню команды меню влезают в заголовок в зависимости от разрешения. Актуально для маленьких экранов
  • Можно переопределять шапку штрихкодов в ActiveCV – актуально для длинных штрихкодов. Например можно выводить только значащие символы или вообще свою метку. Делается через список "object_caption_list". Например Переменные.Вставить("object_caption_list","[{""object"":""4602193012608"",""caption"":""12608""}]");
  • Можно задавать списки ActiveCV не через «;» а через «>>>» - для случаев когда «;» встречается в штрих-коде
     

Вступайте в нашу телеграмм-группу Инфостарт

мобильная разработка Андроид SimpleUI

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Мобильная разработка Сканер штрих-кода Терминал сбора данных 1С:Предприятие 8 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Сбор заказов, инвентаризация, проверка ценников, просмотр полной информации об остатках и ценах со смартфона Онлайн - все это содержит в себе решение 1С "Штрихкод-информер" (штрих-код чекер). Отправка данных со смартфона выполняется либо напрямую в открытую форму документа, отсканировав QR-код, либо в общую корзину учетной системы, не подходя к компьютеру. Кассир или оператор сможет просмотреть список присланных данных и загрузить в любую форму, поддерживающую работу с ТСД. Для работы с мобильным приложением требуется опубликовать HTTP-сервис из поставляемого расширения.

3050 руб.

03.12.2018    71637    243    106    

189

Сканер штрих-кода Терминал сбора данных Мобильная разработка Монитор заказов Оптовая торговля Розничная торговля Ценообразование, анализ цен Программист Пользователь 1С:Предприятие 8 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Простой мобильный ТСД (терминал сбора данных) сканер для 1С для смартфонов на iOS и Android, не требующий сложных настроек и установки дополнительных программ. Обмен между Вашей 1С и мобильным приложением осуществляется через облачный сервис и расширение конфигурации. Работает с конфигурациями УТ 11, ERP, КА2, Розница 2, Розница 3, УНФ 1.6, УНФ 3.0. Полнофункциональный демо-доступ для своей конфигурации можно запросить в настройках мобильного приложения - все необходимое придет на почту автоматически. Решение предназначено для считывания штрихкодов, а не для их создания и печати.

3050 руб.

22.04.2019    122344    725    207    

384

Мобильная разработка Программист 1С 8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Абонемент ($m)

Эта подключаемая обработка для любой конфигурации 1С, позволяет отправить любой объект (и рекуррентно связанные с ним объекты) на устройства c NodaLogic, где они будут полнофункциональны и доступны офлайн, по ним можно вести переписку как со стороны чата в NodaLogic, так и со стороны 1С, заполнять данные и загрузить в 1С по мере надобности. Т.е. обработка содержит генератор UI/UX интерфейса NodaLogic и создает объекты для обмена. При этом не надо ни разбираться в NodaLogic вообще, ни иметь базу/сервер/решение на стороне NL – только учетка и мобильное устройство, а со стороны 1С достаточно галочками отметить, какие поля должны быть на формах. Все данные хранятся в ХранилищеОбщихНастроек, поэтому никакого расширения не нужно, сервера со стороны 1С для связи с устройствами тоже не нужно. Тестировалось на 1С:Предприятие 8.3 (8.3.27.1326), 1С:Комплексная автоматизация 2 (2.4.8.63)

1 стартмани

12.05.2026    938    5    informa1555    1    

13

Мобильная разработка Программист Бесплатно (free)

Мне нужен был высокопроизводительный язык для фронт-сайда, я его сделал, а потом подумал, а что, если сделать 1С-синтаксис? Вот что из этого вышло. Продолжение статьи https://infostart.ru/1c/articles/2614496/

12.03.2026    2047    informa1555    11    

14

Мобильная разработка Программист 1С 8.3 1С:Комплексная автоматизация 2.х 1С:КА Управленческий учет Абонемент ($m)

В этой статье простейший документ - ориентированный пример складского учета на клиент-серверной платформе NodaLogic с автономными мобильными рабочими местами. Это чисто скелетный пример как можно вынести часть учета во внешний контур. И расширение - модуль связи с 1С. Тестировалось на платформе 1С:Предприятие 8.3 (8.3.27.1326), 1С:Комплексная автоматизация 2 (2.4.8.63).

1 стартмани

13.02.2026    2780    informa1555    5    

26

Мобильная разработка 1С:Предприятие 8 1С:Управление торговлей 11 Оптовая торговля, дистрибуция, логистика Россия Платные (руб)

"МРМ:Маркировка" для работы с конфигурациями 1С - готовое решение, позволяющее быстро автоматизировать работу учетной системы 1С на ордерном и безордерном складе при работе как с товарами, подлежащими обязательной маркировке, так и с товарами, учет которых построен на базе линейных штрих-кодов. Решение поддерживает большинство распространенных складских документов, необходимых для работы кладовщику на терминале сбора данных. Для начинающих пользователей имеется подробная инструкция по работе с приложением в разрезе видов документов.

19000 руб.

24.06.2025    3537    26    0    

4

Мобильная разработка Программист 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х Абонемент ($m)

Товары (либо другие учетные объекты) могут быть промаркированы штрихкодами либо быть без штрихкодов, но с число-буквенным обозначением (артикулом, VIN-номером и т.д.). И та, и другая ситуация не проблема для SimpleUI. Но что делать, если нет ни того, ни другого? Вообще никакой маркировки. Как можно максимально ускорить работу с таким объектами? В статье показываю новые фичи релиза и готовые для встраивания поисковые комбайны на все случаи жизни. Дополнение к основной статье https://infostart.ru/1c/tools/1153616/

1 стартмани

14.04.2025    3714    9    informa1555    0    

17
Для отправки сообщения требуется регистрация/авторизация