Разработка мобильных приложений на платформе 1С:Предприятие 8 значительно эволюционировала с 2016 года. Если раньше разработчики были ограничены сложными схемами с промежуточными базами и планами обмена, то сегодня арсенал инструментов стал гораздо шире. В этой статье мы проанализируем текущие возможности платформы, разберем архитектурные решения и выясним, какой метод обмена данными лучше выбрать в зависимости от ваших задач.
Рассмотрим наиболее простой вариант, который появился в версии 8.3.12. Мобильный клиент — это не отдельное приложение в привычном понимании, а тонкий клиент для мобильного устройства. Он напрямую подключается к вашей центральной базе (ЦБ) и отображает формы «на лету».
Проанализируем основные преимущества этого подхода:
Однако, как справедливо замечено в обсуждении, у мобильного клиента есть критический минус: он не работает без стабильного интернет-соединения. Если ваш склад находится в подвале или торговый представитель выезжает в зоны с плохим покрытием, этот вариант не подойдет в чистом виде.
Выясним, как решить проблему отсутствия интернета, не уходя в сложную разработку на мобильной платформе. Начиная с версии 8.3.18, 1С представила Мобильный клиент с автономным режимом. Это гибридное решение, которое позволяет использовать преимущества мобильного клиента, но при этом сохранять работоспособность в офлайне.
Разберем по шагам, как это функционирует:
Это значительно упрощает жизнь разработчику, так как большая часть логики обмена скрыта «под капотом» системы.
Если вам нужен полный контроль над процессом или специфическая логика, которую сложно реализовать в рамках стандартного мобильного клиента, рассмотрим вариант с использованием мобильной платформы и кастомного обмена. Современный стандарт здесь — использование HTTP-сервисов и формата JSON.
Посмотрим на пример логики такого обмена. Вместо тяжеловесного XML, который потребляет много трафика и ресурсов процессора, мы используем легкий JSON. Рассмотрим пример функции для отправки данных из мобильного приложения:
// Пример формирования JSON для отправки данных
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку();
ДанныеДляОтправки = Новый Структура("Артикул, Количество", "00001", 10);
ЗаписатьJSON(ЗаписьJSON, ДанныеДляОтправки);
СтрокаJSON = ЗаписьJSON.Закрыть();
// Отправка через HTTP-соединение
Соединение = Новый HTTPСоединение("myserver.ru", , "user", "pass");
Запрос = Новый HTTPЗапрос("/hs/mobile_exchange/v1/sync");
Запрос.УстановитьТелоИзСтроки(СтрокаJSON);
Ответ = Соединение.ОтправитьДляОбработки(Запрос);
Проанализируем ситуацию с промежуточными базами. В современных реалиях использование промежуточной базы (как это практиковалось в 2016 году) считается избыточным. Прямое обращение мобильного устройства к опубликованному HTTP-сервису основной базы через защищенное HTTPS-соединение является безопасным и производительным решением.
Для крупных проектов с тысячами мобильных устройств рекомендуется использовать Планы обмена совместно с механизмами Библиотеки стандартных подсистем (БСП). БСП содержит подсистему «Обмен данными», которая уже адаптирована под мобильные устройства.
Что это дает разработчику:
Часто возникает вопрос: может ли сервер заставить мобильное устройство начать обмен? Ответ — да. Для этого используются Push-уведомления (через Firebase Cloud Messaging или Apple Push Notification service).
Рассмотрим этот механизм подробнее:
Это позволяет реализовать «реактивный» интерфейс, когда данные на смартфоне обновляются сразу после их изменения в центральном офисе.
Не стоит забывать, что мобильная разработка — это не только обмен данными, но и специфический UI. Как отмечено в обсуждении, формы мобильного клиента нужно разрабатывать отдельно. Вы не сможете просто открыть форму списка с 20 колонками на экране смартфона. Необходимо использовать:
Выясним, какой путь выбрать именно вам:
Современная платформа 1С предоставляет все необходимые инструменты для создания качественных мобильных решений. Главное — правильно оценить требования к автономности и сложности бизнес-логики на стороне клиента еще на этапе проектирования системы.