История одного приложения: мобильное «1С: Управление нашей фирмой»

в 8:31, , рубрики: , Блог компании 1С, мобильная разработка и дизайн, мобильные приложения, разработка мобильных приложений, Разработка под android, разработка под iOS, разработка под windows phone

На примере мобильного приложения «1С:Управление нашей фирмой» (сокращенно УНФ) я хочу показать эволюцию мобильного бизнес-приложения от его возникновения и выхода самой первой версии до сегодняшнего дня. Сейчас у этого приложения более 220 000 скачиваний; приложение бесплатное, но в нем есть платные опции (реализованные через встроенные покупки).

image

Первая версия мобильной УНФ была сделана на одной из первых версий мобильной платформы «1С:Предприятия» в 2012 году. На тот момент уже существовала клиент-серверная конфигурация «1С:Управление небольшой фирмой» (тогда название было таким), программа для автоматизации деятельности небольшой компании – продажи, закупки, база клиентов и поставщиков, управление складом, производство и т.п.

Как и большинство мобильных приложений, написанных на кросс-платформенной мобильной платформе 1С:Предприятия, мобильный УНФ доступен на iOS, Android и Windows.

Задача была поставлена так: сделать мобильное приложение, поддерживающее часть сценариев работы «большого» УНФ. Приложение должно уметь работать как автономно, так и синхронизировать данные с «большим» УНФ (далее слово «большой» применительно к клиент-серверной версии УНФ я буду писать без кавычек, чтобы не перегружать текст). В случае работы с большим УНФ должны поддерживаться сценарии «мобильных» сотрудников – торгового представителя, сервисного инженера, продавца.

Первая версия была создана за 1 человеко-месяц. При создании мобильного приложения часть объектов метаданных (справочники, документы) была реализована на основе объектов большого УНФ. Но часть функциональности пришлось программировать с нуля, например, процесс обмена данными с большим УНФ. Правда, применительно к обмену данными собственно программировать пришлось немного – мы использовали стандартные механизмы платформы (в частности, планы обмена), сводящие написание кода к минимуму.

image

Помимо упрощения работы с синхронизацией данных платформа 1С ощутимо облегчает работу по конструированию полнофункционального мобильного приложения, предоставляя разработчику такие компоненты интерфейса, как списки (табличные и иерархические) с возможностью поиска по ним, поля ввода с поиском, таблицы для отчетов, широкий спектр диаграмм, возможность печати на WiFi и Bluetooth принтерах и т.д.

Особенности мобильной версии

Есть две основных стратегии выбора функциональности мобильного приложения. Первая – «одно приложение – одна функция». Например, мобильное приложение для приема товара на складе, которое умеет только сканировать встроенной камерой штрих-код товара и отправлять информацию о принятом товаре на сервер. Вторая стратегия — создание мобильного приложения с широкой функциональностью «все в одном». Оба подхода имеют право на жизнь; при написании мобильного УНФ мы выбрали второй подход – наше приложение покрывает много задач своей предметной области и может работать полностью автономно, обслуживая потребности небольшой организации. Еще один плюс такого подхода – пользователь может работать с несколькими взаимосвязанными функциями из одного приложения.

Мобильный УНФ широко использует функциональность мобильного устройства, в частности:

  • Встроенную камеру устройства можно использовать для фотографирования товара при заполнении карточки товара, для чтения штрих- и QR-кодов
  • Счет на оплату можно отправить клиенту по емейл или через SMS
  • Контрагента можно выбрать из адресной книги мобильного устройства
  • Если у контрагента задан телефон – можно одним касанием позвонить контрагенту или послать SMS, если задан емейл – отправить письмо, если задан адрес – показать его на карте
  • Можно печатать документы на принтерах через WiFi и Bluetooth

Есть опция бэкапа и восстановления базы мобильного УНФ на Яндекс.Диск и отправка базы по почте.

Конфигурация мобильного УНФ выглядит достаточно спартански (см. скриншот ниже):

  • 8 справочников (в большом УНФ – 273 справочника)
  • 7 документов (в большом УНФ – 125)
  • 3 журнала документов (в большом УНФ – 24)
  • 3 регистра сведений (в большом УНФ – 357)
  • 4 регистра накопления (в большом УНФ – 64)

image
Основные объекты мобильного УНФ

Но, несмотря на такое небольшое количество прикладных объектов, продукт получился достаточно функциональным.

Интересная особенность мобильного УНФ – это то, что им зачастую начинают пользоваться люди, до этого про 1С не слыхавшие (да-да, есть в нашей стране и такие), те, которым понадобилось мобильное приложение для ведения учета их маленького бизнеса (например, домашнего крафтинга). Они просто нашли его поиском в Google Play или AppStore, почитали отзывы – и начали работать.

Автономная работа

Этот сценарий работы предназначен для совсем маленьких организаций, когда весь учет ведется исключительно на мобильном устройстве. Это может быть, например, «домашний» бизнес – изготовление украшений на дому и их продажа на страничке ВКонтакте. А может быть даже и небольшой магазин – лично видел случай, когда магазин игрушек, специализирующийся на продаже конструкторов Lego, вел учет исключительно на мобильной версии УНФ. Учитывая, что мобильный УНФ умеет печатать на WiFi и Bluetooth принтерах, с его помощью можно решать довольно большое количество задач. Мобильный УНФ поддерживает обработку заказов, ввод приходных и расходных накладных, учет поступления и расход денег.

Работа в режиме синхронизации с сервером (первые версии)

В режиме синхронизации с сервером в мобильном УНФ в ранних версиях становилась недоступна учетная функциональность, и работа в нем велась в основном с заказами (прием и выполнение заказов) и сопутствующей этому деятельности (ведение справочников контрагентов, товаров и услуг и т.п.).

Синхронизировались с большим УНФ справочники товаров и услуг, контрагентов, и заказы.

image
Обмен данными мобильного и большого УНФ в первых версиях

Заказы, введенные с мобильных устройств, попадали в большой УНФ, а при синхронизации попадали на мобильные устройства ответственных за заказы. Документы типа поступлений в кассу, реализации товара и т.п., введенные на мобильных устройствах, уезжали в большой УНФ, но не синхронизировались между мобильными устройствами. Вся работа в мобильном приложении в режиме синхронизации велась в основном вокруг заказов – их принятия и исполнения, полноценный учет на мобильном устройстве при этом не велся, для этого нужно было пользоваться большим УНФ на компьютере.

Так было в первых версиях, но впоследствии мы изменили ситуацию и расширили список сценариев использования мобильного УНФ, чтобы сделать работу с ним более удобной для пользователей.

Немного про синхронизацию данных

Обмен данными между мобильным и большим УНФ идет через веб-сервисы; мобильный УНФ вызывает веб-сервисы, развернутые на стороне большого УНФ. Структуры данных в большом и мобильном УНФ различаются; при проектировании архитектуры мы рассматривали 2 варианта обмена данными:

  1. Создать структуру данных в большом УНФ, дублирующую структуру данных мобильного УНФ, и обмениваться данными с мобильным УНФ «один-в-один». При изменении данных в большом УНФ нужно новые/изменённые данные перенести в эту дублирующую структуру, а после обмена данными с мобильным УНФ – сконвертировать данные, пришедшие с мобильного устройства и размещенные в дублирующей структуре, в формат большого УНФ.
  2. Обмениваться данными непосредственно со структурами большого УНФ, осуществляя конвертацию данных «на лету» по правилам обмена.

Решили остановиться на втором варианте. Первый вариант, хоть и сулил некоторые преимущества, связанные с простотой собственно обмена данными, плохо обрабатывал ситуацию, когда в новой версии мобильного УНФ менялась (расширялась) структура данных; чтобы обмен данными «один-в-один» продолжал работать, нужно было бы обновлять и серверный, большой УНФ. Что, по многим причинам, было неприемлемо.

Механизмы обмена данными, реализованные в платформе, берут на себя бОльшую часть работы по формированию пакетов для синхронизации данных, позволяя свести написание кода к минимуму. В процессе обмена используется стандартный механизм платформы 1С:Предприятия – механизм обмена данными; для каждого мобильного УНФ в большом УНФ создается узел обмена данными, в большом и мобильном УНФ задействуется служба регистрации изменений для отслеживания данных, измененных со времени последней синхронизации и т.д.

Мобильное приложение инициирует обмен данными, с помощью механизмов платформы формирует пакет обмена (содержащий идентификатор мобильного приложения и данные, обновленные на мобильном УНФ со времени последней синхронизации) и пересылает его в большой УНФ. Исходя из информации в стартовом пакете, большой УНФ готовит для мобильного УНФ данные, измененные в большом УНФ со времени последней синхронизации, и упаковывает их в пакеты. Пакеты в формате XDTO — это объекты метаданных 1С, сериализованные в XML; размер каждого пакета – не более 500 объектов.

image

Мобильный УНФ забирает эти данные пакет за пакетом. После загрузки последнего пакета мобильный УНФ начинает обрабатывать полученные данные – проводить документы, записывать справочники и т.д. В случае разрыва связи поддерживается докачка пакетов; механизм докачки мы написали для УНФ самостоятельно (в платформе его нет), но, поскольку мобильный УНФ поставляется в исходных кодах, разработчики могут посмотреть на реализацию механизма и позаимствовать ее для своих приложений.

Во время первичной синхронизации мобильного УНФ с большим УНФ работать в мобильном УНФ нельзя – появляется модальное окно, показывающее ход процесса. Все последующие синхронизации – фоновые, и не блокируют работу мобильного УНФ.

Полный список объектов, которыми обмениваются мобильный и большой УНФ:

  • Справочники:
    • Номенклатура
    • Контрагенты
    • Список пользователей
  • Документы:
    • Заказы покупателей
    • Поступление в кассу
    • Расход из кассы
    • Приходная накладная
    • Расходная накладная
    • Производство
  • Регистры (но не полностью все цены, а только основные):
    • ЦеныПоставщиков
    • ЦеныТоваров
  • Сведения об организации:
    • Наименование
    • Информация о налогообложении

В большом УНФ у товаров есть картинки – изображения собственно товаров. С целью минимизации трафика мы не грузим в мобильный УНФ картинки, они подгружаются по требованию – например, когда мы открываем в мобильном УНФ карточку товара.

image
Карточка товара с изображением товара

Эволюция приложения – развиваем сценарии использования

Типичная ситуация – бизнес растет, и функциональности мобильного УНФ на одном мобильном устройстве перестает хватать. В бизнесе появляется еще один сотрудник (или сотрудники), и им тоже надо работать с заказами.

В первых версиях мобильного УНФ сценарий переезда был достаточно прямолинейным – данные, введенные в мобильном УНФ, копировались в базу большого УНФ, и пользователь должен был отныне вести учет на компьютере. Мобильный УНФ в этом случае будет работать в режиме работы с заказами, а вести учет (как на автономной версии мобильного УНФ) на нем уже будет нельзя.

Это, конечно, было не совсем удобно для конечного пользователя – он уже привык вести учет с мобильного устройства, а тут его принудительно заставляют пересесть за клавиатуру компьютера. Не все будут этим довольны.

Поэтому мы расширили список сценариев работы мобильного УНФ. В этом нам помогло появление нашего облачного сервиса http://1cfresh.com, основанного на облачной технологии 1cFresh. Появилась возможность размещать большой УНФ в облаке. Мы расписали три сценария использования мобильного приложения по мере роста бизнеса пользователя:

  1. Совсем маленький бизнес. Учет ведется на одном мобильном устройстве.
  2. Бизнес растет – появились сотрудники. Можно поставить мобильный УНФ на мобильные устройства сотрудников. При этом нужно уметь обмениваться данными между мобильными устройствами для синхронизации данных; для этого мы решили использовать не обмен через файлы, а задействовать для синхронизации (а заодно и для бэкапа) версию большого УНФ, расположенную в облаке http://1cfresh.com. При включении этого сценария в облаке http://1cfresh.com создается экземпляр большого УНФ, база которого будет использоваться для синхронизации данных между мобильными устройствами. Использование в таком сценарии одного мобильного устройства – бесплатно, за каждое дополнительное устройство мы берем 75 руб/месяц, использовать в этом сценарии можно не больше трех устройств. При этом пользователям мобильных устройств можно задать предопределенные роли – торговый представитель, сервисный инженер, продавец (возможна также детальная настройка ролей); соответствующим образом будет ограничена функциональность мобильного приложения. Можно также работать через веб-клиент или тонкий клиент с большим УНФ, размещенным в облаке, но функциональность облачного УНФ будет урезана до функциональности мобильного УНФ. Но работать непосредственно в облачном УНФ необязательно – вся работа может вестись только с мобильных устройств.
  3. Бизнес вырос до размера средней фирмы. В этом случае имеет смысл арендовать в облаке полноценную версию большого УНФ, чтобы получить (через веб-клиент или тонкий клиент) дополнительную функциональность — CRM (в планах – включение CRM в мобильный УНФ, но пока доступен только в большой версии), управление складом, расширенное формирование цен, возможность работы с банками и так далее. В этом случае количество мобильных устройств, работающих с большим УНФ, не ограничено (за каждое устройство взимается дополнительная плата согласно тарифу, как за одно рабочее место; 1 лицензия на УНФ во Фреше или на «коробочный» УНФ дает право бесплатного пользования и 1 мобильным приложением).

image

Опыт монетизации приложения

Мобильное приложение УНФ, как я уже писал – бесплатное. Некоторое время назад мы решили монетизировать наше приложение (с помощью функциональности встроенных покупок, реализованной в мобильной платформе 1С:Предприятия версии 8.3.8), продавая дополнительную функциональность – производство, и возможность синхронизации с дополнительными мобильными устройствами.

image

Покупка функциональности «Производство» — разовая, а возможность синхронизации с дополнительными мобильными устройствами оформлена как подписка, которую нужно продлевать каждый месяц. Интересно, что уже через 3 недели после добавления функциональности покупок мобильный УНФ попал в топ 15 Google Play по продажам приложений для бизнеса.

Заключение

Мобильный УНФ – сравнительно небольшой (с точки зрения объема исходного кода), но довольно популярный продукт. Надеемся, рассказ о его эволюции будет полезен создателям мобильных end-user продуктов как на технологиях 1С, так и на других средствах разработки.

Нелишним будет напомнить, что на мобильной платформе 1С можно делать приложения, взаимодействующие не только с 1С-серверным backend-ом; протоколы, используемые для обмена данными в мобильных приложениях на платформе 1С – платформенно-независимые (web- и HTTP-сервисы, поддержка XML и JSON и т.п.). Так что если вам нужно быстро и динамично развивать кросс-платформенный (Android, iOS, Windows) мобильный клиент, причем с возможностью офлайн работы без постоянного подключения к Интернет для вашего бизнес-приложения, то мобильная платформа 1С вполне может быть оптимальным выбором для вас.

Автор: PeterG

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js