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

Давайте рассмотрим на примере создание двустороннего обмена мобильного устройства и базы. Для начала создадим новую базу, назовем ее «Центральная база», назначение использования как на скриншоте:

И укажем версию:

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

1) Справочник «Номенклатура»:

2) Создадим документ «Установка цен номенклатуры»: реквизиты

Номенклатура — тип «СправочникСсылка. Номенклатура»

Цена — тип Число

3) Создадим регистр сведений «Цены номенклатуры»:

Периодичность: в пределах дня

Режим записи: в пределах дня

Добавляем измерение: Номенклатура — тип «СправочникСсылка. Номенклатура»;

Ресурс: Количество — тип Число.

Для документа «Установка цен номенклатуры» напишем процедуру проведения.

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

Теперь создадим общую команду «ВыполнитьСинхронизациюСБД», которая будет синхронизировать данные мобильного приложения и базы, причем в обмене будут участвовать только измененные и вновь созданные объекты.

Добавим команду в панель навигации: Важное.

Пришло время добавить обработку команды:

Для обмена данными нам будет необходим веб-сервис. Давайте создадим его и присвоим ему имя «WebОбмен». Предлагаю использовать для обмена данными хранилище значения, т. к. хранилище значения сжимает данные и это очень важно для мобильного трафика, и хранилище значения может быть сериализовано в/из XDTO.

Заполним URI пространства имен: Data,

Пакеты XDTO: http://v8.1c.ru/8.1/data/core,

Имя файла публикации: WebОбмен.1cws.

Добавим операцию: Синхронизация,

Тип возвращаемого значения: ValueStorage (http://v8.1c.ru/8.1/data/core).

Добавляем параметр «Данные» и установим ему тип значения: ValueStorage (http://v8.1c.ru/8.1/data/core).

Для операции Синхронизация добавим процедуру Синхронизация:

Необходимо опубликовать мобильное приложение:

а потом переходим в Администрирование -> Публикация на веб-сервере и публикуем базу на веб-сервере:

Теперь добавляем базу на мобильном устройстве включаем перезапуск из конфигуратора и разрешаем отладку. Также необходимо прописать адрес сервера отладки.

Настраиваем планы обмена в базе и на мобильном приложении следующим образом:

  • в базе:

  • в мобильном приложении:

Теперь создаем в мобильном приложении номенклатуры и документ и записываем:

В базе создаем номенклатуру:

Теперь в мобильном приложении нажимаем кнопку «Выполнить синхронизацию с БД»:

И видим результат, номенклатура созданная в базе появилась на мобильном устройстве, а в базе появилась номенклатура созданная в мобильном приложении:

  • в мобильном приложении:

  • в базе:

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