Не задано расположение компонентов для компьютера 1с сборщик мобильных приложений
В компанию был куплен аппарат CipherLab RS30, ТСД на базе ОС Android 4.4.2 cо встроенным сканером штрихкода. Было решено разработать приложение для работы с этим чудом техники на базе Мобильной Платформы 1С. Для примера была взята конфигурация "Мобильная Касса", в которой была уже реализована работа со штрихсканером, с помощью внешних компонент (Стандартная от 1С, вторая от компании ScanCode).
После опытов оказалось, что штрихкод считывается во внешнем окне, которое загораживает весь интерфейс, плюс для каждого считывания штрихкода нужно нажимать кнопку для вызова этого окна, что было совершенно неприемлемо. Было принято решение разработать собственную внешнюю компоненту для считывания штрихкода и передачи его в 1С, без дополнительных окон и нажатий лишних кнопок.
Пришлось декомпилировать платформу, изучить весь внутренний код, но все попытки заканчивались неудачей. И вот настал день, когда надо было окончательно решить, каким способом организовать работу с этим аппаратом, и мы было уже отказались от идеи внешней компоненты и подумывали запустить всю систему через RDP, как, о чудо, после еще одной отчаянной попытки решение было найдено.
А теперь самое главное.
Ограничения: Данный способ подходит только для приложений, собранных с помощью Конфигурации "Сборщик мобильных приложений", также способ подразумевает небольшое вмешательство в исходные файлы мобильной платформы.
Дано:
1. CipherLab RS30
2. SDK для вашего сканера
3. Сборщик мобильных приложений
4. Сама мобильная платформа
5. Android Studio
А теперь начинается магия:
1. Распаковываем файлы платформы
2. Нас интересует Android\prjandroid-arm\bin\permissions.xml этот файл
Этот файл используется при сборке приложений и добавляет в AndroidManifest разрешения, которые указаны в конфигурации.
3. Нас интересует секция <LocalNotification>, которая добавляется, если установлена отметка Локальные Уведомления в требуемых разрешениях мобильного приложения. По умолчанию она выглядит так.
5. Дальше нам нужно добавить фильтр, который будет указывать, какое событие может принять наш receiver, его-то мы и будем передавать из нашей компоненты.
Теперь наша секция должна выглядеть так
6. Теперь запаковываем все обратно, наша мобильная платформа готова.
7. Дальше можно приступать и к разработке в 1С, создаем обработчик локальных уведомлений
Всем большое спасибо за внимание, надеюсь, эта информация будет кому-нибудь полезна.
В результате был написан внешний сервис, работающий в фоновом режиме, который получает штрихкод со сканера и передает его в 1С.
Как-то тихо и без особых описаний работы 1С выпустила конфигурацию «Сборщик мобильных приложений», которая призвана стать этаким органайзером для разработки мобильных приложений.
В текущей последней версии 1.0.3.17 существует несколько не больших проблем, которые на первый взгляд выглядят как баги.
Как-то тихо и без особых описаний работы 1С выпустила конфигурацию «Сборщик мобильных приложений», которая призвана стать этаким органайзером для разработки мобильных приложений.
В текущей последней версии 1.0.3.17 существует несколько не больших проблем, которые на первый взгляд выглядят как баги.
Первая проблема, с которой сталкиваемся, это невозможность запуска конфигурации без пользователя, получаем вот такую ошибку:
«Версия конфигурации отличается от версии информационной базы. Необходимо выполнить обновление конфигурации, запустив прикладное решение от имени пользователя, обладающего правами «Администратор»
Эта проблема решается достаточно просто, нужно всего лишь запустить конфигуратор и добавить пользователя с правами «Администратор».
Далее прикладное решение нужно запустить от имени этого пользователя.
Вторая проблема вылазит когда мы пытаемся создать элемент в справочнике «Мобильные конфигурации». Нажимаем кнопку «Создать» и получаем ошибку «Элементы можно создавать только в группах»:
Выход заключается в следующих действиях:
На верхней панеле есть кнопка «Создать», которая вызывает подменю . В нем нажимаем пункт «Мобильная конфигурация»:
После чего открывается достаточно друженлюбное окно, в котром можно создавать группы:
«Не задан префикс идентификатора приложения в настройках поставщика»:
Выход скрывается также довольно близко:
И начинаем вводить данные в элемент справочника «Поставщики мобильных решений».
Префикс должен обязательно быть с «точкой» внутри. И нажимаем «Создать ключ разработчика»:
Еще нужно не забыть указать пути к компонентам в настройках приложения:
Теперь можем без проблем создавать мобильные приложения в конфигурации «Сборщик мобильных приложений (1.0.3.17)».
Разработаем простое мобильное приложение на 1С для Android. Для тестирования можно использовать физическое устройство (свой смартфон или планшет), но гораздо удобнее использовать виртуальное. Для этого нужно установить эмулятор, например Genymotion.
Если уже есть установленный VirtualBox, то можно скачать без него. Иначе скачиваем с VirtualBox, это нижняя ссылка. Затем нужно запустить скачанный файл и установить VirtualBox и Genymotion. Здесь не должно возникнуть сложностей.
После этого нужно запустить Genymotion. В открывшемся окне нужно добавить новое виртуальное устройство:
Слева можно настроить отборы, справа выбрать какое устройство будем создавать. Например, выберем версию Android 7.0, устройство Custom Phone:
Нажмем справа внизу кнопку Next и будет открыто окно для настройки создаваемого устройства. Уменьшим разрешение экрана до 480х800 (чем выше разрешение, тем сильнее будет тормозить эмулятор), 240 HDPI, а также уменьшим количество процессоров до 2-х и память до 1024 МБ:
Нажмем кнопку Install и начнется скачивание образа виртуального устройства:
После скачивания образа в списке появится новое устройство, которое можно запустить, выбрав в меню команду Start:
Можно сразу в настройках включить русский язык: Settings – Language & Input – Language, добавить новый язык и поставить его на первое место:
Иногда бывает, что виртуальная машина не запускается, при этом Genymotion не пишет каких-то внятных ошибок. Чтобы увидеть ошибку нужно запустить VirtualBox, выделить созданную нами виртуальную машину и нажать Запустить:
В этом случае хотя бы можно будет увидеть ошибку и поискать решение в интернете.
Установка мобильной платформы
Теперь нужно установить мобильную платформу. Если у Вас нет доступа к мобильной платформе, то можно скачать учебную версию, но она имеет ряд ограничений. Если доступ есть, то можно скачать здесь.
Распаковываем скачанный архив с мобильной платформой и из папки Android копируем файл 1cem-x86.apk в какое-нибудь другое место. Это 32-х разрядная мобильная платформа для процессоров архитектуры x86. В этой же папке есть файл 1cem-arm.apk. Это 32-х разрядная мобильная платформа для процессоров архитектуры ARM. Про разницу между архитектурами x86 и ARM можно почитать здесь. Но так как у меня процессор intel, то я буду использовать файл 1cem-x86.apk.
Мобильная платформа будет установлена на виртуальную машину и в списке приложений появится значок 1С:
При запуске будет открыт список приложений (конфигураций), который пока пуст:
В эмуляторе Genymotion можно установить мобильную платформу просто перетянув файл мобильной платформы из проводника Windows на экран эмулятора:
После этого в настройках появится пункту меню Для разработчиков:
И уже в нем нужно разрешить отладку по USB:
Сразу после тестирования нужно запретить отладку по USB! Иначе на Ваш смартфон могут быть установлены вирусы!
Разработка мобильной конфигурации
Теперь разработаем мобильную конфигурацию. Создадим новую базу 1С, путь к базе лучше указать на латинице, так будет меньше проблем. В свойствах конфигурации установим Назначение использования = Приложение для мобильной платформы:
Добавим произвольную общую форму:
И в модуле формы в обработчике ПриСозданииНаСервере добавим следующий код:
Процедура ПриСозданииНаСервере ( Отказ , СтандартнаяОбработка )
А также изменим имя конфигурации:
Обновим конфигурацию базы данных.
Платформа предупредит о том, что нужны полномочия администратора, но так как мы не будем публиковать на веб-сервере, то можно проигнорировать это.
В открывшемся окне нужно снять флаг Создавать виртуальный каталог на веб-сервере, указать Каталог, куда будет записан файл мобильной конфигурации (лучше использовать только латиницу), а также установить флаг Обновлять мобильное приложение при обновлении конфигурации базы данных:
После это нужно нажать на кнопку Опубликовать.
Если нажать ОК и выйти из приложения кнопкой назад, то мы попадем в список всех приложений (конфигураций) мобильной платформы, где пока что есть только одна, разработанная нами конфигурация:
Сборка мобильного приложения
Выполним сборку мобильного приложения, чтобы запускать его не через мобильную платформу, а как отдельное приложение.
Для начала нужно установить конфигурацию Сборщик мобильных приложений. Установочные файлы находятся в архиве с мобильной платформой, в папке MobileAppMaker. Это обычная конфигурация 1С. Сначала нужно установить шаблон, а потом из шаблона создать новую конфигурацию:
Также для сборки потребуется установленная Java и Android SDK.
Java можно скачать тут. С установкой не должно возникнуть проблем. Путь к Java также желательно добавить в системную переменную среды Path, если он автоматически не был добавлен туда. Чтобы проверить установлена ли Java и какой версии можно в командной строке выполнить команду java -version:
Для установки Android SDK можно скачать Android Studio и через него установить все необходимое. Android Studio можно скачать по этой ссылке, проблем с установкой также не должно быть. При установке нужно будет выбрать путь для установки Android SDK, здесь нужно выбирать путь только на латинице, желательно покороче и без пробелов, например: C:\AndroidSDK.
Для сборки на мобильной платформе 8.3.19 нужна версия SDK API 29. Чтобы скачать нужную версию SDK нужно запустить Android Studio и в стартовом окне нажать на гиперссылку More Actions и выбрать пункт SDK Manager:
В открывшемся окне, на закладке SDK Platforms нужно отметить нужную версию API и нажать ОК. Будут скачаны файлы выбранной версии SDK. 31 версия (последняя на 17.08.2021) была установлена вместе с Android Studio.
В открывшемся окне нужно нажать на кнопку Создать:
Будет открыто окно для заполнения путей к компонентам:
После этого нужно выполнить настройку параметров поставщика:
Так как будем собирать для Android, то на закладке Общие параметры нужно установить флаг Для ОС Android:
Появится закладка Параметры для ОС Android. Здесь нужно указать Префикс идентификатора приложения для ОС Android (например ru.test) и создать Ключ подписи приложений:
Для создания ключа нужно нажать на кнопку с плюсом:
Будет открыто окно где нужно ввести параметры ключа и нажать Сформировать ключ:
Хеш ключа будет заполнен в поле Хеш SHA-1 ключа подписи.
Теперь нужно загрузить мобильную платформу в сборщик. Для этого нужно перейти в раздел Мобильные версии, добавить новый элемент и выбрать архив с мобильной платформой. После загрузки будет создан новый элемент справочника, в котором будут указаны параметры мобильной платформы, в том числе версия API, которую нужно использовать при сборке (именно поэтому мы скачивали 29 версию API SDK):
В свойствах конфигурации нужно заполнить поставщика и версию:
В сборщике в разделе Мобильные конфигурации нужно нажать на кнопку Загрузить конфигурацию, выбрать файл с записанной мобильной конфигурацией и нажать Загрузить:
Будет создана группа и в ней элемент с мобильной конфигурацией:
После загрузки конфигурации будет предложено создать группу справочника Мобильные приложения. Можно согласиться и заполнить параметры как на рисунке:
В поле Мобильная платформа нужно выбрать элемент справочника Мобильные платформы. А на закладке Конфигурации и представления в поле Источник нужно выбрать группу с мобильной конфигурацией.
После этого в этой группе (справочника Мобильные приложения) нужно создать новый элемент и нажать на кнопку Собрать приложение:
Начнется процесс сборки приложения, по окончании которого на закладке Результаты сборки можно будет сохранить собранное приложение на диск:
Для установки мобильного приложения на виртуальную машину нужно в командной строке ввести команду adb install F:/ru.test.test-x86.apk
На виртуальной машине в списке приложений появится новое приложение. Уже не в составе мобильной платформы, а как отдельное приложение:
В компанию был куплен аппарат CipherLab RS30, ТСД на базе ОС Android 4.4.2 cо встроенным сканером штрихкода. Было решено разработать приложение для работы с этим чудом техники на базе Мобильной Платформы 1С. Для примера была взята конфигурация "Мобильная Касса", в которой была уже реализована работа со штрихсканером, с помощью внешних компонент (Стандартная от 1С, вторая от компании ScanCode).
После опытов оказалось, что штрихкод считывается во внешнем окне, которое загораживает весь интерфейс, плюс для каждого считывания штрихкода нужно нажимать кнопку для вызова этого окна, что было совершенно неприемлемо. Было принято решение разработать собственную внешнюю компоненту для считывания штрихкода и передачи его в 1С, без дополнительных окон и нажатий лишних кнопок.
Пришлось декомпилировать платформу, изучить весь внутренний код, но все попытки заканчивались неудачей. И вот настал день, когда надо было окончательно решить, каким способом организовать работу с этим аппаратом, и мы было уже отказались от идеи внешней компоненты и подумывали запустить всю систему через RDP, как, о чудо, после еще одной отчаянной попытки решение было найдено.
А теперь самое главное.
Ограничения: Данный способ подходит только для приложений, собранных с помощью Конфигурации "Сборщик мобильных приложений", также способ подразумевает небольшое вмешательство в исходные файлы мобильной платформы.
Дано:
1. CipherLab RS30
2. SDK для вашего сканера
3. Сборщик мобильных приложений
4. Сама мобильная платформа
5. Android Studio
А теперь начинается магия:
1. Распаковываем файлы платформы
2. Нас интересует Android\prjandroid-arm\bin\permissions.xml этот файл
Этот файл используется при сборке приложений и добавляет в AndroidManifest разрешения, которые указаны в конфигурации.
3. Нас интересует секция <LocalNotification>, которая добавляется, если установлена отметка Локальные Уведомления в требуемых разрешениях мобильного приложения. По умолчанию она выглядит так.
5. Дальше нам нужно добавить фильтр, который будет указывать, какое событие может принять наш receiver, его-то мы и будем передавать из нашей компоненты.
Теперь наша секция должна выглядеть так
6. Теперь запаковываем все обратно, наша мобильная платформа готова.
7. Дальше можно приступать и к разработке в 1С, создаем обработчик локальных уведомлений
Всем большое спасибо за внимание, надеюсь, эта информация будет кому-нибудь полезна.
В результате был написан внешний сервис, работающий в фоновом режиме, который получает штрихкод со сканера и передает его в 1С.
Думаю все уже слышали, о новых возможностях нового релиза 1С. Но людям далеким от программирования под мобильные платформы, могут быть не понятны некоторые особенности. Для этого мы сделали этот "легкий" гайд.
Обновление 12.08.2012 или 1С отжигает.
Добрый день. 1С обновила мобильную платформу до 8.3.3.30.
Началось веселье, ибо гугл тоже решила обновить СДК.
Что надо сделать что бы все работало.
1. Имя базы не указывается - лезим в конфигуратор и делаем поле открытым для редактирования.
2. Лезем в конфигуратор, и ищем ссылки на aapt.exe, ищем их у вас на коме и меняем в конфигураторе на правильные пути.
3. Лезем в менеджер СДК и качаем СДК 17. Без нее работать не будет.
5. Изменения сделанные в обработке - прикрепил к шапке.
Обновление 06.06.2013
Объеденившись интелектом с serg_gre, установили как можно писать конфу под мобильное приложение, при этом не заморачиваясь с компиляцией.
Идея какая - по сути есть 2 вида апк файлов (это те которые установочные для телефона):
1. это скомпилированный файл, который вы сами компилите, и следуете инструкциям в этой статье. После компиляции - вы получаете конфу, и теперь можете с ней работать, однако, если вы хотите что то переделать -то вам прийдется все перекомпилировать и переустанавливать.
2. Это начальный апк, который лежит в архиве mobile8.3.3.24Android1cem.apk, и его фишка в том, что вы можете сами прописывать туда разные пути к конфигурациям. И оно автоматом будет обновлять базу при подключении к серверу.
И так, это НАМНОГО удобней. Как это сделать?
После того, как вы создали конфигурацию, вы можете ее опубликовать под неким именем для доступа через веб (как это сделать - есть куча статей, в том числе и моих), однако нас интересует отуда все, до момента начала публикации.
Вместо публикации базы в привычном нам режиме, мы в конфигураторе жмем - Конфигурация - Мобильное приложение - Публиковать.
Ясное дело - указываем имя базы (я думаю тут нет смысла говорить о том, что оно должно отличаться от имени публикации веб доступа) и жмем опубликовать. Допустим мы ей дали имя InfoBase.
Далее мы должны проверить, все ли у нах хорошо?
Для этого заходим на 127.0.0.1/InfoBase. Обратите внимание, без всяких там wsdl и так далее. Если мы видем хмл схему - значит все ок.
Далее запускаем на мобильнике 1С и добавляем конфу прописывая адрес к этой базе.
После этого все будет круто. Обратите внимание, что так идет обновление только конфигурации, а не данных.
Остался один вопрос, от того же наблюдательного serg_gres :
В конфигураторе - в меню Отладка - Начало отладки - Мобильное приложение.
Вопрос - что это за зверь? Если кто знает, добро пожаловать в камменты.
Может и все про это знали, но как обычно, то что на виду - многие не видят :)
Обновление 30.05.2013
Вышла новая версия платформы - 8.3.3
Хотелось бы выделить некоторые особенности и изменения в ней.
Лицензирование мобильной платформы и мобильных приложений
Средства разработки мобильных приложений и мобильная платформа «1С:Предприятия 8» для целей разработки включены в коммерческую поставку платформы «1С:Предприятие» и без дополнительной оплаты доступны разработчикам прикладных решений, правомерно владеющим дистрибутивом платформы «1С:Предприятие 8.3».
Мобильные приложения, разработанные пользователями и партнерами на платформе «1С:Предприятие 8.3», в настоящее время разрешается распространять без оплаты фирме «1С», если количество распространяемых копий не превышает 50. Для распространения большего числа копий требуется согласование с фирмой «1С».
Т.е., если вы решитесь опубликовать приложение на гугло плее, то к вам могут быть выдвинуты официальные притензии :)
В форуме, в соответствующей ветке - выложил полный список изменений от 1С. Просьба там отписываться по найденным глюкам.
От себя хочу выделить несколько особенностей, которые мне поравились:
На мобильной платформе стало возможно:
- Получать срезы первых/последних на самый первый и самый последний (текущий) моменты времени с большей скоростью.
Однако остались и всякие мелочи. Например - информация в поле ввода - сдвинута вверх, не сильно, но бросается в глаза.
При открытии справочника - наименование стоит нормально, а картинка реквизита насдвинута сильно вверх, что очень бесит :) Хотя это может так и задуманно. Создал отчет на СКД - он у меня в мобильном приложении не появился.
Установленная версия программы съедает 118 метров памяти телефона.
Первая версия статьи
1С выпустила новую платформу 8.3.2, особенностью которой является возможность разработки конфигурации под мобильные платформы. Суть в том, что после всех манипуляций вы получаете готовые пакеты .apk (для Android) и .zip (для iOS).
Основная идея в том, что это может сделать программист 1С, и полностью контролировать разработку. Этот файл вы можете разместить на Google Play или на AppStore, и его смогут качать люди.
Под андроид файл .apk весит от 38Мб. Тут стоит обратить внимание на то, что он все эти мегабайты грузит в память телефона, таким образом, если у вас на памяти телефона не доступно около 50Мб, то установить вы его не сможете J.
Его разархивируем в какую-нибудь папочку, далее нам надо установить Android SDK и Java SDK.
В разделе Java Platform, Standard Edition жмете JDK Download, ставите галку, что принимаете лицензионное соглашение и скачиваете файл соответственно Вашей операционной системе. С установкой проблем возникнуть не должно. После этого желательно перезагрузиться. Обратите внимание - джава должна быть 1.6! На 1.7 все скомпилиться, но работать не будет:)
Android SDK включает в себя инструменты, необходимые для разработки Android-приложений. Рекомендуется скачивать EXE-шник, но я предлагаю скачать ZIP-версию и самим распаковать в какой-нить удобный для вас каталог (если нет ссылки на ZIP, нажмите ссылку Other Platforms).
Учтите, что это должен быть каталог "на векА". И лучше его не перемещать никуда, иначе придется перенастраивать среду разработки. Предлагаю где-нибудь создать каталог Android. Крайне желательно, чтобы путь к нему был коротким. Идеально - :android. Для себя запомним этот каталог под псевдонимом . И в него распакуем наш архив SDK, получим android-sdk-windows.
Потом заходим туда, и убедимся в том, что у нас скачена платформа Android 2.2 - раскрываем плюсик - SDK Platform, если не установлен, то ставим галочку и инсталим.
Далее самое интересное – заходим в конфигурацию, и добавляем опцию:
Обратите внимание - синоним и комментарий - должны быть пустыми, так как потом не адекватно сработает парсер. Спасибо обществу за бдительность :)
После этого, разархивируем архив, который скачали в папку с адекватным наименованием.
Далее обновляем конфу, и жмем Конфигурация – Мобильное приложение – Записать в файл.
Открываем конфигурацию в режиме управляемых форм и открываем обработку, которая находилась в архиве и заполняем поля.
Тут все немного весело – вначале выбираем файлик, который сохранили, далее выбираем язык, потом нажимаем на лупу, на представлении приложения – пишем представление.
Если язык выбрать нельзя - значит у вас есть комментарий или описание в конфигурации. Читай выше.
Далее указываем версию и номер сборки (они критичный при публикации в магазинах) но пока ставим там любые числа, например 1 и 1.
Идентификатор приложения тоже критичен, если он будет совпадать с уже существующим, на магазине, то маркет не даст его загрузить, но нам пока это без разницы, и обзавем его как-нибудь, только учтите - название должно содержать только латиницу (и желательно не создержать заглавных букв).
Далее жмем Создать.
Тут все не менее весело, в расположении мобильно платформы указываем адрес распакованного архива, т.е. верхнюю папку, в которой лежат еще папки для Андроида и iOS.
Далее выбираем SDK, у меня они лежат там, у вас пути могут отличаться.
Выбираем куда у нас будет записан результат.
А вот с ключем веселье. Надо понимать, что это важный файл, если вы ранее опубликовали приложение на маркете под одним ключем, то в случае утери – будет веселье. Но мы пока оставим это. И так, так как ключа у нас нету, то его нужно создать, для этого мы указываем по сути Логин и Пароль ключа, далее данные о себе и формируем ключ, потом выбираем его и жмем ОК, если все нормально, то появится окно консоли, в котором будут описываться стадии операции. После всего этого – вы получите файлики, которые можно скачать себе на телефон и установить.
Обратите внимание, что для установки надо отключить функцию Установка только с известных источников.
И на последок ньюансы:
При разработке мобильного приложения необходимо учитывать ограничения, которые
накладывает мобильная платформа по сравнению с платформой «1С:Предприятие» для
- Ограниченный перечень доступных объектов конфигурации и механизмов;
- Ограниченный набор свойств реквизитов;
- Ограниченный набор элементов управляемых форм;
- Упрощенная реализация некоторых механизмов (например, динамический список или рабочий стол);
- Отсутствие обычных форм и обычного режима запуска;
- Отсутствие средств отладки мобильного приложения;
Если возникли вопросы – добро пожаловать в камменты.
Вот тут можно скачать на Андроид тестовую конфу от 1С
Появилась уже и для УНФ конфа, скачать можно по ссылке:
Однако она пустая, т.е. готовая для работы с вашей базой.
ВНИМАНИЕ!
1 декабря на «Клерке» стартует обучение на онлайн-курсе повышения квалификации для получения удостоверения, которое попадет в госреестр. Тема курса: управленческий учет.
Читайте также: