интеграция мобильного приложения с 1с
Особенности интеграции мобильного приложения по заказу доставки еды с iiko, R-Keeper и 1С
Возможно, пока компания маленькая, вопрос интеграции вас не будет сильно волновать. На этом этапе вы можете получать заказы на электронную почту или мессенджер, и обрабатывает их не оператор в колл-центре, а администратор заведения.
Но как только сеть кафе или ресторанов начинает расти, очень важно, чтобы все элементы системы работали как единое целое. И мобильное приложение, как одна из составляющих экосистемы привлечения клиентов, также должно быть интегрировано со всеми внутренними элементами.
Казалось бы, надо всего-то, чтобы заказы уходили в нужное место и меню обновлялось. На самом деле, это только верхушка айсберга.
С чем возможна интеграция?
Есть еще различные уникальные системы, однако встречаются крайне редко. Поэтому важно рассмотреть особенности интеграции именно с первыми двумя системами.
Что входит в объемный блок интеграции:
Некая компания “Х” готовит и доставляет еду. Имеет несколько ресторанов в разных районах города.Количество заказов в день: 200-300.
Итого экономия: 100 000 руб./мес. или 1 200 000 руб./год.
И это только на оформлении заказов!
Внедрили приложение по сбору заказов:
Итак, какие нюансы следует учесть, если планируете разрабатывать приложение самостоятельно или отдать новичкам?
Здесь возникает нюанс: если заказ ушел сразу на производство и его начали готовить, а гость передумал или ошибся? Наше решение: создавать “черные” и “белые” списки пользователей.
В ближайшем будущем еще будем реализовывать показ местонахождения курьера на карте, но об этом в другой статье.
Мы считаем, что в ходе своей работы собрали много подводных камней, которые превратили в достаточно большой пул ценного опыта. Мы с радостью делимся своим опытом с читателями и думаем, что этот материал будет полезен как собственникам бизнеса, которые планируют запускать мобильное приложение по доставке, так и начинающим программистам в качестве неплохого чек-листа при интеграции с учетными системами.
Заметки из Зазеркалья
Данная статья является анонсом новой функциональности.
Не рекомендуется использовать содержание данной статьи для освоения новой функциональности.
Полное описание новой функциональности будет приведено в документации к соответствующей версии.
Полный список изменений в новой версии приводится в файле v8Update.htm.
Реализовано в версии мобильной платформы 8.3.17.67
Сделать удобное мобильное приложение – дело непростое, это редко получается с первого раза. Для разработчика важно понять, насколько мобильное приложение удобно в использовании, где пользователь встречается с трудностями, использует ли пользователь мобильное приложение так, как задумал разработчик.
Чтобы решить эту задачу, мобильные приложения интегрируются с сервисами аналитики; сервисы помогают собрать информацию о статистике использования приложения, о действиях пользователей, источниках установок приложения и т.д.
В мобильной платформе 1С в версии 8.3.17 появится возможность интегрировать мобильные приложения с сервисами сбора статистики поведения пользователей:
На этапе сборки мобильного приложения указывается желаемый сервис аналитики с параметрами подключения, после чего функциональность становится автоматически доступной в приложении.
В мобильном приложении из встроенного языка можно вызывать события (в том числе параметризованные), отправляя информацию в сервис аналитики.
Реализована возможность управления составом собираемых данных после публикации в магазины через механизм обновления настроек статистики, что позволяет передать изучение поведения пользователя людям, не знакомым с языком 1C.
Составом регистрируемых данных можно управлять, задавая для исследования как точечные объекты, так и группы объектов, гибко управляя именами событий в сервисах.
С помощью нового механизма появилась возможность отслеживания сбоев в приложении, регистрации скачиваний, источников установок приложения, ведение статистики внутренних покупок, изучение переходов пользователей по формам в приложении, подсчет частоты использования функциональности, регистрация пользовательских событий.
Часть сервисов предоставляет статистику в разрезе типа и модели устройств, версии ОС и регионов использования мобильного приложения.
Сервис Appsee позволяет выполнять видео записи с экрана пользователя для дальнейшего изучения удобства интерфейса пользователя и построения «тепловых» карт. Эта информация позволяет наглядно оценить статистику промахов пальца и по результатам выполнить оптимизацию размера и положения кнопок интерфейса.
Для поддержки обезличенности при записи видео предусмотрены процедуры управления сокрытия (закрашивания) приватных данных.
Пример тепловой карты
Рассмотрим несколько сценариев – как сбор статистики может помочь улучшить мобильные приложения.
Какой функциональностью приложения пользуются?
Возможно, пользователю постоянно приходится проскролливать меню, чтобы добраться до своей любимой кнопки.
Возможно, некоторую функциональность не стоит развивать, т.к. ей никто не пользуется.
Достигает ли пользователь цели?
Предположим, в нашем мобильном приложении есть настройка синхронизации данных через облако, и нам важно понять – удобно ли реализована настройка.
Интеграция типовой конфигурации с мобильным приложением
Вот уже второй месяц я тружусь над логистическим решением, которое основано на взаимодействии мобильной платформы Android и конфигурации УТ 11. Разработку под Android осуществляет подрядчик, но мне всегда тоже очень хотелось написать приложение для модного «гаджета». К счастью, компания 1С, в стремлении сделать свои продуты более мобильными и облачными, выпустила платформу 8.3, с которой мы и будем играть в «мобильное приложение».
Принцип работы приложения представлен на схеме.
Слева на схеме наша информационная база, которая выступает в роли сервера. С нее мы будем брать данные необходимые для построения отчета в мобильном приложении. Посредником работает web-сервис, который передает информацию в виде XML-файлов. Ну а справа собственно мобильная конфигурация, которая анализирует полученные данные и сохраняет на телефоне.
РАЗРАБОТКА WEB-СЕРВИСА
Для начала определимся с тем, что мы буде передавать и как нам упаковать нужные данные в формат XML. Для построения отчета на клиенте, на необходимо загрузить список организаций, а также выгрузить оборот по данных организациях.
Создадим XDTO-пакет из наименованием CrossProfit следующей структуры.
Объект Organization используется для передачи элемента справочника «Организации». В нем мы передаем уникальный идентификатор ссылки на справочник, а также наименование, которое необходимо для представления справочника пользователю.
В объект OrganizationList мы записываем список организаций, другими словами он фактически является массивом организаций.
Объект Item содержит информацию о валовой прибыли организации за месяц. Соответственно GUID – это уникальный идентификатор элемента справочника, Period – дата, на которую мы получаем оборот, а Revenue и Cost – значения итогов.
Создадим веб-сервис в конфигурации (под таким же именем, как и пакет XDTO). В нашем сервисе будет всего два
При работе с веб-сервисами не забывайте указывать пространство имен и следите за тем, чтобы оно не изменялось во время разработки.
OrganizationList = СоздатьФабрикуXDTOПоИмени ( «OrganizationList» );
Запрос = Новый Запрос ( «ВЫБРАТЬ
| Ссылка КАК Ссылка,
| Наименование КАК Наименование
|ИЗ
| Справочник.Организации
|ГДЕ
| Не ПометкаУдаления» );
Items = СоздатьФабрикуXDTOПоИмени ( «Items» );
|СГРУППИРОВАТЬ ПО
| ВыручкаИСебестоимостьПродажОбороты.Период,
| АналитикаУчета.Организация
|
|УПОРЯДОЧИТЬ ПО
| ВыручкаИСебестоимостьПродажОбороты.Период,
| АналитикаУчета.Организация.Наименование» );
Функция СоздатьФабрикуXDTOПоИмени ( Имя )
В примере с веб-сервисом будет работать пользователь из полными правами, однако целесообразно создать дополнительное право, на использование операций веб сервиса.
Осталось только осталось провести публикацию на веб-сервере. Я использую Apache 2.2.
В случае успешной публикации мы сможем получить WSDL описание нашего веб-сервиса с помощью браузера, по ссылке http://127.0.0.1/yt/ws/CrossProfit?wsdl
Все наш веб-сервис готов, переходим к разработки клиентского приложения.
РАЗРАБОТКА КЛИЕНТСКОГО ПРИЛОЖЕНИЯ
Как создавать и собирать приложения для Android с помощью 1С 8.3, я не стану, в интернете есть много статей на эту тему, например вот здесь.
Сначала создадим объект конфигурации WS-ссылка, он нам необходим будет для связи с основной информационной базой. При создании система нас спросит адрес, где работает наш веб сервис. Нам нужно прописать тот же адрес, что мы использовали для тестирования сервиса.
После чего платформа самостоятельно загрузит все необходимые данные. Мы должны получить примерно следующий результат.
Теперь все готово для работы с сервисом. Создадим справочник Организации и регистр, где будем сохранять данные. Ниже приведу код общего модуля, для работы с веб-сервисом.
Процедура ЗагрузитьДанныеВРегистр () Экспорт
Для каждого Организация Из СписокОрганизаций Цикл
// Служебные процедуры и функции
Функцию ПодключитьВебСервис используем для создания объекта WSПрокси, заполняются данные для регистрации из соответствующих констант. Процедура ЗагрузитьДанныеВРегистр анализирует полученные данные и записывает их в нужные справочники и регистры.
В конфигурации есть еще три общих формы.
Форма меню, она размещается в рабочей области начальной страницы.
Форма настройки, используется для сохранения настроек пользователя.
Ну и сама форма отчета.
Приведу пример кода, который строит отчет в мобильном приложении.
&НаСервере
Процедура СформироватьОтчетНаСервере ()
&НаСервере
Функция ПолучитьНомерМесяца ()
Если Месяц = «Январь» Тогда
Возврат «01» ;
КонецЕсли;
Если Месяц = «Февраль» Тогда
Возврат «02» ;
КонецЕсли;
Если Месяц = «Март» Тогда
Возврат «03» ;
КонецЕсли;
Если Месяц = «Апрель» Тогда
Возврат «04» ;
КонецЕсли;
Если Месяц = «Май» Тогда
Возврат «05» ;
КонецЕсли;
Если Месяц = «Июнь» Тогда
Возврат «06» ;
КонецЕсли;
Если Месяц = «Июль» Тогда
Возврат «07» ;
КонецЕсли;
Если Месяц = «Август» Тогда
Возврат «08» ;
КонецЕсли;
Если Месяц = «Сентябрь» Тогда
Возврат «09» ;
КонецЕсли;
Если Месяц = «Октябрь» Тогда
Возврат «10» ;
КонецЕсли;
Если Месяц = «Ноябрь» Тогда
Возврат «11» ;
КонецЕсли;
Если Месяц = «Декабрь» Тогда
Возврат «12» ;
КонецЕсли;
Как видите, основным неудобством мобильной платформы является отсутствие запросов и СКД, с которыми так удобно работать. Скомпилируем базу и посмотрим что у нас получилось.
Форма меню основного окна программы и настроек авторизации.
Форма отчета из данными.
В файле к статье прикреплены файл конфигурации и XML схема пакета XDTO.
Заметки из Зазеркалья
Данная статья является анонсом новой функциональности.
Не рекомендуется использовать содержание данной статьи для освоения новой функциональности.
Полное описание новой функциональности будет приведено в документации к соответствующей версии.
Полный список изменений в новой версии приводится в файле v8Update.htm.
Планируется в версии мобильной платформы 8.3.18
На текущий момент единственный способ запустить мобильное приложение, созданное на мобильной платформе 1С (или мобильный клиент 1С), не нажимая непосредственно на иконку приложения – через PUSH или локальное уведомление.
В версии мобильной платформы 8.3.18 появится возможность запускать мобильное приложение «1С:Предприятия» (приложение, созданное на мобильной платформе 1С, или мобильный клиент 1С) из другого мобильного приложения или с использованием некоторого URL.
Эта возможность может потребоваться для решения различных задач интеграции мобильных приложений (как внешних приложений и сервисов с мобильными приложениями 1С, так и мобильных приложений 1С между собой).
В частности, появятся новые возможности:
Вызов конкретной функции мобильного приложения из другого приложения.
Возможность использовать некоторый URL для того, чтобы открыть мобильное приложение на конкретном объекте или функции.
Примеры сценариев использования новой функциональности:
Пользователю пришло письмо по электронной почте (SMS, сообщение в мессенджере) c акцией по промокоду. Пользователь нажимает на ссылку «Воспользоваться», открывается мобильное приложение 1С, поле с промокодом автоматически заполняется.
Пользователю присылается в Документообороте (например, в письме, или через Систему взаимодействия) ссылка на документ в Клиенте ЭДО. При нажатии на ссылку запускается мобильное приложение «Клиент ЭДО» и открывается требуемый объект.
Глубинная ссылка может быть сформирована двумя способами:
С использованием собственной схемы (например, myfuncapp://). В этом случае URL для вызова будет иметь вид myfuncapp://comand?params.
С использованием схемы HTTP(S). Этот способ предполагает, что URL глубинной ссылки принадлежит схемам http:// или https://. Работа глубинного связывания в этом случае возможна только с использованием реального веб-сайта, доступ к которому должен быть у разработчика мобильного приложения (или, более глобально, всей схемы интеграции приложения и сайта). Этот доступ необходим для того, чтобы разместить в определенном каталоге сайта (из глубинной ссылки) определенные файлы.
В модуле приложения добавлена возможность реализации нового обработчика:
ОбработкаПереходаПоНавигационнойСсылке(ДанныеПереходаПоНавигационнойСсылке, СтандартнаяОбработка) |
В случае перехода по глубинной ссылке в мобильном приложении будет вызван этот обработчик.
Пример использования механизма
После установки на мобильное устройство приложение регистрирует в мобильной операционной системе глубинные ссылки, которое оно (приложение) может обрабатывать.
Когда пользователь выполняет переход по глубинной ссылке, мобильная операционная система определяет, какое приложение обрабатывает эту ссылку.
Найденное приложение запускается, и используемая глубинная ссылка передается в это приложение для разбора самим приложением.
В мобильном приложении срабатывает обработчик события ОбработкаПереходаПоНавигационнойСсылке, который и получает на вход глубинную ссылку, которая привела к запуску мобильного приложения.
Запуск мобильного приложения 1С в Android через механизм намерений (intent)
В качестве иллюстрации приведем код на 1С (аналогичный код может быть написан на любом языке, поддерживаемом в Android):