Как с помощью конкретной технологии решить конкретную задачу? Или опыт разработки мобильного приложения на платформе 8.3.

31.03.15

Разработка - Мобильная разработка

Если существует технология и задача, то ответ напрашивается сам собой – взять и решить поставленную задачу. Именно об этом я бы и хотел рассказать вам в этой статье.
Сравнительно недавно передо мной встала задача автоматизации деятельности торговых агентов крупного оптового дистрибьютора. Казалось бы, что может быть проще? Существует множество готовых решений, бери и пользуйся, но все было бы хорошо, если бы не ряд требований заказчика.

Задача:

Обеспечить работу торговых представителей на мобильных устройствах с использованием приложения удовлетворяющего следующим требованиям:

  • Приложение должно быстро загружать из базы остатки, цены, дебиторку.
  • Обработка заявок и обратный ответ должны происходить в режиме реального времени.
  • Приложение должно уметь работать со всем прайсом, а именно (~20 000 позиций номенклатуры и ~150 000 характеристик)
  • Приложение должно уметь отображать изображения товаров (~18 000 изображений)
  • В приложении должна существовать удобная и эргономичная форма подбора товаров
  • Приложение должно контролировать местоположение агентов
  • В приложении должна быть возможность контроля просроченной задолженности клиентов.

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

Если нет готового решения удовлетворяющего ВСЕ требования клиента, решение очевидно – необходимо разработать индивидуальное решение для конкретного заказчика. Но что делать, если бюджет и сроки весьма сжаты? Вот тут-то мы и подошли к вопросу о технологии.

Технология:

Писать приложение совсем с нуля дело не простое и не быстрое, но если взять платформу адаптированную под написание подобных приложений – дело пойдет значительно быстрее, именно поэтому наш выбор пал на относительно новую технологию разработки приложений для мобильных устройств от фирмы 1С «Мобильная платформа 1С:Предприятия 8».

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

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

Чтобы не изобретать велосипед, за основу приложения был взят демо-пример mademo.cf, поставляемый фирмой 1С со своей мобильной платформой. Вариантов обмена мобильного приложения с центральной базой не мало, но т.к. стояла задача получения ответа realtime обмен с базой было решено выполнять с использованием web сервисов. В указанном демо-примере обмен уже был реализован именно таким образом. Минус заключался в том, что обмен с центральной базой выполнялся объектами с идентичными метаданными. В моем же случае в мобильной базе состав реквизитов был существенно урезан, поэтому пришлось доработать процедуры выгрузки/загрузки данных с использованием конвертации данных. Попытка выгрузки всех необходимых объектов привела к тому, что скорость обмена не удовлетворила бы не только заказчика, но и меня, поэтому было принято решение - все необходимые для работы на мобильном устройстве данные по максимуму помещать в регистры сведений и в таком виде выгружать их на устройства. Используя данную модель хранения данных получилось ускорить процесс выгрузки/загрузки данных в СОТНИ раз. Первая маленькая победа, все необходимые данные для работы агентов попали в мобильное устройство. Теперь мне предстояло проверить, как быстро сможет мобильная платформа эти данные отображать и обрабатывать. Набросав примитивную форму подбора я убедился в том, что платформа успешно справилась и с этой задачей. Осталось дело за малым, набросать нужные формы и заложить в них необходимый требуемый заказчику функционал, кстати стоит отметить, что демо пример от 1С содержит примеры всех особенностей работы мобильной платформы – это и работа с мультимедиа, с геопозиционированием,  а так же с функциями мобильного устройства (набор номера из приложения 1С). При этом данные возможности постоянно расширяются с появлением свежих платформ.

Из особенностей, которые хотелось бы отметить, я выделю следующее:

  • Разработка ведется в привычном Конфигураторе 1С, не пришлось тратить время на изучение новых средств разработки.
  • В возможности платформы зашит большой функционал учитывающий работу на мобильном устройстве.
  • Очень удобное обновление конфигурации мобильных устройств. Буквально 1 клик и на всех устройствах уже новая конфигурация, что очень сильно разгружает отдел ИТ.
  • Возможность использования web сервисов для обмена.
  • Скорость работы с большими объемами данных (при грамотной организации модели данных).

Скорость работы нашего приложения полностью удовлетворила клиента, так что поставленную цель можно считать достигнутой. Первый обмен с центральной базой выполнялся через интернет соединение и занял ~10 минут (8 из которых заняла загрузка изображений), дальнейшие регулярные обмены занимают 10-30 секунд, что в большинстве своем зависит от качества интернет соединения. В ближайших планах - написание нового функционала для реализованного приложения. Реализация данного решения заняла порядка 50 часов, при условии, что пришлось потратить значительную часть времени на некоторые эксперименты, связанные с большим объемом данных. По финансовым затратам разработка нового приложения оказалась ниже, чем оцениваемые клиентом затраты на покупку адаптированных решений, плюс данное решение всегда можно доработать или поправить с весьма незначительными трудозатратами.

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

Мобильное приложение удаленная работа планшет КПК

См. также

Мобильная разработка Мессенджеры и боты Платформа 1С v8.3 1С:Конвертация данных Платные (руб)

Теперь создать telegram-бота - элементарно. Достаточно просто нарисовать блок-схему телеграм-бота, и он сразу заработает. Это возможно при использовании Графического конструктора телеграм-ботов. Это единственный конструктор ботов для telegram, чье качество и функционал подтверждены фирмой 1С, есть сертификат 1С:Совместимо. Расширение в интерактивном режиме, с помощью блок-схем, позволяет с минимальными трудозатратами создать телеграм-ботов в любой конфигурации, работающей на платформе «1С:Предприятие 8.3».

13200 руб.

27.12.2021    38198    108    161    

201

Мобильная разработка Сканер штрих-кода Терминал сбора данных Управляемые формы Мобильная платформа 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Сбор заказов, инвентаризация, проверка ценников, просмотр полной информации об остатках и ценах со смартфона Онлайн - все это содержит в себе решение 1С "Штрихкод-информер" (штрих-код чекер). Отправка данных со смартфона выполняется либо напрямую в открытую форму документа, отсканировав QR-код, либо в общую корзину учетной системы, не подходя к компьютеру. Кассир или оператор сможет просмотреть список присланных данных и загрузить в любую форму, поддерживающую работу с ТСД. Для работы с мобильным приложением требуется опубликовать HTTP-сервис из поставляемого расширения.

3000 руб.

03.12.2018    59291    192    103    

172

Сканер штрих-кода Терминал сбора данных Мобильная разработка Монитор заказов Оптовая торговля Розничная торговля Ценообразование, анализ цен Программист Пользователь Платформа 1С v8.3 Мобильная платформа 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Простой мобильный ТСД (терминал сбора данных) сканер для 1С для смартфонов на iOS и Android, не требующий сложных настроек и установки дополнительных программ. Обмен между Вашей 1С и мобильным приложением осуществляется через облачный сервис и расширение конфигурации. Работает с конфигурациями УТ 11, ERP, КА2, Розница 2, Розница 3, УНФ 1.6, УНФ 3.0. Полнофункциональный демо-доступ для своей конфигурации можно запросить в настройках мобильного приложения - все необходимое придет на почту автоматически.

2000 руб.

22.04.2019    97225    586    189    

321

Логистика, склад и ТМЦ Сканер штрих-кода Терминал сбора данных Мобильная разработка Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

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

3450 руб.

28.04.2023    9469    15    0    

9

Мобильная разработка Платформа 1С v8.3 Конфигурации 1cv8 Финансовые услуги, инвестиции Управленческий учет Платные (руб)

Мобильное приложение и конфигурация 1С для автоматической торговли на бирже через API Тинькофф банка. Достаточно задать настройки, нажать «Пуск», и робот сам торгует ежедневно.

7000 руб.

25.05.2022    4644    1    0    

6

Мобильная разработка WEB-интеграция Программист Мобильная платформа Абонемент ($m)

Экспериментальный релиз и простенький скрипт к нему закрывает потребности в любых видах синхронизации между устройствами Simple и между Simple и бек-системами (например 1С). По сути – это очень простой python-скрипт, который можно запустить на доступной машине, сервере или VPS и он будет связывать клиентские устройства между собой и с 1С или другими бек-системами. В самой платформе появилось для этого множество доработок для поддержки стабильного постоянного соединения, докачки больших файлов и работе в фоне. Дополнение к основной статье https://infostart.ru/1c/tools/1153616/

1 стартмани

23.08.2024    1217    6    informa1555    1    

13

Мобильная разработка Мобильная платформа Абонемент ($m)

В этом релизе собрано много нового из области интерфейса, связи, хранения и важные новые способы управления. Дополнение к основной статье https://infostart.ru/1c/tools/1153616/

1 стартмани

25.06.2024    2607    29    informa1555    0    

33
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. maxx 996 31.03.15 21:55 Сейчас в теме
Интересно спасибо!
Единственное так и не понял за счёт чего все-таки ускорился обмен. Только лишь за счёт того вместо справочников воспользовались регистрами сведений? А почему как вы думаете?
4. Leo_A 103 01.04.15 10:01 Сейчас в теме
(1) maxx, ускорение при использовании регистров сведений заключается в том, что все необходимые данные выгружаются одним набором, а не пообъектно, т.е. в структуре регистра сведений содержится вся необходимая информация и ссылка на объект - соответственно не нужно передавать справочник как объект, достаточно его ссылки.

(2) pablo_escobar, про ускорение написал выше, а про версию платформы пожалуй расстрою Вас, т.к. на 8.3.6 делались только скрины, запуск же делался на 8.3.5. Но проблем с вылетами и убиванием базы проблем совсем не было. Устройства у всех агентов samsung galaxy tab 2. Про другие устройства к сожалению вообще ничего не скажу, т.к. это первый опыт. Единственное, запускал приложение на телефоне lenovo s860, но активно не работал.

(3) flyer, спасибо, я не волшебник, я только учусь :) Запускались на 8.3.5, в ближайшее время, если тестовая эксплуатация 8.3.6 пройдет хорошо, перейдем на нее, уж больно она глаз радует. С подбором пришлось немного похитрить, т.к. у клиента товар с характеристиками. Получилось все уложить в пределы одного экрана, чтобы не бегать между окнами, в остальном вроде все стандартно, кнопки ввода количества, отображение остатков и подобранного количества в таблице, открытие картинки товара по кнопке. Цели сделать универсальный механизм небыло, все писалось индивидуально, под требования клиента, а так, можно конечно расширить функционал подбора, например: подбор в упаковках, история продаж, выделение категорий товаров.
9. maxx 996 01.04.15 21:13 Сейчас в теме
(4)так и не понял по скорости насчет регистров и справочников. С точки зрения выгрузки что 100 элементов справочника выгружать или 100 записей регистра думаю скорость будет одинаковой. С точки зрения загрузки , тут да запись 100 элементов будет медленней чем одна запись набора записей, но это речь идет о первоначальной загрузке только?
2. pablo_escobar 31.03.15 23:19 Сейчас в теме
Я так понимаю обмен ускорился за счет того, что при использовании справочников выгружались остатки по все номенклатуре, а при использовании регистров сведений только изменившееся данные? Leo_A, вы что запустили в работу на мобильной платформе 8.3.6 (судя по скринам)? На 8.3.4 и 8.3.5 наблюдались ли произвольные вылеты приложения? Разрушение базы? У нас порядка 20 агентов, у всех периодически вылеты моб. платформы (1-2 раза в день) Иногда портится база, но это редко. Планшеты разные.
3. flyer 233 01.04.15 08:03 Сейчас в теме
Автор молодец! однозначно плюс. вижу что версия 8.3.6 не всякий бы решился на тестовой версии внедрять. если не сложно напишите про функционал подбора товара. что удобного сделано. была аналогичная задача. и на каких устройствах ставили программу.
5. Makushimo 160 01.04.15 11:38 Сейчас в теме
Это введение к циклу статей?
10. Leo_A 103 02.04.15 07:03 Сейчас в теме
(5) Makushimo, возможно. Если будет достаточно времени - постараюсь причесать приложение и выложу с кодом на обозрение.
(6) qwed557, агенты работают уже с полгода, интенсивность не сильно высокая, заявок по 5-10 в день.
(8) DitriX, в мобильное приложение выгружались все справочники, кроме номенклатуры и характеристик. Точнее справочник номенклатуры выгружался, но выгружались только группы, для сохранения иерархии, в регистре есть отдельное измерение "Родитель", по которому делается отбор.
(9) maxx, не совсем так, выгрузка 100 элементов справочника выполняется в разы медленнее, чем выгрузка одного набора записей со 100 строками. Это особенность конвертации данных, возможно если писать свою выгрузку, большой разницы не будет. Теперь на счет загрузки. Как раз основной прирост скорости получился на этапе загрузки, по объектная запись 200 000 элементов выполнялась больше 20 часов, точно уже не скажу, просто в один момент устал следить за процессом и убрал планшет в стол, потом через пару дней увидел, что процесс завершился и даже удачно. Загрузка регистра с таким же количеством записей выполнилась за несколько секунд, я по началу даже подумал, что данные не выгрузились, но когда увидел, что они все же есть, приятно удивился. Еще один положительный момент в том, что размер файла выгрузки сильно меньше и всегда есть возможность при сбое выполнить полную очистку и загрузку данных прямо "в поле". Опять же, если писать обмен руками, размеры файлов думаю отличаться не будут, но скорость загрузки думаю не сильно вырастит.
nsirotkin@mail.ru; +1 Ответить
6. qwed557 30 01.04.15 12:55 Сейчас в теме
Тоже интересует ответ на вопрос с порчей базы, У нас тоже бывало что портились базы у агентов, верней пока то случилось только один раз, но было сильно неприятно, когда потерялись заявки. Пока решили архивировать заявки за день в xml чтобы можно было быстро восстановить. Сколько по времени и как интенсивно работают агенты?
11. Leo_A 103 02.04.15 07:07 Сейчас в теме
(6) qwed557, кстати до этого много работал с расширением для карманных компьютеров (РКК) от 1С на win mobile. Для одного из клиентов тоже писал выгрузку заявок в текстовый файл, т.к. база редко но падала.
7. _Z1 38 01.04.15 14:49 Сейчас в теме
(0) Скажите а в каком формате хранит мобильное приложение данные ?
т.е. это бд sqlite или что-то другое.
8. DitriX 2101 01.04.15 19:21 Сейчас в теме
(7) в том же, что и стационарная файловая.
По поводу регистров - не до конца понятно: вы вообще не пользовались справочниками или там хранили только ссылки?
12. LaNaite 135 07.04.15 19:05 Сейчас в теме
А проблема с "порчей базы" популярна, да? У меня она появилась недавно, после того как переписала с 8.3.4 на 8.3.5 с использованием фоновой передачи данных. Каждые 3 минуты из регистра сведений "сливалась" информация на сервер (порядка 50-100 записей). В этом регистре периодически появлялись строки с ошибкой "Объект не найден", и при очередной попытке записи - закрывалась текущая форма, и выкидывало на рабочий стол. Пересматриваю код, не могу понять к чему придраться. Использую не планы обмена, а web-сервисы.
13. Leo_A 103 08.04.15 09:35 Сейчас в теме
(12) LaNaite, какого плана информация сливается из РС, данные по заявкам от клиентов? Для какого типа объектов появляется надпись "Объект не найден"?
Просто использование web-сервисов и планов обмена - понятия немного не связанные. Планы обмена предназначены для регистрации изменений, а web-сервисы для миграции данных.
Опять же нужно смотреть код, каким образом ссылки выгружаются из одной базы в другую, тогда возможно станет понятна причина возникновения "Объект не найден".
14. LaNaite 135 09.04.15 12:47 Сейчас в теме
(13) Спасибо за отклик на проблему!
У меня два регистра: "Контакты" и "КонтактыПереданные".

РС "Контакты" не подчинен регистратору, периодичность "в пределах секунды".
Измерения: "Отчет" - ссылка на одноименный документ.
Ресурс: "Результат контакта" - ссылка на перечисление.
"КонтактыПереданные" - дублирует регистр "Контакты".

За 3 минуты в регистре может накопиться порядка 50-70 записей.
Раз в 3 минуты я передаю все записи из регистра "Контакты" на сервер, дублирую их в регистр "КонтактыПереданные" и очищаю первый.
(Все в транзакции).
На веб-сервер передаю записи не по одной, а пакетом (таблицей).

Одновременно могут работать около 100 пользователей.

Для какого типа объекта появляется надпись "Объект не найден" - не могу понять. Если на планшете открыть регистр, то в нем сначала отображаются, например, 3 записи. Если отсортировать по любой колонке, то появятся еще несколько! Поле <Объект не найден 78921789hejkwh879> в ячейках отсутствует. Казалось бы нет битых объектов. Но при попытке открыть запись, появляется ошибка "Объект не найден".

Я склоняюсь к корявому коду в реализации фоновых заданий. Может они в параллели как-то идут и конфликтуют. Буду ковырять пока здесь, т.к. до этого - проблем не было.
15. Leo_A 103 09.04.15 19:13 Сейчас в теме
(14) LaNaite, всегда рекомендую при явно воспроизводимой ошибке писать в 1С, это поможет и вам избавиться от проблемы и другим в будущем не напороться.
Что касается ошибки, тип определить не сложно, достаточно вызвать ТипЗнч и даже для битой ссылки оно вернет корректный тип, можно начать с этого.
Опять же не совсем понял, Объект не найден появляется на мобильном устройстве или в базе, в которую переносятся данные?
16. Яна44 19.04.15 18:17 Сейчас в теме
Leo_A, расскажите подробней пожалуйста как вы реализовали обмен приложения с центральной базой, если у них различные метаданные. Как вы доработали процедуры выгрузки/загрузки данных с использованием конвертации данных. Очень интересует этот вопрос, так как пишу диплом и передо мной стоит та же проблема обмена.
17. Leo_A 103 20.04.15 18:59 Сейчас в теме
(16) Яна44,
Если Вы про доработку демо базы от 1С, то выгрузка/загрузка была реализована с использованием механизма конвертации. Правила для обмена пишутся с помощью конфигурации "Конвертация данных", куда выгружаются обе структуры конфигураций. В процедурах загрузки/выгрузки, с использованием типовой обработки встроенной во все типовые конфигурации "УниверсальныйОбменДаннымиXML" выполняется чтение пакета и этой же обработкой выполняется выгрузка в обратную сторону. Сжатое сообщение обмена передаются через пакет XDTO в переменной типа "DataStorge".
Вот и вся концепция.
18. k4rimov 21.04.15 18:13 Сейчас в теме
Интересно.
Вот только момент, что справочник Номенклатура загружается на устройство только в виде Групп.. а дальше, как подобрать конкретный элемент Номенклатуры? Или реализована on-line прогрузка данных по группе?
Для работы в "поле" может быть критично, если данные не доступны offline, касательно торговых агентов, которые могут прийти к клиенту на Торговую точку в "подвал" или еще куда)
А так есть куда расти - мерчендайзинг, предварительный сбор заказов, расширение CRM, майнинг лидов и тп.
Будем последить)
19. Leo_A 103 23.04.15 09:13 Сейчас в теме
(18) k4rimov,
Не совсем так, группы загружаются только для того, чтобы сохранилась иерархия справочника, все данные и ссылки на номенклатуру хранятся в регистре, т.е. в регистре есть измерение "Родитель"-по нему делается фильтр при переходе между группами и "Номенклатура"-ссылка на номенклатуру без фактического наличия объекта, а наименование, коэффициенты упаковок и прочая нужная информация для отображения и расчетов содержатся в ресурсах регистра. Никаких дополнительных подгрузок данных в поле не осуществляется, максимум загрузка свежих остатков при необходимости.
20. k4rimov 25.04.15 17:36 Сейчас в теме
(19)
и "Номенклатура"-ссылка на номенклатуру без фактического наличия объекта, а наименование, коэффициенты упаковок и прочая нужная информация для отображения и расчетов содержатся в ресурсах регистра

А ну понятно) Фактически, объект это совокупность его реквизитов и код) Вы просто грузите необходимые реквизиты объекта в регистр.
Еще вопрос - т.е. все данные по одной номенклатуре у вас находятся в одном регистре? И единица измерения с коэффициентами и наименованием единицы тоже? Почему отказались от второго регистра, типа ЕдиницыИзмерения со списком всех единиц, и не стали хранить КлючЗаписи регистра ЕдиницИзмерения (описывающий экземпляр единицы изм.) в общем регистре с Номенклатурой?
21. Leo_A 103 25.04.15 23:09 Сейчас в теме
(20) k4rimov,
Почему отказались от второго регистра, типа ЕдиницыИзмерения со списком всех единиц

у данного клиента не используются единицы вообще, все ведется штуках.
Я описал концепцию, остальное развитие естественно возможно, все же зависит от потребностей. На данном этапе просто не было необходимости создать универсальное приложение.
Оставьте свое сообщение