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

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    55159    139    102    

162

SALE! 25%

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

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

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

13200 9900 руб.

27.12.2021    33901    82    159    

177

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

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

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

2000 руб.

22.04.2019    92485    521    186    

298

Богатый редактор картинок, хранимых в базе, с возможностью РИСОВАНИЯ. Редактор внешних файлов картинок. Объект, расширяющий возможности работы с картинками из встроенного языка (Три в одном) + Обработка «Стандартизация картинок»

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

Обработка предназначена для редактирования картинок в режиме «Предприятие», с возможностью РИСОВАТЬ на них. Поддерживается работа как в обычных формах (толстый клиент) так и на управляемых формах (тонкий клиент). Обработка позволяет редактировать как картинки, хранимые в базе, так и графические файлы с диска на файловой системе. Помимо базовых функций (изменение размеров, преобразование формата, обрезание картинки, повороты и т.п.) – редактор имеет богатый набор инструментов для рисования. Доступна функция вставки изображения из буфера обмена. Также обработка может быть использована из встроенного языка как объект для редактирования картинок. Объект может быть использован: на стороне клиента, на стороне сервера, из внешнего соединения. Данная обработка будет особенно полезна тем, кто вносит картинки в базу (изображения номенклатуры, фотографии физических лиц и т.п.). Функционал реализуется с использованием JavaScript и бесплатного ПО ImageMagick (без использования внешних компонент).

6000 руб.

16.01.2015    62022    43    59    

81

Магазин 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    3482    2    0    

4

[Расширения] Динамическое управление видимостью и доступностью элементов форм (УФ) (8.3.6+)

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

Механизм «Динамическое управление доступом к элементам форм объектов 1С8» предназначен для обеспечения возможности оперативного управления видимостью и доступностью элементов форм документов и справочников продуктов фирмы «1С» «1С:Предприятие 8». Решение универсальное, встраивается в любую конфигурацию с минимальными доработками, что позволяет без проблем обновлять типовые решения.

5000 руб.

14.01.2016    54652    16    21    

42

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

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

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

2400 руб.

29.06.2020    16875    21    4    

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