Разработка под мобильные устройства на стеке 1С за последние годы претерпела значительные изменения. Часто у разработчиков и руководителей проектов возникает путаница: что выбрать для решения конкретной задачи — Мобильную платформу или Мобильный клиент? Этот выбор напрямую влияет не только на архитектуру приложения, но и на стоимость владения системой (лицензионную политику).
В рамках данной статьи мы проанализируем ключевые технологические различия этих подходов, разберем вопросы лицензирования, которые часто вызывают споры, и рассмотрим практические аспекты разработки мобильных решений, включая интеграцию с оборудованием и публикацию в магазинах приложений App Store и Google Play.
Для начала выясним причину существования двух разных технологий. Рассмотрим каждый вариант подробнее.
Мобильная платформа 1С — это технология, позволяющая создавать полностью автономные приложения. На мобильном устройстве разворачивается локальная база данных (SQLite), в которой хранятся данные и конфигурация. Обмен с «большой» базой 1С происходит через веб-сервисы или HTTP-сервисы. Этот вариант идеален для работы в условиях нестабильного интернета (например, для торговых представителей «в полях» или складских работников в зонах плохого покрытия Wi-Fi).
Мобильный клиент 1С — это тонкий клиент для мобильного устройства. Он не имеет собственной базы данных и работает напрямую с основной информационной базой в режиме реального времени. Интерфейс динамически адаптируется под экран смартфона. Это решение требует постоянного подключения к сети, но значительно упрощает разработку, так как не нужно писать механизмы синхронизации данных.
Один из самых острых вопросов — сколько нужно платить фирме 1С за использование мобильных технологий. Разберем ситуацию на основе структуры лицензирования, актуальной для платформы 8.3.
Современная мобильная среда 1С позволяет использовать практически все аппаратные возможности смартфона. Рассмотрим, какие объекты и методы помогают нам в разработке.
Для работы с мультимедиа и оборудованием мы используем средства встроенного языка. Например, для запуска сканирования штрихкода мы можем использовать объект СредстваМультимедиа. Проанализируем пример кода для инициализации сканирования:
&НаКлиенте
Процедура ЗапуститьСканирование(Команда)
#Если МобильноеПриложениеКлиент Тогда
Если СредстваМультимедиа.ПоддерживаетсяСканированиеШтрихКодов() Тогда
СредстваМультимедиа.ПоказатьСканированиеШтрихКодов("Наведите камеру на код", "ОбработкаСканирования");
Иначе
Сообщить("Сканирование не поддерживается на данном устройстве");
КонецЕсли;
#КонецЕсли
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаСканирования(Штрихкод, Результат, Сообщение) Экспорт
Если Результат Тогда
// Здесь мы обрабатываем полученный штрихкод
Сообщить("Считан штрихкод: " + Штрихкод);
КонецЕсли;
КонецПроцедуры
Обратите внимание на использование директив препроцессора #Если МобильноеПриложениеКлиент. Это позволяет писать универсальный код, который будет корректно отрабатывать как на мобильных устройствах, так и в обычном тонком клиенте (игнорируя мобильный функционал там, где он недоступен).
На профильных мероприятиях, таких как Mobileparty 1С, часто демонстрируются инновационные подходы, например, «роботы, говорящие на 1С». Это реализуется через интеграцию с движками TTS (Text-to-Speech) и STT (Speech-to-Text).
Выясним, как это работает. Платформа может передавать текстовые данные в системные службы мобильного устройства для озвучивания или принимать аудиопоток для преобразования в текст. Это открывает возможности для создания голосовых помощников для складских операций, где у работника заняты руки.
Пример использования синтеза речи:
&НаКлиенте
Процедура ОзвучитьСтатусЗаказа(ТекстСтатуса)
Менеджер = СредстваМультимедиа.СоздатьМенеджерСинтезаРечи();
Менеджер.Произнести(ТекстСтатуса);
КонецПроцедуры
Разберем основные сложности, с которыми сталкиваются разработчики при выводе приложения «в свет».
Публикация в App Store: Основная проблема заключается в том, что цензоры Apple иногда классифицируют мобильную платформу 1С как «интерпретатор», что запрещено их правилами (приложение не должно загружать исполняемый код извне). Чтобы успешно пройти модерацию, важно подчеркивать в описании, что приложение является бизнес-инструментом с фиксированной логикой, и предоставлять демо-доступ для проверяющих.
Производительность: Мобильные решения 1С довольно требовательны к оперативной памяти. Для оптимизации работы на бюджетных Android-устройствах мы рекомендуем:
ОбработкаКартинок.Для превращения вашей конфигурации в готовый файл APK или IPA используется специальная конфигурация — «Сборщик мобильных приложений». Проанализируем последовательность действий:
.xml.Подводя итог, можно сказать, что выбор между мобильным клиентом и мобильной платформой должен основываться прежде всего на требованиях к автономности и имеющемся бюджете на лицензии. Мобильный клиент — это быстрый и дешевый старт для корпоративного сегмента, в то время как Мобильная платформа — мощный инструмент для создания независимых тиражных продуктов.