Позвонил клиент и спросил - реально ли его работникам на мобильные установить приложение, желательно работающее в offline, для контроля визитов клиентов в течение периода. Мне припомнилось, что я что-то читал на инфостарте - а именно - Пример создания конфигурации на Android из 1C 8.3.2 . И мне захотелось попробовать сделать приложение.
Сама идея вроде простая - надо создать документ “заказ наряд” с плановой и фактической датой, есстественно, там же клиент и сотрудник. - Сначала думал один на день сделать - но решил что надо быть проще и сделал что бы клиент был в шапке.Итак стуктура конфы для конкретно этой задачи будет очень проста см. картинку.
Ну и сразу зачем то создал оборотный регистр ПосещениеКлиентов - как потом выяснилось он не особо и нужен оказался.
Быстро накидал эти метаданные не стал даже заморачиваться с формами - пока не до них и по упомянутой выше статье сделел мобильное приложение.
Тут же возникла первая проблема получившийся apk не устанавливался на моем телефоне и ничего информативного не писал. Расстроился - руки кривые.
Но на следующий день решил поставить на эмулятор - он хотя бы написал причину - “INSTALL_PARSE_FAILED_NO_CERTIFICATES” - google нам помог - снес JDK 7 установил JDK 6 пересобрал - запустилось.
Ожидал увидеть подключающееся к серверу нечто ну там данные вытянет оттуда - и что же я увидел - это полноценная платформа с конфигурацией САМА ПО СЕБЕ.
Итак возникла проблема - Надо откудато подтягивать данные и как-то их складывать обратно. Посмотрев на неактивные объекты конфигурации обратил внимание что Планы обмена как раз активны.
Далее залил себе 1С:Заказы из google play - там все заливается откудато - и стало понятно что оттуда то мы и упрем этот кусок.
Немного почитав партнерский форум - нашел и исходник этой конфы - он оказывается поставляется с 1С:Предприятие 8.3.
Далее все просто - скопировав и немного подправив то, что есть в этой конфе + создав конфу которая будет крутиться на серваке (туда надо из еще одной тестовой - Демонстрационная конфигурация "Управляемое приложение"), причем на 1С:Предприятие 8.2.
В итоге получилось две конфигурации:
Состав плана обмена - пока все что есть:
Надо не забыть опубликовать и web-сервис базы на 1С:Предприятие 8.2.
Как всегда немного отладив баги (ну да, у меня кривые руки - вон из рисунка с базами все должно быть ясно) получил, что они работают - кстати та, что мобильное приложение отлично запускается в режиме УФ.
Основную выложил на свой сервер и опубликовал ее.
Присоединяюсь к ней из 8.3 - и никакого отклика. Прошелся отладчиком нашел:
WSОпределения - хм, непорядок она же без тайм аута - добавил 150. Запустил, приложение отвалилось, но не зависло.
Выяснилось что при копировании Web-сервиса слетел флажок с http://localhost/ws1. Поставил - заработало.
Ура!
Собрал apk. Не работает - ругается на WSОпределения - нет конструктора. Мой таймаут там не в кассу - убрал заработало и apk.
Теперь задача - как это дать посмотреть заказчику.
Ну google play же! Не заставлять же его самого качать и устанавливать apk.
Вот тут я то же попарился.
0. Заплатить 25$ - к заказчику ехать дороже а разбираться можно ли teamviewer’ом подключиться к его телефону уже не хотелось.
1. Скриншоты - ну это просто.
2. Логотип в 512х512 (ну или сколько там надо) пришлось увеличить в паинте.
3. Как любитель всего нового я сразу переключился на новый интерфейс (JDK 7 ага) - и тут проблема apk заливается, а потом говориться о какой-то оптимизации и не добавляется. Погуглил - не помогло. Переключился в старый интерфейс - попробовал залить - и тут ругается, но уже более осмысленно - предлагает zipalign запустить.
Запустил: zipalign.exe -f -v 4 C:\android\result\com.gst.planningavisitclients.apk C:\android\result\com.gst.planningavisitclients2.apk
Этот гад соптимизировал только 3 png файла и стоило из-за этого мне 2 часа доходить, что старый интерфейс будет лучше(я имею ввиду google play для разработчиков).
Но ура приложение наконец выложено.
P.S. все эти приключения происходили до 6 утра - потом жене решил похвастаться, что теперь и на мобильники 1С добралась - каков же был мой облом - когда на моем телефоне (у меня galaxy note) она стала жутко лагать на самых простых операциях, на телефоне дочери она тупо не запустилась, а на телефоне жены не хватило памяти ((((
В итоге скорее всего просто опубликую вебинтерфейс для этой конфы - вроде должно быстрее работать и практически со всеми телефонами - не надо будет столько памяти.
Но даже если клиент решится на apk - предстоит еще куча дел:
1. Разделить обмен по пользователям - что бы не грузить чужих клиентов
2. Написать обмен с базой откуда тянуть эти заказы и клиентов
3. Добавить отчетов для менеджеров
4. ну и далее по аппетитам
В файлах:
1. конфа на 8.3 - мобильная - только для разработки и отладки
2. конфа на 8.2, которую надо разместить на сервере и с которой надо будет обмениваться.
3. apk
4. эта графоманская заметка в pdf
5. с п.1 по п.4 заархивированное в один zip
6. то что что и п.5 только без apk он тяжелый и его можно слить из google play
Для того что бы использовать это под себя надо:
1. Установить конфу 8.2 себе на сервер и опубликовать ее
2. Установить apk на мобильные устройства
3. В настройках приложения на мобильном устройстве прописать путь к опубликованной базе 8.2, там же задать пользователя и поставить флаг запрашивать пароль (вы ведь пользователя в опубликованной базе с паролем завели)
4. В меню приложения на мобильном нажать "Синхронизировать данные"