GPS-трекер, мониторинг местоположения сотрудника.

В этой статье приведем пример создания простой программы для отслеживания точного местонахождения человека по GPS-сигналу (или по данным сотовой сети) от его телефона.

Работая в фоновом режиме, приложение передает координаты на сервер 1С. В информационной базе 1С они могут быть обработаны различным образом: сохранены для ведения истории, оперативно отображены на карте и т.п.

Так как это пример, интерфейс программы будет простым,  запуск/остановку мониторинга будет производить сам сотрудник нажатием соответствующей кнопки в программе.

При перезагрузке телефона мониторинг будет запускаться автоматически. Впрочем, изменить  эту логику поведения вам не составит большого труда т.к. мониторинг реализован как автономный сервис.

Цель примера:
Показать возможность оперативной передачи данных небольшого объема в варианте «клиент-сервер».

В веб-сервисе ‘fbaService’   реализована  пара методов, которые предназначены для оперативной передачи/получения данных небольшого объема между 1С и мобильным приложением.
Метод «GetShortData» вызывается, когда мобильное приложение запрашивает данные, «WriteShortData»  - когда передает.  Тип данных, необходимых мобильному клиенту, передается в параметре ID. Ожидается, что сервер 1С максимально быстро обработает полученные/ подготовит передаваемые данные. Данные передаются как JSON –строка, закодированная по base64.

Создание шаблона мобильного приложения в 1С

1. В справочнике «Мобильные приложения» добавьте новый элемент, метаданные и схему обмена не заполняем.

 

Идентификатор: SAMPLE_APP_TRACKER
Имя пакета: ru.profi1c.samples.tracker

Проверьте корректность данных, предложенных по умолчанию на закладке “Web-сервис”, заполните данные “О программе” и нажмите кнопку «Создать».

2. В справочнике «Мобильные сотрудники» найдите (создайте нового) сотрудника за которым закреплен «Эмулятор устройства» и в табличную часть  «Мобильные приложения» добавьте наше мобильное приложение, укажите параметры авторизации.

 

Сохранение полученных координат в 1С

В общем модуле fbaПодпискаНаСобытия  в процедуре СохранитьПолученнуюСтруктуруПроизвольныхДанных  добавьте следующий код:

Если Идентификатор = "change_current_location" Тогда
    	//что-то сделать с данными
    	Дата = XMLЗначение(Тип("Дата"),Данные["time"]);
    	Широта = Данные["latitude"];
    	Долгота = Данные["longitude"];

    	Комментарий = "Получена информация об изменении текущих координат";
    	Событие = "CUSTOM";
    	Уровень = УровеньЖурналаРегистрации.Примечание;
    	Текст = "Время: " + Дата + Символы.ПС +
    	    "Координаты: широта = " + Широта + " долгота = " +  Долгота;

    ДобавитьЗаписьВЖурналСобытий(МобильноеПриложение,МобильныйКомпьютер,МобильныйСотрудник,Событие,Уровень,Комментарий,Текст);
КонецЕсли;

Здесь полученные от мобильного приложения данные просто сохраняются в регистре сведений «Журнал событий».  В параметре «Данные» в этот обработчик передается уже преобразованная из JSON-строки коллекция полученных значений. Обратите внимание на дополнительное  преобразование типа «Дата» из строки, оно необходимо, т.к. парсер JSON не может автоматически выполнить обратное преобразование из строки в дату.

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

Похожие записи: