Зачем я это пишу?
Работая в любой "узкой" специализации рано или поздно понимаешь, что знаешь существующие статьи по теме и более того - знаешь больше, чем в них написано.
Так что пришла пора поделится опытом моего двухлетнего плавания с мобильной платформой 1С.
Что это вообще такое - мобильная 1С?
Мобильная платформа в текущем ее виде - это инструмент, при помощи которого программист 1С, не вникая по большей части в особенности работы мобильных устройств и не владея "настоящими" языками программирования может написать кроссплатформенное (Windows Mobile, IOS, Android) и вполне рабочее приложение для мобильных ОС. Функциональность на текущий момент очень неплоха - работа с камерой, геопозиционированием, медиа с помощью встроенного языка. Отправка и получение Push-уведомлений. Многие возможности "десктопной" 1С уже реализованы в мобильном приложении.
Что же из себя представляет мобильное приложение 1С?
Примерно то же, что и десктопное приложение. Есть мобильная платформа. Она поставляется в виде установочного файла мобильного устройства. То есть ее можно установить отдельно, как самостоятельное приложение. Толку с этого будет - примерно как с установленной платформы на компьютере. То есть нужна еще и конфигурация. И тут есть 2 варианта.
- Можно загрузить конфигурацию в установленную мобильную платформу (можно на ней создать несколько независимых "баз" с различными конфигурациями). Для этого в конфигураторе, где разрабатывается конфигурация мобильного приложения, нужно опубликовать мобильную конфигурацию на веб-сервере. Преимущества этого метода - быстрое обновление конфигурации на МУ, после больших танцев с бубном - возможность даже подключится для отладки. Идеально для разработки. Для массового тиражирования вариант не годится, так как обновление конфигурации не контролируется, плюс через адрес публикации мобильной платформы ее можно получить, что равносильно размещению вашей конфигурации в открытом доступе.
- Сборка мобильного приложения. Методика сборки сильно усовершенствовалась с момента выхода мобильного приложения - теперь она осуществляется через конфигурацию "Сборщик мобильных приложений". Конфигурация идет в комплекте поставки мобильной платформы, справка написана довольно толково.
На выходе комбинация "платформа+конфигурация" совмещается в одном новом приложении, которое можно разместить в PlayMarket, AppStore и т.д. Отличный варант для рабочей версии приложения, т.к. исходный код закрыт, есть возможность публикации средствами магазинов приложений. Есть даже возможность монетизации через них же. Для отладки годится слабо, т.к. процесс сборки небыстрый, а поведение собранного и подключенного к мобильной платформе приложения в целом идентично.
Для чего можно применять мобильное приложение?
Мобильное приложение - это по сути локальная база 1С (поведение ее аналогично поведению файловой базы в управляемом приложении), развернутого на мобильном устройстве для одного одновременного пользователя. Это может быть телефон, планшет... На телевизор с Android TV или приставкой тоже теоретически может получится установить. Чтобы запрограммировать что-то не обязательно знать Java, Kotlin, C#, ObjC, достаточно конфигуратора.
Но основная задача 1С - это все-таки бизнес-приложения. А значит - рабочие места для выездных сотрудников (менеджеры, торговые агенты, сервис-инженеры), то есть для тех, кто не всегда в зоне доступности интернета, а посмотреть цену, забить заказ надо. Автоматизация склада - встроенные (корявые, но они есть) возможности сканирования штрих и QR кодов камерой устройства, превращают простой смарт в аналог терминала сбора данных с локальной базой. Это только первое, что на ум приходит. Причем все это - силами дообученных 1С-ников, которые стоят в несколько раз меньше разработчиков приложений для мобильных устройств.
Ложка дегтя
Мобильная 1С - что-то вроде фреймворка. Причем заточенного под универсальность, мультиплатформенность и т.д. Смекаете, к чему я? Именно. Что универсально, то бесполезно. Я натыкался на множество проблем, связанных с версиями мобильных устройств, надстроек ОС, редкими "китайцами"... да чего только не было. Внедрение новой версии мобильной платформы для приложения, которое используют люди с различными устройствами - это всегда лотерея с неясным исходом.
Урезанность. Да, мобильная 1С может много того, что может десктопная версия и немного того, чего та не может. Но это по-прежнему мобильная 1С. Необходимость унификации с десктопной версией заставила разработчиков не использовать возможности, которые предоставляет современное мобильное устройство. Так фоновое задание может быть всего одновременно одно. Как в файловой версии. Хотя никаких ограничений мобильные ОС не накладывают и прилично под многопоточность заточены. Напоминаю, что, например, в управляемом приложении поиск в динамическом списке тоже является фоновым заданием. Да и возможности десктопной версии доступны далеко не все.
И ложка меда
Одна довольно крутая возможность мобильной платформы - это возможность "общения" с другими приложениями. С IOS и WM я такого не делал, но с наиболее распространенным Андроидом это выглядит примерно следующим образом. Как я говорил, сканирование кодов в недавних версиях мобильной платформы стало очень не очень. Но если на устройстве есть сканер штрих-кодов, созданный на основе библиотеки ZXing - то можно воспользоваться его услугами, получив обработанный результат. Работает методика только тогда, когда стороннее приложение специально заточено под такую работу и у вас есть его документация. Но вполне реально. Это подводит к другой возможности - написать "расширение" мобильного приложения. В моем случае я писал расширение, которое позволяло рисовать и выбирать на карте гугла точки, прокладывать, отображать маршруты и возвращать их в мобильную 1С в виде структурированных данных. Так что в содружестве с "нативным" разработчиком можно многое написать. Кому интересно по поводу этого - погуглите, что такое Intent в Андроиде. Тип данных ДополнительныеПараметрыЗапускаПриложенияМобильногоУстройства в 1С по сути им и является.
Если данная тема имеет слушателей - пишите в комментариях свои вопросы, я постараюсь ответить на них и, возможно, определится с темой более специализированной статьи по мобильной платформе.