Мобильная платформа. Косяки работы с интерфейсом

24.10.19

Разработка - Работа с интерфейсом

Думаю, каждый, кто хоть немного акцентировался на работе интерфейса на мобилке, сталкивался с проблемами с управлением элементами формы. О них и предлагаю поговорить.

Скачать исходный код

Наименование Файл Версия Размер
Мобильная платформа. Косяки работы с интерфейсом:
.epf 8,23Kb
4
.epf 8,23Kb 4 Скачать

Доброго времени суток, уважаемые жители Infostart’а!

У меня появилась возможность еще немного поковыряться с мобильной платформой, и появились некоторые уточняющие выводы о работе интерфейса 1С на мобильной платформе.

Думаю, каждый, кто хоть немного акцентировался на работе интерфейса на мобилке, сталкивался с проблемами, такими как:

  • Управление фокусом ввода
  • Управление выделением текста в полях ввода
  • Программное начало редактирования в поле ввода

Наверняка, есть и прочие проблемы, но для меня эти три являются актуальными в рамках решения текущих задач.

Как эти проблемы проявляются? Да очень просто: вы вызываете метод, допустим, «НачатьРедактированиеЭлемента()», а ничего не происходит. Ну или «ЭтаФорма.ТекущийЭлемент.УстановитьГраницыВыделения(…)», с тем же результатом…

В общем, я уже писал статейку по моим первым опытам борьбы с этими проблемами, вот она: //infostart.ru/public/969675/. А сегодня хочу дополнить эту статью новыми наблюдениями и выводами.

Не буду рассусоливать, скажу сразу свои предположения: отрисовка интерфейса в мобильной платформе производится отдельным потоком/процессом, и обмен данными между этим процессом и основным процессом приложения, во-первых, асинхронный, и, во-вторых, занимает довольно значительное время. А такие функции, как «НачатьРедактированиеЭлемента()» исполняются именно тем процессом, который отвечает за интерфейс.

Как это проверить? Запустите на мобильном устройстве (или в виртуальной машине) приложение в режиме отладки, и остановитесь внутри обработчика события «ИзменениеТекстаРедактирования», и вы получите довольно интересный эффект: экран устройства потемнеет, загрузится кружочек ожидания, отладчик покажет, что код не исполняется, ожидая ваших команд, но(!) в этот момент вы можете спокойно продолжать редактировать текст в поле ввода! Не поленитесь повторить этот эксперимент.

Какие выводы можно сделать?

При программном управлении элементами интерфейса, нужно учитывать эту особенность, и давать время системе, чтобы она передала данные элементу управления, чтобы потом этот элемент управления смог с этими данными работать.

Допустим, нам нужно при вводе в поле ввода отсеивать недопустимые символы, и мы делаем это в событии «ИзменениеТекстаРедактирования». Радостно удаляем из входящего параметра «Текст» ненужный мусор, присваиваем этот текст переменной, связанной с полем ввода, вызываем метод поля ввода «ОбновитьТекстРедактирования()» и, зная, что программно введённый текст будет выделен, снимаем выделение «ЭтаФорма.ТекущийЭлемент.УстановитьГраницыВыделения(ПозицияОкончания, ПозицияОкончания)».

Запускаем приложение, и получаем бредовое поведение системы: выделение текста в поле ввода не снимается. А происходит это по тому, что процесс приложения выкладывает новый текст для элемента ввода, а процесс, отрисовывающий интерфейс, выполняя команду «УстановитьГраницыВыделения», этот текст еще не получил, а чуть позже, получая этот текст, уже не выполняет команду установки границ выделения, а просто выделяет весь программно установленный текст.

Так же, экспериментальным путём выяснилось, то некоторые команды, исполняющиеся на стороне интерфейса, требуют разведения по времени между собой. Так, снятие выделения текста нужно производить с небольшим временным отступом после того, как элемент вошел в режим редактирования, иначе то же не всегда срабатывает.

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

Кому тема небезразлична, присоединяйтесь к обсуждению. Если вдруг кто-то придумал, как эти проблемы обойти более эффективно, то буду благодарен!

PS: приложенная обработка написана на мобильной платформе версии 8.3.13.45, так же проверялась на версии 8.3.15.62.

Мобильная платформа НачатьРедактированиеЭлемента УстановитьГраницыВыделения

См. также

"Штрихкод-информер" - мобильный ТСД и прайс-чекер в смартфоне

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

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

2880 руб.

03.12.2018    55846    166    102    

163

SALE! 25%

Что нам стоит бота построить? Нарисуем - будет жить! Графический конструктор телеграм-ботов/Telegram

Мобильная разработка Мессенджеры и боты Платформа 1С v8.3 Платные (руб)

Теперь создать telegram-бота - элементарно. Достаточно просто нарисовать блок-схему телеграм-бота, и он сразу заработает. Это возможно при использовании Графического конструктора телеграм-ботов. Это единственный конструктор ботов для telegram, чье качество и функционал подтверждены фирмой 1С, есть сертификат 1С:Совместимо. Расширение в интерактивном режиме, с помощью блок-схем, позволяет с минимальными трудозатратами создать телеграм-ботов в любой конфигурации, работающей на платформе «1С:Предприятие 8.3».

13200 9900 руб.

27.12.2021    34551    87    161    

183

Программа "Мобильный ТСД сканер для 1С" - приложение для телефона для инвентаризации и сбора штрихкодов для iOS и Android

Сканер штрих-кода Терминал сбора данных Мобильная разработка Монитор заказов Оптовая торговля Розничная торговля Ценообразование, анализ цен Платформа 1С v8.3 Мобильная платформа 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. Полнофункциональный демо-доступ для своей конфигурации можно запросить в настройках мобильного приложения - все необходимое придет на почту автоматически.

2000 руб.

22.04.2019    93044    532    186    

302

Склад 15 ВЕЩЕВОЙ - автоматизация складов с маркированным товаром

Логистика, склад и ТМЦ Мобильная разработка Платформа 1С v8.3 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Программное обеспечение для автоматизации складских операций со встроенными функциями работы с маркированной продукцией. Предназначено для автоматизации всех товароучетных операций на складах, обычных и адресного хранения. «Склад 15 ВЕЩЕВОЙ» объединил в себе несколько товарных групп маркированного товара (ОБУВЬ, ОДЕЖДА, ШИНЫ, ПАРФЮМ, БАДы, ЮВЕЛИРНЫЕ ИЗДЕЛИЯ), которые чаще всего встречаются в складской логистике вместе.

33550 руб.

02.06.2023    3149    2    0    

0

Магазин 15 - приемка товара по штрихкодам или инвентаризация в торговом зале

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

Специализированное программное обеспечение для мобильных устройств со встроенным сканером штрихкодов. Позволяет быстро автоматизировать, оптимизировать рабочие места и бизнес процессы по учету товара в магазине. Например, приемку товара по штрихкодам или инвентаризацию прямо в торговом зале.

12950 руб.

30.05.2023    3557    2    0    

4

Управление дашбордами

Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

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

2400 руб.

29.06.2020    17079    23    4    

37

Мобильная торговля для Android

Розничная торговля WEB-интеграция Мобильная разработка Мобильная платформа Управленческий учет Платные (руб)

Сис­те­ма поддержки мо­биль­ной тор­гов­ли это про­грам­м­ный ком­плекс, раз­ра­бо­тан­ный для ав­то­ма­ти­за­ции ра­бо­ты тор­го­вых пред­ста­ви­те­лей, за­ни­ма­ю­щих­ся сбо­ром за­ка­зов на смартфонах в точ­ках роз­нич­ной тор­гов­ли, про­да­жей то­ва­ра с ко­лес и мер­чен­дай­зин­гом.

4800 руб.

19.02.2008    42384    24    24    

40
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. dctvghbdtn 27.12.19 13:23 Сейчас в теме
А как решается вопрос с размытыми иконками в мобильном приложении 1С?
2. Crazy_Max 82 29.12.19 10:18 Сейчас в теме
(1) Ни разу не сталкивался с такой проблемой в мобильном приложении.
Возможно, по тому, что сразу для каждой картинки создавал набор вариантов, а в нём - картинку своего размера под каждый вариант разрешения.
В прикреплённом файле - скрин.
Прикрепленные файлы:
Оставьте свое сообщение