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

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С v8.3 1С:Конвертация данных Платные (руб)

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

13200 руб.

27.12.2021    38196    108    161    

201

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

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

3000 руб.

03.12.2018    59291    192    103    

172

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

321

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

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

3450 руб.

28.04.2023    9469    15    0    

9

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

Мобильное приложение и конфигурация 1С для автоматической торговли на бирже через API Тинькофф банка. Достаточно задать настройки, нажать «Пуск», и робот сам торгует ежедневно.

7000 руб.

25.05.2022    4644    1    0    

6

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

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

6000 руб.

16.01.2015    62986    44    59    

82

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

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

2400 руб.

29.06.2020    18855    26    6    

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