Как выбрать технологию для мобильной разработки на 1С и решить типичные проблемы интерфейса и оборудования?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

Разработка для мобильных устройств в экосистеме 1С значительно отличается от классического десктопного программирования. Перед разработчиком встает выбор между тремя основными технологиями: Мобильное приложение (МП), Мобильный клиент (МК) и Мобильный клиент с автономным режимом (МКА). Каждый из этих вариантов имеет свои трудозатраты, особенности лицензирования и нюансы работы с оборудованием. В этой статье мы подробно разберем, как сделать правильный выбор, и рассмотрим практические приемы настройки интерфейса под мобильные дисплеи.

Сравнение технологий: Мобильное приложение vs Мобильный клиент

Рассмотрим основные концепции, чтобы понять, какая архитектура лучше подходит для ваших задач:

Проанализируем трудозатраты: быстрее всего создается Мобильный клиент, так как данные уже под рукой. Если же требуется работа на складе с «мертвыми зонами» Wi-Fi, придется смотреть в сторону МП или МКА.

Практические приемы разработки мобильного интерфейса

Разберем конкретные проблемы, с которыми сталкиваются программисты при верстке форм под маленькие экраны, и способы их решения, предложенные опытными разработчиками:

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

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


// В обработчике ПриАктивизацииСтроки для дерева
&НаКлиенте
Процедура СписокПриАктивизацииСтроки(Элемент)
    ТекущиеДанные = Элемент.ТекущиеДанные;
    Если ТекущиеДанные <> Неопределено Тогда
        // Управление разворотом узла через текущего родителя
        Элемент.ТекущийРодитель = ТекущиеДанные.Ссылка;
    КонецЕсли;
КонецПроцедуры

2. Эмуляция выпадающих списков и диалогов
Штатный выбор из списка на мобильных устройствах часто открывается на весь экран, что раздражает пользователя. Чтобы сделать выбор «по месту», можно использовать декорации (надписи), размещенные в свертываемых группах. Это создаст эффект выпадающего меню без открытия новых окон.

3. Программное управление фокусом и вводом
Чтобы при открытии формы пользователь сразу мог сканировать или вводить данные, необходимо программно установить фокус:


&НаКлиенте
Процедура ПриОткрытии(Отказ)
    ЭтаФорма.ТекущийЭлемент = Элементы.ПольВводаШтрихкода;
    ЭтаФорма.НачатьРедактированиеЭлемента();
КонецПроцедуры

Работа с торговым оборудованием и ТСД

Выясним причину, по которой на некоторых устройствах (например, дешевых китайских ТСД) не работают кнопки или сканер. Проблема часто кроется в методе передачи данных. Есть два основных пути:

  1. Эмуляция клавиатуры: Сканер «вбивает» символы в активное поле. Это ненадежно: если курсор не в поле, данные потеряются. Кроме того, спецсимволы (например, GS1 для маркировки) могут вызывать падение драйвера клавиатуры.
  2. Широковещательные сообщения (Intent): Это правильный путь для Android. ТСД генерирует событие в системе, а 1С (через внешнюю компоненту или встроенные средства БПО) его «ловит».

Если аппаратные кнопки не отрабатывают штатно, рассмотрите использование Внешних компонент (ВК). Они позволяют обращаться к нативному API Android и перехватывать нажатия функциональных клавиш, которые 1С «из коробки» может не видеть.

Дополнительные возможности современной платформы

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

Сборка мобильного клиента: Вы можете собрать индивидуальный APK-файл, где адрес сервера уже «зашит». Пользователю не нужно вводить настройки — он просто скачивает приложение вашего предприятия с иконкой компании и сразу начинает работу.

Работа в фоне и геозоны: Мобильная 1С теперь умеет собирать координаты в фоновом режиме. Это позволяет реализовать автоматическое прибытие курьера на точку. Достаточно использовать механизмы СредстваГеолокации.

Биометрия: Для защиты данных на ТСД или личных смартфонах сотрудников используйте СредстваБиометрическойАутентификации. Это позволит входить в систему по отпечатку пальца или FaceID, что гораздо быстрее ввода пароля на маленькой экранной клавиатуре.

Оптимизация и производительность

Проанализируем ситуацию с передачей данных. Мобильные сети нестабильны, поэтому для обмена данными (особенно в МП) рекомендуется использовать сжатие. Рассмотрим пример подготовки данных для отправки через HTTP:


// Пример упаковки данных перед отправкой
ДанныеДляОтправки = Новый ХранилищеЗначения(СтруктураДанных, Новый СжатиеДанных(9));
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку();
ЗаписатьJSON(ЗаписьJSON, ДанныеДляОтправки.Получить());
СтрокаЗапроса = ЗаписьJSON.Закрыть();

Важный совет по дизайну: Используйте векторные иконки в формате SVG. Они не теряют качества при масштабировании на разных экранах (от маленького ТСД до 10-дюймового планшета) и занимают гораздо меньше места в сборке, чем набор PNG-картинок.

Заключение

Выбор между Мобильным приложением и Мобильным клиентом должен основываться на качестве связи на объекте. Однако, какую бы технологию вы ни выбрали, основное время будет затрачено на UI/UX. Помните, что складской работник не должен «искать» кнопки — интерфейс должен быть максимально простым, с крупными элементами и автоматическим переходом фокуса. Использование БПО (Библиотеки подключаемого оборудования) для мобильной платформы значительно упростит интеграцию со сканерами и принтерами этикеток, избавляя вас от необходимости писать собственные драйверы.

← На главную