Создание мобильного приложения 1с
Предыстория
Еще во времена «1С:Предприятия» версии 8.0 (и последующих версий) существовал программный продукт «Расширение для карманных компьютеров». Расширение позволяло создавать продукты только для ОС Windows Mobile, Windows CE и т.д. Продукт обладал собственным конфигуратором, и сервером, и поддерживался вплоть до выпуска «1С:Предприятия» версии 8.3. Последняя версия расширения (8.2.9) была выпущена в октябре 2013 года, а полная поддержка прекратилась 1 января 2015 года.
Расширение имело ограниченное применение даже во времена расцвета коммуникаторов на Windows Mobile, а уход таких устройств с мобильного рынка явно не добавил популярности этому программному продукту. Устройства на iOS и Android заняли практически весь рынок мобильных устройств, и стало очевидно, что поддержка этих ОС является одним из ключевых моментов для системы, которая должна эксплуатироваться в современном мобильном мире. Также казалось очевидным, что основной подход существующей платформы «1С:Предприятие» должен использоваться и на мобильных устройствах: прикладной разработчик должен в первую очередь думать о решении прикладных задач, а во вторую — о том, какие возможности используемой ОС ему задействовать для решения этих задач. Другими словами, нужен инструмент, который изолирует прикладного разработчика от особенностей конкретных мобильных ОС и инструмента разработки.
Мобильная платформа
- она должна поддерживать современные популярные мобильные операционные системы и устройства под их управлением. В первую очередь это ОС iOS фирмы Apple и Android компании Google.
- эта система должна позволять использовать разработанные приложения в стиле, принятом на современных мобильных устройствах. В частности, интерфейс должен опираться на ручное управление (в буквальном смысле этого слова) с использованием сенсорных экранов.
- система должна обеспечивать единообразный программный интерфейс для реализации различных специфических механизмов, вне зависимости от используемой мобильной ОС.
- разработчик должен использовать тот же инструмент и те же подходы к разработке, что и при разработке приложений для «обычного» компьютера.
- прикладной разработчик должен разрабатывать прикладное решение в привычной среде разработки, по возможности используя единый код для настольной и мобильной систем.
- интерфейс прикладного решения, работающего на мобильном устройстве, должен быть аналогичен для различных платформ и в целом однозначно узнаваем.
Начиная с версии мобильной платформы 8.3.7 стала доступна и отладка приложения непосредственно на мобильном устройстве (подробнее об этом ниже).
- мобильное приложение может быть составной и неотъемлемой частью существующей информационной системы предприятия. Мобильное приложение будет предоставлять интерфейс и другие возможности (включая обмен данными), «заточенные» под возможности существующей информационной системы. В этом случае мобильное приложение очень плотно связано с «обычной» информационной системой и не может эксплуатироваться в отрыве от нее.
- мобильное приложение выполняет специфические задачи, которые практически никак не связаны с информационной системой предприятия. Существует лишь минимальный набор данных, которыми обмениваются мобильное приложение и информационная система. В этом случае, скорее всего, мобильное приложение будет выполнять обмен по некоторому стандартизированному протоколу, что делает возможным применение этого мобильного приложения в совершенно различных случаях и ситуациях.
Устройство мобильной платформы
- Собственно мобильная платформа — мобильная часть фреймворка «1С:Предприятие». Она бывает обычной (которая используется во время сборки приложения для публикации в магазине приложений) и мобильной платформой разработчика, которая используется (сюрприз) во время разработки мобильного приложения.
- Мобильная конфигурация — это конфигурация системы программ «1С:Предприятие», записанная в виде XML-файла.
- Комбинация мобильной платформы и мобильной конфигурации дает мобильное приложение.
- Сборщик мобильных приложений — специализированное прикладное решение, которое умеет сделать из мобильной платформы, конфигурации, заставок, иконок и прочих компонентов, готовый файл мобильного приложения, который можно загрузить в магазины Apple AppStore, Google Play, Windows Phone Apps / Windows Apps.
Немного о платформе разработчика
Что умеет?
Как выглядит?
Графический интерфейс мобильной платформы – отдельная тема. В 1С:Предприятии, как известно, интерфейс описывается декларативно. Это, с одной стороны, накладывает некоторые ограничения на разработку UI (например, отсутствует возможность попиксельного позиционирования), но, с другой стороны, позволяет платформе единообразно отрисовывать интерфейс на экранах разного размера, в тонком и веб-клиенте. Этого же принципа мы старались придерживаться и в мобильной платформе. Насколько хорошо нам это удалось? Попробуем разобраться.
В первых версиях мобильной платформы (до 8.3.5 включительно) графический интерфейс приложений выглядел весьма привычно для искушенных пользователей 1С; фактически он переносил знакомый по «десктопным» версиям 1С интерфейс в мобильный мир. Но с точки зрения пользователей, ранее с 1С не знакомых, интерфейс выглядел несколько архаичным.
Учтя замечания и пожелания, мы коренным образом пересмотрели свой подход к мобильному интерфейсу в версии 8.3.6. Можно сказать, что мы сделали совершенно новый мобильный интерфейс для наших приложений. Он имеет много общего с нашим интерфейсом «Такси». Модель разработки для разработчиков мобильных приложений соответствует модели разработки в «Такси». При этом мобильный интерфейс полностью соответствует принятым в мобильных приложениях подходам к дизайну и UX. Интерфейс полностью учитывает специфику мобильного мира: небольшой размер экрана (а значит, оформление графических элементов должно стать более аскетичным – без теней, градиентов), есть поддержка пальцевых жестов и т.д. Интересный факт: новый механизм платформы, отвечающий за размещение элементов в форме (layouter) оказался настолько удачным и своевременным для мобильной платформы, что был выпущен в ней раньше (в версии 8.3.6) чем в платформе для ПК (в версии 8.3.7), для которой он в первую очередь предназначался.
На картинке можно увидеть, как поменялся наш интерфейс.
Приложение «Управление небольшой фирмой» на версии мобильной платформы 8.3.5:
Оно же на версии 8.3.6:
А вот так выглядит интерфейс мобильной платформы вживую:
Сборщик — и что это за зверь?
- Загружаем версию мобильной платформы 1С, на которой будем собирать приложение
- Загружаем конфигурацию, из которой будем собирать мобильное приложение
- Создаем мобильное приложение, в котором указываем, для каких платформ (Android, iOS, Windows) надо выполнять сборку, какую конфигурацию и платформу следует использовать (в частности, указать, какой сертификат для сборки под iOS использовать в случае, если приложение работает с PUSH-уведомлениями).
- Выполняем «одним кликом» сборку мобильного приложения под все выбранные платформы
- «Другим кликом» отправляем собранные мобильные приложения в магазины приложений (если это приложение для iOS или Android). В магазины Windows Apps / Windows Phone Apps приложение нужно загружать вручную, т.к. Microsoft пока не предоставляет API для размещения приложения в магазине.
Приложения на мобильной платформе
Сама фирма «1С» выпускает на мобильной платформе ряд приложений, являющихся мобильными клиентами серверных приложений 1С (1С:Документооборот, 1С:Управление Небольшой Фирмой и т.д.). Эти приложения реализуют некоторое подмножество функциональности «обычных» клиентов. В случае мобильной версии «1С:Управление Небольшой Фирмой» функциональности достаточно для полноценного использования программы, и мы часто видели ситуацию, когда клиентам для ведения бизнеса достаточно мобильной версии приложения.
Наши партнеры используют мобильную платформу как для разработки тиражных мобильных приложений, распространяемых через магазины приложений, так и для заказных приложений, созданных по запросам конкретных клиентов. Среди тиражных приложений встречаются приложения, которые используют не 1С-ный back-end в качестве центрального хранилища данных.
Среди мобильных приложений, созданных по заказу клиентов, можно упомянуть мобильный клиент для «1С:Управления Производственным Предприятием», созданный по заказу крупного машиностроительного холдинга. Около ста сотрудников холдинга используют мобильное приложение в горячих цехах, где по соображениям техники безопасности поставить стационарные компьютеры невозможно. Встроенная камера мобильного устройства используется для чтения штрих-кодов изделий и поиска их в справочнике номенклатур, мобильное приложение позволяет понять, на каком этапе технологической цепочки находится данное изделие, отметить прохождение изделием очередной операции и т.п.
Заключение
Мы разрабатываем мобильные приложения для iOS и Android
с учетом индивидуальных особенностей вашего бизнеса.
Наши мобильные решения подходят для любых сфер бизнеса, где необходим
оперативный учет, контроль, анализ и оперативное принятие управленческих решений.
Профессиональная кроссплатформенная разработка мобильных приложений
Команда «1С-Рарус» выполняет разработку кроссплатформенных мобильных приложений для сегмента B2B и B2B2C, а также занимается внедрением типовых мобильных приложений от фирмы «1С».
Приложение может использовать типовые или доработанные конфигурации фирмы «1С». Это позволяет выполнять все привычные операции при помощи мобильного телефона.
Этапы реализации проекта
- Поддержка и развитие продукта.
- Заключение договора на поддержку вашего продукта.
- Дополнительные изменения и улучшения мобильного приложения в рамках договора поддержки.
Почему клиенты выбирают мобильную разработку с «1С‑Рарус»?
- Команда стоит у истоков разработки мобильных приложений на платформе «1С».
- Наши тиражные решения входят в ТОП-10 в 88 странах мира.
- Более 1 млн. установок наших приложений.
- Для обеспечения скорости и качества разработки используются универсальные модули для решения наиболее востребованных задач.
- 28 лет на рынке автоматизации.
- 500+ успешных корпоративных проектов.
- Качество выполнения работ подтверждено сертификатом соответствия системы менеджмента качества «1С-Рарус» международному стандарту ISO 9001:2015.
Готовые библиотеки
Для оптимизации сроков и гарантии качества разработки «1С-Рарус» предлагает готовые универсальные модули для решения наиболее востребованных задач корпоративных заказчиков. Наиболее востребованне готовые модули:
Что дает бизнесу мобильное приложение и какие задачи может решать?
Увеличение продаж и Повышение лояльности клиентов
Вы на связи с покупателем 24/7. Ваши покупатели всегда в курсе ваших акций, скидок и бонусов благодаря push-уведомлениям. Вы можете управлять специальными программами лояльности для авторизованных пользователей с персональными предложениями. Что позволяет стимулировать повторные покупки и увеличить средний чек.
Автоматизация бизнес-процессов и Управление удаленные сотрудниками
Автоматизация работы и контроля выездных сотрудников: монтажников, замерщиков, курьеров, сервис-инженеров и других. Настройте возможность проведения опросов и анкетирования клиентов. Ускорьте и предоставте возможность формирования заявок покупателей самим покупателям или дайте возможность своим сотрудникам отчечающих за закупки формировать заявки поставщику без привязки к офису и персональному компьютеру.
Возможность анализировать аудиторию
Благодаря интеграции мобильных приложений с сервисами (Google Firebase, Appsee, Яндекс.Метрика) для сбора статистики поведения пользователей вы сможете отслеживать источники установок мобильного приложения, вести статистику внутренних покупок, изучать переходы пользователей по экранным формам, подсчитывать частоту использования функциональности.
Достигается за счет:
- Автоматизации и «ускорения» бизнес-процессов, что позволяет сократить простои и снизить трудозатраты.
- Внедрения личных кабинетов клиента/сотрудника, которое повышают уровень самообслуживания. Реализуйте самостоятельное формирование корзины клиентами или формирование внутренними сотрудниками компании различных заявок: на получение справок с места работы, на отпуск и т. п., что позволит отказаться от некоторых штатных единиц и/или уменьшить объем арендуемых площадей.
Трудно представить, чтобы мы вышли из дома без телефона и чаще всего находясь в дороге мы в 90% случаев взаимодествуем со своим смартфоном. Соответственно бизнес, который раньше всех перейдет от традиционных рекламных инструментов (телевидение, радио, баннеры, смс-рассылки) к взаимодействию с клиентом через наиболее доступный и удобный ему канал — смартфон, тот и будет лидером рынка.
Разработка мобильных приложений всегда ассоциируется с необходимостью изучения дополнительных технологий. А что если пересмотреть вопрос и воспользоваться уже знакомыми инструментами?
Впервые фирма «1С» попыталась выйти на рынок мобильной разработки в 2006 году. В то время был настоящий ажиотаж на автоматизацию работы удаленных сотрудников при помощи КПК. Новые программы для решения подобных задач появлялись как грибы и такой вендор как «1С» с успешными продуктами для автоматизации разных сфер бизнес не мог упустить шанс выйти на прибыльный рынок.
На практике все выглядело значительно хуже. Воплощать оригинальные идеи этот инструмент не позволял. Пакет «Расширение для карманных компьютеров» представлял скорей дополнение для определенных типовых конфигураций, чем полноценное решение для разработки. Расширить функционал конфигурации путем добавления новых объектов метаданных было не предусмотрено. На откуп сторонним программистам оставались совсем простые вещи: создание новых форм для взаимодействия с пользователем, обработка пользовательских событий.
Да, были всевозможные обходы ограничений, но даже они не позволяли по-настоящему развернуться. Помимо технических ограничений, потребители ощутили серьезный финансовый барьер. Компаниям, решившим внедрить решение от «1С», требовалось закупить производительные КПК, приобрести лицензии на Windows Mobile, а также заплатить «1с» за поставку решения и конечное приложение.
Решение от «1С» обходилось слишком дорого. Компании, привыкшие экономить, продолжали использовать альтернативные решения. Тем более, разработчики альтернатив успели снабдить свои продукты функционалом для взаимодействия с типовыми решениями «1С».
Технические ограничения, высокая стоимость не позволили продукту повторить колоссальный успех десктопной платформы. Идея завоевать мобильный рынок корп.
приложений с треском провалилась.
Шаг вперед
Проигрыш и убытки от неудачного проекта не поставили окончательную точку на развитии перспективного направления. В 2013 году, компания «1С» представила первую стабильную версию новой платформы 8.3, обладающую функцией разработки мобильных приложений.
«1С» полностью переосмыслила подход к решению мобильной «теоремы» и учла ошибки предыдущего неудачного продукта. Результатом стал абсолютно новый инструмент, не имеющий ничего общего с предшественником и ориентированный на самые актуальные мобильные платформы – Android и iOS.
Мобильные приложения в стиле 1С
Для полноценного знакомства с возможностями разработки под мобильные платформы попробуем разработать небольшую конфигурацию. На сквозном примере вы сможете лучше оценить доступный функционал и определиться с возможностью использования платформы «1С» для решения задач.
Для работы вам потребуется последний релиз платформы «1С:Предприятие 8.3». Учебная версия дистрибутива доступна на официальном сайте 1С. Для воссоздания примера ее возможностей более, чем достаточно.
Помимо платформы «1С:Предприятие 8.3» нам потребуются ряд дополнительных инструментов. В статье будет рассматриваться пример разработки приложения для Android. В связи с этим придется загрузить: Android SDK и WEB-сервер Apache. Первый компонент содержит все необходимое для сборки приложения и эмулятор для тестирования, а WEB-сервер пригодится для быстрой загрузки приложения на мобильную ОС.
Также нам потребуется поставка «Мобильной платформы разработчика». Она содержит конфигурацию для упрощения процесса сборки созданного мобильного приложения, а также мобильную платформу разработчика. Ее необходимо установить на мобильном устройстве или эмуляторе.
Для сборки приложения, готового к распространению через Google Play потребуется загрузить Apacheant и JavaJDK. Эта тема выходит за рамки статьи, поэтому узнать подробности о работе с этими инструментами и сборкой приложения вы можете в соответствующем разделе моего блога.
Конфигурируем инструменты
Платформа «1С:Предприятие 8.3» и web-сервер Apache поставляются с инсталляторами и устанавливаются стандартным образом. Android SDK необходимо просто разархивировать в отдельную директорию и запустить “sdk manager.exe”. Перед вами появится окно с выбором доступных пакетов для установки. Для тестирования, рассматриваемого в рамках статьи примера, потребуется выбрать и установить: Android SDK Tools, Android Platform Tools, SDK Platform API 17.
Последним шагом будет создание новой информационной базы. Для тех, кто не связан с разработкой под на «1С:Предприятие» поясню, что любое решение для этой платформы состоит из информационной базы и конфигурации. Добавление новой базы осуществляется по кнопке «Добавить» стартового окна. После добавления базы открывайте ее в режиме «Конфигуратор».
Первая мобильная конфигурация
В главном меню конфигуратора найдем раздел «Конфигурация» и выберем пункт «Открыть конфигурацию». Дерево конфигурации (объектов, из которых будет состоять будущее приложение) отобразится в левой части окна. Выделите в нем корень конфигурации и нажмите сочетание клавиш «Alt + Enter». В правой части окна конфигуратора откроется редактор свойств.
Назовем конфигурацию «TODO» и в свойстве «Назначение использования» укажем «Мобильное устройство». Обратите внимание, выполнив последнее действие, некоторые узлы дерева конфигурации станут неактивными. К сожалению, воспользоваться всеми объектами метаданных на мобильной платформе не получится.
Для решения нашей задачи, в дереве конфигурации нам потребуется создать несколько объектов метаданных:
- Перечисление «СтатусыЗадач» с тремя значениями: Выполнена, ВПроцессеИсполнения, ОжидаетПринятияРешения. Ими будем определять состояние созданных задач.
- Справочник «Ответственные». Элементы справочника определяют ответственных лиц, т.е. исполнителей.
- Справочник «Задачи». Здесь будем хранить все задачи. Для удобства группировки задач включим флажок «Иерархический справочник и создадим несколько реквизитов:
- Описание (строка, 500);
- статус (ПеречислениеСсылка.СтатусыЗадач);
- Ответственный (СправочникСсылка.Ответственные);
- ДатаИсполнения (Дата);
- Одно измерение «Задача» (СправочникСсылка.Задачи);
- Один ресурс «Статус» (ПеречислениеСсылка.СтатусыЗадач);
Этих объектов нам вполне хватит для решения задачи и обкатки возможностей мобильной платформы. Взаимодействие пользователя будет происходить с формой элемента справочника «Задачи», поэтому желательно поработать над ее дизайном. Я на этом заострять внимание не стану, т.к. статья не резиновая, а просто приведу скриншот моего варианта оформления. Вы можете сделать что-то подобное или положиться на платформу, которая при необходимости сгенерирует необходимые формы автоматически.
Пишем код
Первым делом напишем код для добавления в регистр сведений «СостояниеЗадач» новых записей. Для этого откроем модуль менеджера (правый клик по регистру) и опишем в нем две процедуры (см. листинг 1 и листинг 2).
Первый листинг реализует добавление новой записи в регистр посредством менеджера записи. Помимо заполнения самостоятельно созданных реквизитов, мы заполняем еще «Период». Этот реквизит автоматически создается для всех периодических регистров сведений и необходим для идентификации записи на временной оси.
Второй листинг по сложности немногим отличается от первого. В нем описан запрос к регистру сведений для получения не закрытых задач. Результат запроса выгружается в таблицу значений. Поскольку нас интересует состояние задач на текущую дату, то мы обращаемся не напрямую к регистру, а к его виртуальной таблице «СрезПоследних». Первый параметр определяет дату среза (вспоминаем про реквизит «период»), а второй условие отбора.
Листинг 1. Код процедуры «ДобавитьЗадачу»
Листинг 2. Код функции «ПолучитьСписокНеЗакрытых Задач()
С получением данных из регистра сведений и их записью разобрались, теперь научим наш справочник работать с регистром. Для этого в дерево конфигурации добавим общий модуль с именем «РаботаСЗадачами». Можно обойтись и без него, но мне сразу хочется акцентировать внимание на возможность разбивки кода по модулям. Многие 1С-разработчики до сих пор пренебрегают этой рекомендацией и всю логику описывают в одном месте, тем самым затрудняя последующее сопровождения кода. Создадим в модуле новую процедуру «СоздатьНовуюЗадачу» (см. листинг 3).
Листинг 3. Код процедуры «СоздатьНовуюЗадачу»
Перед тем как создать новую запись выполняется проверка на наличие уже имеющихся записей по задаче. Если запись уже существует, то надо сравнить статусы задач. Если статус из регистра не отличается от статуса записываемого элемента, в создании дополнительной записи необходимость отсутствует.
Последним штрихом откроем форму элемента справочника «Задачи» и создадим обработчик события «ПослеЗаписиНаСервере». В нем напишем вызов процедуры, описанной в третьем листинге:
Работаем над интерфейсом
Основной функционал приложения готов – пользователь может создавать задачи, и каждая новая задача формирует запись в периодическом регистре сведений. Теперь займемся интерфейсом. Вынесем работу с задачами на передний план. Ведь логично сразу после запуска приложения отображать список не закрытых задач и возможность создать новую?
Найдем в дереве конфигурации узел «Общие формы» и добавим новую форму с именем «РабочийСтол». Откроем созданную форму в конструкторе интерфейса и добавим реквизит типа «ТаблицаЗначений». Назовем его «ОткрытыеЗачи». Таблица будет содержать две колонки – «Задача» (СправочникСсылка.Задачи) и «ДатаИсполнения» (Дата).
Следующим шагом перетащим добавленный реквизит на форму. У нас должен получиться интерфейс простейшей таблицы. Никакие размеры указывать не будем, оставим заботу о масштабировании интерфейса платформе.
Для созданной таблицы, в инспекторе свойств установим флажок для свойства «Только просмотр», а свойству «Положение Командной Панели» укажем значение «Нет». Мы будем заполнять таблицу динамическими сведениями, поэтому смысла в редактировании со стороны пользователя нет.
Теперь опишем у формы обработчик события «ПриСозданииНаСервере». Добавим в него одну строку кода:
В коде мы обращаемся к описанной нами процедуре «ПолучитьСписокНеЗакрытыхЗадач» и результат ее выполнения помещаем в таблицу.
Вернемся к конструктору формы и добавим группу типа «Обычная группа без отображения» с двумя кнопками: «Создать» и «Обновить». Свойству «Группировка» у добавленной группы зададим значение «Горизонтальная». Для более выразительного оформления кнопок добавим изображения и изменим шрифт по умолчанию.
Теперь выделим кнопку «Создать» и зададим ей глобальную команду «Задачи: создать». Это позволит создавать задачи, минуя вход в сам справочник. По нажатию второй кнопки будем обновлять содержимое таблицы с задачами. Для этого потребуется создать дополнительную команду формы.
Все новые команды формы создаются на одноименной вкладке «Команды». Принцип прост – добавляем новую команду, описываем в ней код действия и затем связываем команду с интерфейсом, в нашем случае с кнопкой.
Не стоит также забывать, что мы разрабатываем управляемое приложение, поэтому надо четко разграничивать клиентский и серверный код. При нажатии кнопки будет контекст «НаКлиенте», а данные из базы будем получать уже с сервера. В коде это выглядит так:
Теперь определим нашу форму рабочего стола в качестве области начальной страницы. Откроем свойства конфигурации (выделяем самый верхний узел и нажимаем «Alt+Enter») и для свойства «Рабочая область начальной страницы» установим значение «Одна колонка», после добавим в список нашу форму «РабочийСтол».
Приложение полностью готово и самое время протестировать его в работе. Попробуйте запустить пример и создать несколько задач со статусом отличным от «Выполнена». Регистр сведений пополнился новыми записями (это можно посмотреть через пункт меню «Все функции») и часть из них выводится на рабочем столе.
Приземляемся на Android
Конфигурация отлично работает на десктопе, и теперь самое время протестировать ее на эмуляторе мобильной ОС. Для подготовки нового эмулятора запустите командный интерпретатор (cmd.exe) и перейдите в директорию «toos» дистрибутива с Android SDK. Выполните команду «android.bat avd», которая запустит менеджер виртуальных Android устройств. В нем нажмите кнопку «Create» и в появившемся окне укажите параметры виртуального устройства. В своем рабочем окружении я решил эмулировать Nexus S с Android версии 4.2.2. (API Level 17).
После создания устройства сразу же запустим его. Пока выполняется загрузка android, вернемся в конфигуратор и опубликуем наше приложение на web-сервере. В главном меню конфигуратора выбираем пункт «Конфигурация» -> «Мобильное приложение» -> «Публиковать». В окне настроек публикации указываем имя приложения (может быть любым), web-сервер (в нашем окружении он должен быть один) и каталог для хранения настроек.
Возвращаемся к эмулятору и загрузим в него приложение с мобильной платформой разработчика. Сам файл приложения доступен вместе с поставкой мобильной платформы разработчика и называется «1cem-arm.apk». Для установки этого приложения в эмуляторе воспользуемся утилитой «adb.exe» из директории «platform-tools»: adb.exe install –r 1cem-arm.apk.
Совершаем звонки из мобильного приложения
Программное совершение звонка осуществляется с помощью метода «НабратьНомер» глобального объекта «СредстваТелефонии». Перед вызовом метода крайне желательно проверить возможность совершения звонка:
Параметр «ВызватьСразу» влияет на выполнение набора номера. Когда она равен «Истина», набор номера выполняется автоматически через стандартное приложение совершения звонков. При значении «Ложь» пользователь также увидит стандартный интерфейс приложения набора номера, но для совершения вызова потребуется нажать кнопку «Вызвать».
Журнал звонков
Мобильная платформа позволяет разработчику взаимодействовать с журналом звонков. Например, вы без особого труда можете получить список исходящих, пропущенных или входящих звонков. Функция поддерживается только на Android:
Геопозиционирование
Практически любой современный смартфон имеет функции определения геопозиции. Этим функционалом вы можете воспользоваться из встроенного языка 1С. Получение текущих координат устройства условно можно разделить на 2 этапа: выбор провайдера геопозиционирования и обработка полученных координат:
Работа с мультимедийными функциями
Разработчику доступна возможность делать снимки, видеозаписи, аудиозаписи средствами встроенного языка: СделатьФотоснимок(), СделатьВидеозапись(), СделатьАудиозапись().
Под какую мобильную ОС лучше разрабатывать на 1С?
Вместо завершения
Платформа «1С:Предприятие 8» на практике доказала о своей готовности стать простым инструментом для разработки корп. Приложений под мобильные платформы. Рассмотренные в статье примеры – лишние тому подтверждение. Вовсе необязательно тратить ресурсы на изучение нативных инструментов, если функционал приложения укладывается в возможности мобильной платформы и в компании доминируют продукты фирмы «1С».
Платформа
Для начала нужно скачать последнюю платформу 1С, на момент написания гайда она была версии 8.3.10.2505. Не забудьте при установке выбрать компонент «Модули расширения веб-сервера».
Веб-сервер
Качаем Apache для Windows, и сразу меняем порт, чтоб не мешать работе скайпа и прочим программам, который висят на 80 порту, для этого правим файлик по адресу:
И заменяем ее на любой адрес порта:
Сохраняем файл и перезапускаем Apache.
Для того, чтобы тестировать разработку на планшете, необходимо будет указать адрес приложения. Советую сразу установить для вашего компьютера в настройках роутера статический IP-адрес, например 192.168.1.177. После применения настроек, перезапустите интернет-подключение и попробуйте открыть адрес 192.168.1.177:81, должно появиться приветствие апача с фразой «It works!».
Android SDK
Качаем Android Studio, она идет вместе с Android SDK. В ходе установки не забываем указать отдельный путь для SDK, например D:\Android_SDK.
После установки заходим в Android Studio, нажимаем на начальном экране Configure -> SDK Manager.
Нам понадобятся следующие пакеты:
- Android SDK Tools — не ниже 20.0.3
- Android SDK Platform-tools — не ниже 14
- SDK Platform — API 17
Нужные нам галочки:
Применяем условия лицензии, дожидаемся загрузки и установки.
Мобильная платформа
Планшет
Далее нам понадобится планшет и драйверы на него, которые можно найти на 4pda или, что бывает реже, у планшета бывает режим CD-ROM, если подключиться в этом режиме — появится диск в Windows с драйверами и утилитами.
Идем в настройки планшета, в раздел «Безопасность» и ставим галочку «Установка из неизвестных источников».
Далее в разделе информации об устройстве тапаем несколько раз на номере сборки для включения режима разработчика.
Заходим в параметры разработчика и включаем отладку по USB.
Подключаем планшет к компьютеру и выполняем команду для установки мобильной платформы:
Каталоги могут отличаться от ваших, поэтому будьте внимательны.
После установки ярлык запуска мобильной платформы появится на рабочем столе.
Создание мобильной конфигурации
Создадим новую конфигурацию и поставим ей назначение использования «Мобильное устройство».
Обновим конфигурацию данных (F7) и опубликуем наше мобильное приложение, жмакаем в верхнем меню «Конфигурация > Мобильное приложение > Публиковать», указываем имя приложения, каталог для его размещения и жмём кнопку «Опубликовать»
Заходим в мобильную платформу, добавляем новое приложение со следующими параметрами:
В этой небольшой статье, которая является началом цикла «Разработка мобильных приложений 1С», покажу, как можно быстро создать 1С мобильное приложение «Привет мир», на основе мобильной платформы 1С.
Установка веб сервера Apache
Скачанный архив распаковываем, по пути: «C:\Apache22», убедитесь, что порт 80 на вашем компьютере свободен и не занят другим приложением. Далее с помощью «Командной строки» (запущенной от имени администратора) переходим в каталог «C:\Apache22\bin» и выполняем команды:
Разработка мобильных приложений 1С СкриншотКоманднойСтроки
Разработка мобильных приложений 1С СкриншотApache
В папке с исполняемыми файлами веб сервера, находится приложение «ApacheMonitor.exe», которое служит удобной утилитой для остановки и перезапуска сервера. Ссылку на данное приложение помещаем в автозагрузку операционной системы, например, в папку:
Установка мобильной платформы для разработчиков 1С
Разработка мобильных приложений 1С СкриншотБезопасность
Создание конфигурации для мобильного приложения
3. На локальном компьютере создайте новую базу данных и запустите «Конфигуратор». В свойствах конфигурации, для параметра «Назначение использования» укажите «Мобильное устройство».
Разработка мобильных приложений 1С СкриншотМобильноеУстройство
Создайте общую форму и поместите на нее «Декорация — Надпись» с текстом «Привет мир» и команду «НажмиМеня», с обработчиком:
Далее с помощью правой кнопки мыши откройте меню конфигурации и выберите пункт «Открыть рабочую область начальной страницы» и установите созданную форму.
После, откройте «Параметры» (Сервис — Параметры) и выберите вкладу «Отладка», установите настройки согласно скриншоту:
Разработка мобильных приложений 1С СкриншотНастройкиОтладки
Теперь необходимо опубликовать мобильное приложение, для этого открываем меню «Конфигурация» — «Мобильное приложение» — «Публиковать…» и устанавливаем настройки согласно скриншоту и нажимаем «Опубликовать»:
Разработка мобильных приложений 1С СкриншотНастройкиПубликации
Проверка настроек брандмауэра
4. Проверьте настройки брандмауэра, порты 80 и 45455 по протоколу TCP, должны быть доступны. На домашнем компьютере использую «ESET Smart Security», версии 9, для него необходимо зайти в «Дополнительные настройки», выбрать раздел «Персональный файервол», далее подраздел «Основное» и «Изменить» правила.
Разработка мобильных приложений 1С СкриншотНастройкиБрандмауэра
Настройка мобильного приложения 1С
5. Откройте мобильную платформу на устройстве Android и добавьте новое приложение, настройте как показано на скриншоте (используйте свой IP адрес):
Разработка мобильных приложений 1С СкриншотНастройкиПриложения
Тестирование мобильного приложения 1С
6. Тестируйте ваше 1С мобильное приложение «Привет мир». Дополнительно, попробуйте поставить точку останова в процедуре обработки нажатия кнопки.
В дальнейшем, планирую продолжить данный цикл статей «Разработка мобильных приложений 1С», где постараюсь объяснить просто и доступно, что нужно сделать, чтобы научится создавать мобильные приложения 1С.
6 комментариев для “Разработка мобильных приложений 1С”
Сделал всё так же, но отладка мобильного приложения не запускается. На телефоне приложение перезапускается при нажатии на Отладка мобильного приложения, но на точки не реагирует, и в конфигураторе нет признака отладки
Попробуйте проверить доступность портов отладки, с помощью браузера, как с компьютера на мобильный, так и в обратную сторону. Проверьте настройки firewall и антивируса.
Отладку в тонком клиенте победил тем, что выбрал Использовать сервер отладки кластера.
firewall отключен, антивируса нет.
Доступность какого порта надо проверить? В данный момент получается адрес отладки 192.168.1.209:1550.
он доступен и с мобильного и с компьютера. возвращает 1C:Enterprise 8.3 Debug Server (8.3.11.3034) © 1C-Soft LLC 1996-2017 — it works!
отладка на мобильном не работает.так же заметил такую жуть:
Мобильная платформа 8.3.11.57 — не фокусируется камера при попытке просканировать штрихкод, подсветка тоже не загорается.
Мобильная платформа 8.3.10.84 — камера фокусируется, подсветка срабатывает если темно, но код СредстваМультимедиа.ЗакрытьСканированиеШтрихКодов(); не отрабатывает. Камера после сканирования не закрывается.
Устройство — xiaomi mi 5
Интересно, а если попробовать настроить отладку в эмуляторе Android, будут те же проблемы?
К сожалению нет возможности поставить эмулятор. Да и отлаживаю я сканирование штрихкодов.
Если поместить код СредстваМультимедиа.ЗакрытьСканированиеШтрихКодов() в процедуру обработки штрихкода — отрабатывает нормально, а если в процедуру Обработчик закрытия — не отрабатывает, хотя туда попадаю.Фокусировку в 8.3.11.57 так и не смог победить. Заметил, что мобильная унф на 8.3.10.65 и перешел на 8.3.10.84.
Еще один момент, в моб приложении надо указывать сервер отладки?
«Еще один момент, в моб приложении надо указывать сервер отладки?»
Да, необходимо указать адрес сервера отладки, см. пункт 5.
Читайте также: