Разработка мобильных решений на платформе 1С:Предприятие часто сталкивается с аппаратными и программными ограничениями экосистемы Apple. При работе через мобильный веб-клиент в браузере Safari на iOS пользователи iPhone и iPad сталкиваются с неприятной особенностью: вместо открытия элемента по двойному тапу происходит стандартное системное масштабирование (zoom) страницы. Одиночный же клик лишь выделяет строку в таблице. В итоге пользователь может просматривать списки, но открыть конкретный документ или элемент справочника без физической клавиатуры становится невозможно.
В этой статье мы подробно разберем несколько практических способов решения проблемы обработки выбора в веб-клиенте, а также рассмотрим современные альтернативные методы сборки и установки полноценного мобильного клиента 1С на iOS без покупки дорогостоящей лицензии разработчика Apple Developer Enterprise Program и использования компьютеров Mac.
Проанализируем базовые возможности платформы 1С для оптимизации интерфейса под сенсорные экраны. Чтобы избавить пользователя от необходимости совершать двойной клик, мы можем перенастроить поведение табличной части или динамического списка при одиночном клике.
Для этого выполним следующие действия:
ИспользованиеТекущейСтроки.Выбор (в некоторых версиях платформы значение Авто на мобильных устройствах автоматически трактуется как выбор).Благодаря этой настройке, одиночное нажатие (тап) на строку таблицы на мобильном устройстве будет сразу инициировать событие выбора, что приведет к открытию формы элемента, минуя необходимость двойного клика.
Если автоматический выбор по одиночному клику неудобен для десктопных пользователей, мы можем создать альтернативный вариант интерфейса специально для мобильных сотрудников. Рассмотрим по шагам, как реализовать кнопку открытия текущей строки:
ОткрытьЭлемент.ИспользованиеТекущейСтроки в значение Использовать.
&НаКлиенте
Процедура ОткрытьЭлемент(Команда)
ТекущаяСтрока = Элементы.Список.ТекущаяСтрока;
Если ЗначениеЗаполнено(ТекущаяСтрока) Тогда
ПоказатьЗначение(, ТекущаяСтрока);
КонецЕсли;
КонецПроцедуры
При таком подходе пользователь мобильного веб-клиента сначала выделяет нужную строку одиночным нажатием, а затем нажимает на кнопку командной панели для открытия элемента. Это надежный и стабильный сценарий, не зависящий от жестов браузера.
Выясним причину, почему Safari перехватывает двойной тап. Это стандартный жест масштабирования браузера. Чтобы обойти это поведение на уровне операционной системы iOS, мы можем запустить веб-клиент 1С как прогрессивное веб-приложение (PWA).
Для этого пользователю достаточно выполнить простую инструкцию:
После этого на рабочем столе устройства появится иконка 1С. При запуске базы через эту иконку веб-клиент откроется в полноэкранном режиме без адресной строки Safari. В режиме PWA жесты масштабирования обрабатываются операционной системой иначе, что минимизирует ложные срабатывания зума при двойном тапе и делает работу в системе максимально приближенной к нативному приложению.
Если работа в веб-клиенте все же кажется компромиссным решением, рассмотрим возможность установки полноценного мобильного клиента. Ранее для сборки приложения под iOS обязательно требовался компьютер Mac с установленной средой Xcode. Начиная с современных версий платформы 1С:Предприятие, эта проблема решена разработчиками фирмы «1С».
Мы можем воспользоваться официальным «Сервисом сборки и публикации мобильных приложений»:
.ipa.Самым большим препятствием для внедрения мобильного клиента на iOS является стоимость лицензии Apple Developer Enterprise Program ($299 в год) для закрытого распространения внутри компании. Однако для небольших команд (до 5–10 устройств) мы можем применить методы альтернативной установки (Sideloading) с помощью утилит AltStore или Sideloadly.
Рассмотрим алгоритм действий:
.ipa файл мобильного клиента 1С.Важное ограничение: При использовании бесплатного Apple ID приложение будет работать ровно 7 дней, после чего его лицензия истечет. Чтобы обойти это ограничение, утилита AltStore использует фоновое обновление по локальной Wi-Fi сети. Если компьютер с запущенным сервером AltServer и iPhone находятся в одной сети, приложение будет автоматически переподписываться и работать без ограничений по времени.