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

24.10.19

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Мобильная платформа. Косяки работы с интерфейсом:
.epf 8,23Kb
4
4 Скачать (1 SM) Купить за 1 850 руб.

Доброго времени суток, уважаемые жители 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.х Управленческий учет Платные (руб)

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

3000 руб.

03.12.2018    62174    212    103    

180

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

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

13200 руб.

27.12.2021    41781    118    167    

213

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

336

Работа с интерфейсом Анализ учета Мониторинг Платформа 1С v8.3 8.3.14 1C:Бухгалтерия 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Платные (руб)

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

27.03.2025    1168    3    developer118    7    

8

Работа с интерфейсом Системный администратор Программист Платформа 1С v8.3 Управляемые формы 1C:Бухгалтерия Платные (руб)

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

6000 руб.

14.01.2016    56527    19    25    

45

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

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

6000 руб.

16.01.2015    64708    45    60    

83

Работа с интерфейсом Программист Платформа 1С v8.3 1C:Бухгалтерия 1С:ERP Управление предприятием 2 Платные (руб)

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

2400 руб.

29.06.2020    20558    30    6    

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