Мобильная платформа. История разработки

854 просмотров
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 голосов, средний: 5,00 из 5)
Загрузка...

04.06.2015

Мобильной платформой решил заняться около года назад.

Решил написать серию статей, в которых расскажу о проблемах, с которыми столкнулся.

Не буду рассказывать как происходит установка и настройка ПО для разработки мобильного приложения. Информации по этой теме достаточно в интернете.

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

Авторские права на предоставленный материал принадлежат автору сайта http://you1c.ru/

Задача такова, что приложение должно быть максимально простым и не требовать сложной настройки, внесения изменений в основную конфигурацию и тем более приобретения дополнительного программно обеспечения (типа вэб-компонента и др.).

Поэтому нельзя использовать планы обмена и другие вкусные механизмы.

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

Формат файлов обмена

Между xml и json я выбрал xml.

На стороне 1С предприятие формирую xml файл, определенной структуры, который содержит информацию о номенклатуре (Наименование, артикул, единицу измерения и другие), информацию об остатках на складах (можно по всем складам, можно отдельно по каждому), цены номенклатуры (по указанным типам цен номенклатуры), информацию о контрагентах.

Возникает проблема как передавать изображения номенклатуры?

Я реализовал 2 варианта:

1. Картинки выгружаются непосредственно в xml файл, с помощью base64.

2. Картинки выгружаются в каталог пофайлово.

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

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

Во втором случае я выгружаю вспомогательный файл img.xml, который содержит информацию об изображениях (имя файла, объем, номенклатуру, которой принадлежит картинка и пр.).

Также, пришел к выводу, что необходимо выгружать сигнальный файл sign.xml, который содержит информацию об основной файле с данными (out.xml) — дата и время выгрузки, объем файла.

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

Загрузка — выгрузка

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

В первой версии приложения выгружаем и загружаем всю номенклатуру. На стороне мобильного приложения полностью очищаем справочники Номенклатура, Контрагенты, Цены, Остатки и заливаем их снова.

Возникаем проблема. Если пользователь ввел какие либо данные (например заявку), то информация об удаленных элементах теряется и реквизиты заявки превращаются в «объект не найден». Проблема решается довольно просто. В out.xml передаем также уникальные идентификаторы, а при создании новых элементов взамен удаленных присваиваем эти самые ГУИДы. В этом случае все хорошо.

Способы передачи данных

Большая проблема заключается в выборе способа передачи наших файлов. Для себя я определил несколько вариантов. Опишу их достоинства и недостатки.

1. Непосредственная загрузка через шнурок

Конечно же самый предпочтительный способ — позволяет быстро прокачивать файлы большого объема. Но, естественно, теряется мобильность, что непозволительно в 21 веке.

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

2. Яндекс диск и Ко

Изначально обмен через Яндекс диск показался мне оптимальным (при использовании WebDav), но в мае 2015 года Яша ввел SSL шифрование и все пропало.

На стороне 1С Предприятие проблема решалась довольно просто — просто подключаем ЯД как сетевой диск с помощью команды net use и работаем с ним как с обычной файловой системой используя «всю мощь» платформы 8.3.

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

3. Почта

Переписав обработки обмена под почту (я использовал самый распространенный mail.ru), я начал экспериментировать. В начале все было радужно — читаем заголовки писем, находим нужные, получаем вложения и далее по плану. Но опять возникла проблема — при попытке отправить через mail.ru вложений большого объема (экспериментально — более 20 мегабайт) письма приходили без вложений, хотя mail.ru официально заявляет о возможности прикреплять вложения до 1Гб. Толковой информации о проблеме я в «яндексе не нагуглил».

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

4. FTP серверы

Способ, конечно, жизнеспособный, но медленный, не модный и не современный. К тому же требует установку или аренду FTP сервера, а как мы помним, наше приложение должно работать «из коробки», без установки дополнительного ПО.

Поэтому я отказался от использования FTP сервера.

Добавьте статью в социальные сети или закладки:
Мобильное приложение / ,
Похожие записи
  • Мобильный прайс — 2
    Моя разработка на базе мобильной платформы 1С. Мобильный прайс предназначен для организации работы торговых представителей. Из 1С Предприятие выгружается информация о номенклатуре, контрагентах, ценах,...
  • Выгрузка номенклатуры и контрагентов в мобильное приложение
    Как известно, компания 1С создала инструменты для создания мобильных приложений. Вот я и решил попробовать создать свое мобильное приложение. Моя программа позволяет выгружать из...

Добавить комментарий

Top
Твой персональный программист 1C 2013
Все права защищены. При использовании материалов активная ссылка на ресурс обязательна.
Яндекс.Метрика