Офлайн карты

Продолжим знакомство с фреймворком “FBA Toolkit” и рассмотрим еще один пример разработки андроид-клиента для 1С. Наше приложение “Аудит торговой точки” будет загружать маршрут посещения из 1С и отображать его на карте. Используются офлайн карты на базе картографического сервиса OpenStreetMap.

Предполагается, что у вас уже установлены и настроены все необходимые инструменты разработчика.Фреймворк “FBA Toolkit” должен быть не ниже версии 1.03, обновите конфигурацию 1С и Android-проект ru_profi1c_fba из SVN-репозитария.

Серверная часть (в  базе 1С)

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

Реквизиты справочника “Торговые точки”:

  • “Широта” и “Долгота”  содержат координаты этой точки, число 10.6
  • “Фото” ссылка на справочник “Хранилище дополнительной информации” – ссылка на основное изображение;
  • все прочие реквизиты строкового типа.

Реквизиты справочника “Хранилище дополнительной информации”:

  • “Объект” составного типа в т.ч содержит тип “СправочникСсылка.ТорговаяТочка”, определяет объект которому принадлежит дополнительная информация. В мобильном приложении не используется.
  • “Хранилище”, тип “ХранилищеЗначения”, содержит само изображение.

2. Так же добавлен план обмена “МобильноеПриложениеАудитТочки” в состав которого входят только эти два справочника, авто-регистрация изменений включена.

3. Справочники заполняем некоторой тестовой информацией, в этом примере это пиццерии в центре Москвы (данные взяты из открытых источников).

Для некоторых точек загружены изображения. Код сохранения значения в хранилище стандартный для 1С:

ДвоичныеДанные = Новый ДвоичныеДанные(ИмяФайла);
Хранилище = Новый ХранилищеЗначения(ДвоичныеДанные, Новый СжатиеДанных(9));

Форма элемента справочника “Хранилище дополнительной информации”, “ИмяФайла” содержит путь к загружаемому изображению.

4. Создаем мобильное приложение “Аудит торговой точки”. В дерево метаданных добавляем наши справочники.

Просто ради удобства,имена реквизитов и объектов из латиницы переведены на английский.

Схема обмена настроена таким образом, чтобы выгружать только измененные в 1С объекты:

  • установлен флаг использования плана обмена ” “МобильноеПриложениеАудитТочки”
  • при изменении любой “Торговой точки” в 1С она будет передана мобильному приложению;
  • на справочник “Хранилище дополнительной информации” наложена дополнительная фильтрация:  передавать измененную информацию только по торговым точкам. Это делается запросом:
ВЫБРАТЬ
            ХранилищеДополнительнойИнформацииИзменения.Ссылка КАК Ссылка
ИЗ
            Справочник.ХранилищеДополнительнойИнформации.Изменения КАК ХранилищеДополнительнойИнформацииИзменения
ГДЕ
            ХранилищеДополнительнойИнформацииИзменения.Узел = &УзелОбмена
            И ХранилищеДополнительнойИнформацииИзменения.Ссылка.Объект ССЫЛКА Справочник.ТорговыеТочки

где “УзелОбмена” это предопределенный параметр, в момент обмена будет содержать значение установленного узла для мобильного сотрудника (ниже покажем где это устанавливается).

5. Генерируем шаблон мобильного приложения Android. Стоимость и порядок приобретения лицензии описаны здесь.  Как внести полученные лицензионные данные в 1С написано здесь.

Можно так же воспользоваться тестовой лицензией:
client_id: TEST-CLIENT-000
client_name: test-client-name
client_pwd: 31qX9OqZ_V
lisence_id: f7a42162-e27f-4246-a89b-b69c02387740

Только в этом случае не рекомендуется изменять имя пакета мобильного приложения: ru.profi1c.samples.audit.salespoint

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

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

Этот параметр может использоваться в запросах на выборку данных, как нашем случае со справочником «Хранилище дополнительной информации».

Также рекомендуется для каждого мобильного приложения создавать отдельный план обмена, чтобы не вносить путаницу.

Подготовительные работы в 1С завершены, для тестирования правил обмена можете воспользоваться обработкой «Тест обмена с мобильным приложением», подробнее здесь. В 1С больше ничего делать не надо,  всю рутинную работу по организации обмена  FBA берет на себя.  Программист может сконцентрироваться  на разработке мобильного приложения.

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