Мобильная платформа нацелена на ускорение операций, и переносить каждый раз десятки мегабайт информации при обмене с мобильным устройством задача нелегкая. Целесообразно выгружать только новую или изменившуюся информацию используя планы обмена.
Давайте рассмотрим на примере создание двустороннего обмена мобильного устройства и базы. Для начала создадим новую базу, назовем ее «Центральная база», назначение использования как на скриншоте:
И укажем версию:
Теперь создадим объекты метаданных для ввода данных и тестирования обмена данными. Создадим справочник, документ и регистр сведений:
1) Справочник «Номенклатура»:
2) Создадим документ «Установка цен номенклатуры»: реквизиты
Номенклатура — тип «СправочникСсылка. Номенклатура»
Цена — тип Число
3) Создадим регистр сведений «Цены номенклатуры»:
Периодичность: в пределах дня
Режим записи: в пределах дня
Добавляем измерение: Номенклатура — тип «СправочникСсылка. Номенклатура»;
Ресурс: Количество — тип Число.
Для документа «Установка цен номенклатуры» напишем процедуру проведения.
Создадим план обмена, установим ему имя «МобильныйОбмен». В состав плана обмена включим созданные метаданные (справочник, документ и регистр сведений). Для всех выбранных объектов разрешим авторегистрацию.
Теперь создадим общую команду «ВыполнитьСинхронизациюСБД», которая будет синхронизировать данные мобильного приложения и базы, причем в обмене будут участвовать только измененные и вновь созданные объекты.
Добавим команду в панель навигации: Важное.
Пришло время добавить обработку команды:
Для обмена данными нам будет необходим веб-сервис. Давайте создадим его и присвоим ему имя «WebОбмен». Предлагаю использовать для обмена данными хранилище значения, т. к. хранилище значения сжимает данные и это очень важно для мобильного трафика, и хранилище значения может быть сериализовано в/из XDTO.
Заполним URI пространства имен: Data,
Пакеты XDTO: http://v8.1c.ru/8.1/data/core,
Имя файла публикации: WebОбмен.1cws.
Добавим операцию: Синхронизация,
Тип возвращаемого значения: ValueStorage ).
Добавляем параметр «Данные» и установим ему тип значения: ValueStorage ).
Для операции Синхронизация добавим процедуру Синхронизация:
Необходимо опубликовать мобильное приложение:
а потом переходим в Администрирование -> Публикация на веб-сервере и публикуем базу на веб-сервере:
Теперь добавляем базу на мобильном устройстве включаем перезапуск из конфигуратора и разрешаем отладку. Также необходимо прописать адрес сервера отладки.
Настраиваем планы обмена в базе и на мобильном приложении следующим образом:
- в базе:
- в мобильном приложении:
Теперь создаем в мобильном приложении номенклатуры и документ и записываем:
В базе создаем номенклатуру:
Теперь в мобильном приложении нажимаем кнопку «Выполнить синхронизацию с БД»:
И видим результат, номенклатура созданная в базе появилась на мобильном устройстве, а в базе появилась номенклатура созданная в мобильном приложении:
- в мобильном приложении:
- в базе:
Планы обмена значительно уменьшают трафик, а в сочетании с мобильным приложением позволяют работать в удаленных местах, где нет высокоскоростного интернета, например, в удаленных складах.