Это первая, вводная часть.
Кому она адресована - разработчику 1С, который желает создавать нативные приложения для Android
Цель статьи - просто и доступно донести то, на чем сам набил кучу шишек и потратил много времени
Добрый день! Современная тенденция такова, что мобильные решения занимают все большие сферы нашей жизни, в том числе и работу. Будучи разработчиком в 1С - франчайзи, все больше замечаю такую тенденцию и в бизнесе. И вот, с лета прошлого года мы озадачились разработкой собственных решений. Стоимость сторонних мобильных разработчиков высока, а заинтересовать пойти работать во франч - непосильная задача. Пришлось мне изучать Java и набивать шишки самому.
Мобильные платформы развиваются столь быстро, что любая статья стает неактуальной уже через 2, а то и 1 год, и найти готовое решение просто нереально, поэтому будем разбирать те вещи, которые должны, по моему мнению, оставаться актуальными.
В первой части мы займемся постановкой задачи.
Задача: Создать приложение, которое позволит осуществлять приемку товара в розничном магазине при перемещении со склада компании.
Мы не будем рассматривать вариант реализации на мобильной платформе 1С намеренно, наше решение будет построено на нативном приложении Android, поскольку именно это цель моих статей.
Оптимальным вариантом взаимодействия Android и 1С для решения такого рода задач я считаю работу через веб-сервис. Не будем вдаваться в подробности, мнений, как и решений, может быть множество, просто для меня это самый удобный вариант.
Начнем со средств разработки. Их просто море, я же пользовался Android Studio от Google, особо не копаясь в вариантах. По настройке данной среды множество статей, но данный шаг я бы пропустил, переходя к сути.
Сам я не смотрел перед разработкой никакие уроки, а приступил к работе и по ходу возникновения вопросов обращался к поисковику. Это на Ваше усмотрение. Далее я буду подробнее объяснять те моменты, на которых я потратил много времени, а элементарные вещи (типа интерфейса и сохранения настроек) буду пропускать.
Давайте познакомим Android с 1С. Поскольку "говорить" они будут на языке веб-сервисов, надо научить Android такому языку. Создадим пустой проект (я его назвал AcceptingOrders) и в среду разработки подключим пакет ksoap2, который позволит работать с протоколом SOAP. Данный пакет позволит обеспечить полное взаимодействие с веб-сервисом 1С.
Для удобства работы с веб-сервисом создадим класс HttpTransportBasicAuthSE, который будет работать подобно объекту WSОпределения в 1С - определять подключение к сервису с указанием пути к веб-сервису, имени пользователя, пароля и таймаутом подключения. Также в кллассе определен заголовок XML с указанием версии и кодировки. Данный класс я нашел на просторах интернета, добавив таймаут подключения и установив свойство "Connection" в значение "close" для более стабильной работы (при тестах в офисе оказалось, что при большом количестве запросов начинаются тормоза и не проходят до перезагрузки маршрутизатора).
Теперь структура проекта выглядит так:
Теперь наше приложение готово к тому, чтобы начать общаться с 1С. Для начала хватит?