При переходе от классической настольной разработки на платформе 1С к созданию мобильных решений у многих разработчиков возникает логичный вопрос: существует ли специализированная «Библиотека стандартных подсистем для мобильных приложений»? В обычной разработке БСП берет на себя огромное количество рутинных задач — от механизмов обмена до работы с файлами. Выясним причину, почему для мобильной среды ситуация выглядит иначе, и разберем, какие встроенные инструменты и готовые библиотеки предоставляет платформа 1С.
Специализированной конфигурации под названием «БСП для мобильных приложений» от фирмы 1С не существует. Платформа 1С изначально проектировалась с ориентацией на кроссплатформенность, поэтому львиная доля мобильных функций реализована на уровне самого движка платформы. Обобщить все мобильные сценарии в одну тяжелую библиотеку сложно из-за специфики мобильных ОС: частых изменений требований безопасности Google и Apple, нюансов интерфейсов смартфонов и ограничений фоновых процессов.
Тем не менее, для работы с торговым оборудованием фирма 1С выпустила специализированную библиотеку — «1С:Библиотека подключаемого оборудования для мобильных приложений» (мБПО). Она предоставляет готовые NativeAPI-драйверы и интерфейсы для взаимодействия со сканерами штрихкодов, камерами, мобильными фискальными регистраторами и эквайринговыми терминалами непосредственно из мобильного приложения.
Для понимания того, как применять БСП на смартфонах и планшетах, проанализируем разницу между двумя ключевыми технологиями:
#Если МобильныйКлиент или программная проверка через функцию ОбщегоНазначенияКлиент.ЭтоМобильныйКлиент(), позволяющие гибко подстраивать формы под компактные экраны.Многие функции, для которых в десктопной среде требовались бы подсистемы БСП, в мобильной платформе 1С реализованы прямо «из коробки» через встроенный язык. Рассмотрим подробнее работу с мультимедиа и геопозицией.
Посмотрим на пример работы с камерой устройства через глобальный объект СредстваМультимедиа. Перед выполнением снимка обязательно проверяется поддержка оборудования:
Если СредстваМультимедиа.ПоддерживаетсяФотоснимок() Тогда
ПараметрыСнимка = Новый ПараметрыСнимка;
ПараметрыСнимка.Качество = 80;
СредстваМультимедиа.СделатьФотоснимок(ПараметрыСнимка);
КонецЕсли;
Разберем по шагам взаимодействие со службами геолокации. Мобильная платформа предоставляет специализированный объект СредстваГеопозиционирования, который позволяет не только получать текущие координаты, но и подписываться на их изменение в реальном времени:
Если СредстваГеопозиционирования.ИспользованиеДанныхГеопозиционированияВключено() Тогда
СредстваГеопозиционирования.ПодключитьОбработчикИзмененияМестоположения("ОбработкаИзмененияКоординат", 10, 5);
КонецЕсли;
Важно помнить: любые вызовы функций мультимедиа, аудиозаписи, геолокации или телефонии требуют выдачи разрешений пользователем во время выполнения (Runtime Permissions). Разработчик обязан предусмотреть обработку отказа в предоставлении прав доступа.
В классической БСП подсистема обмена данными опирается на громоздкие планы обмена, сериализацию XML и форматы EnterpriseData. В условиях мобильных устройств использование таких механизмов нерационально: они перегружают оперативную память и расходуют заряд батареи.
Рассмотрим проверенные решения для построения обмена между мобильным приложением и центральной базой:
HTTPСоединение, HTTPЗапрос, ЗаписьJSON и ЧтениеJSON. Это легковесный и быстрый протокол, минимально нагружающий сеть и процессор смартфона.Таким образом, отдельной мобильной БСП не требуется: задачи работы с датчиками и «железом» закрываются встроенными системными объектами платформы 1С, интеграция с внешними торговыми устройствами решается через библиотеку мБПО, а обмен данными эффективно выстраивается через легкие HTTP-сервисы или механизмы автономного клиента.