Как работает мобильное приложение 1с
Устройство мобильной платформы 1С
Некоторые ограничения со стороны лицензионной политики компаний Apple и Google, основных поставщиков операционных систем для мобильных устройств, накладывают свой отпечаток на 1С для смартфонов и планшетов. Собственно, учитывая это, разработчики и создали следующую схему:
- Платформа;
- Конфигурация, XML-файл содержащий информацию о метаданных;
- Платформа и конфигурация, скомбинированные на устройстве, представляет собой мобильное приложение;
- Сборщик приложений для мобильных устройств.
Несмотря на кажущуюся сложность конструкции, реализация мобильной платформы 1С предприятия мало чем отличается от обычного файлового режима работы. При этом следует учитывать, что разработка интерфейса, написание кода, администрирование пользователей происходит в режиме обычного Конфигуратора, что не требует от программистов 1С отдельных специализированных знаний для работы.
Несколько слов о конфигурировании
Для самостоятельной разработки мобильного приложения не требуется специфических знаний и дополнительных инструментов. Достаточно в Конфигураторе открыть новую базу для разработки.
Основная часть настройки состоит из двух шагов:
- В «Свойствах» конфигурации, в подменю «Назначение использования» необходимо установить флажок напротив «Мобильное устройство» (рис. 1);
- В связи с тем, что работа 1С на андроид устройствах требует предварительных разрешений, необходимо в Конфигураторе установить эти параметры. Рис 2
В принципе эти два шага позволяют создавать конфигурацию для мобильных приложений. Следует иметь в виду, что некоторые объекты конфигурации ( в частности отчеты и планы счетов) станут недоступными для разработки.
Проще всего опубликовать конфигурацию мобильного приложения из Конфигуратора, пройдя по адресу Конфигурация->Мобильное приложение->Публиковать.
В некоторых случаях может выскочить ошибка «Не установлены модули расширения Web-сервера», тогда недостающие компоненты требуется доинсталлировать из файла поставки.
Размещение конфигурации на устройстве
Рис. 3 Установка стандартного приложения
В случае, если на устройстве установлено несколько конфигураций, после запуска приложения будет доступно окно выбора базы данных (рис. 4).
Некоторые возможности этого окна:
- Нажав на кнопку «+» в правом верхнем углу экрана можно добавить новую конфигурацию;
- Долгое нажатие на название базы открывает окно свойств Рис.5, которое позволяет изменить некоторые свойства базы, а так же удалить её из списка;
- В окне свойств можно разрешить отладку базы и задать адрес сервера хранения отладочной конфигурации;
- Нажав кнопку «Администрирование» можно вызвать окно тестирования базы, для устранения большинства ошибок.
После запуска мобильного приложения 1С на планшете или смартфоне открывается окно, которое по внешнему виду очень сильно напоминает тонкий или Web клиент.
Здесь уже представлены формы документов, справочников и отчетов, которые можно запустить на устройстве. Кроме этого в подменю «Сервис» можно вызвать настройки текущей базы, либо вызвать список установленных приложений.
Сборщик приложений
До тех пор, пока Вы как разработчик пользуетесь базой и возможностями мобильного приложения 1С, необходимости в использовании Сборщика у Вас, скорее всего, не возникнет. В тот момент, когда Вы самостоятельно захотите создать мобильное приложение 1С и распространять его через магазины приложений Google, Apple и Windows Apps, без конфигурации «Сборщик мобильных приложений», Вам просто не обойтись. Именно эта оболочка позволяет собрать в единое целое платформу и конфигурацию для мобильников.
Дополнительно придется установить несколько программных пакетов (Java SDK, Android SDK и, возможно, некоторые другие), без которых корректная сборка для различных операционок просто невозможна.
Последовательность действий при работе со Сборщиком в общем виде следующая:
- Загружается мобильная платформа;
- Загружаем созданную или переработанную конфигурацию;
- Непосредственно создаем мобильное приложение, для тех платформ, на которых предстоит работать.
Два следующих щелчка мышкой позволяют не просто создать приложение для разных осей, но и опубликовать его на соответствующих ресурсах (некоторые проблемы могут возникнуть с публикацией на Майкрософтовских серверах).
Мобильные технологии «1С» открывают новые возможности для управления, автоматизации бизнес-процессов и повышения эффективности труда за счет использования мобильных устройств. Работа с продуктами «1С» на планшетных ПК и смартфонах под управлением Android, iOS, Windows удобна, надежна и безопасна.
Мобильные технологии «1С», в зависимости от потребностей бизнеса, позволяют реализовать и автономный сценарий работы мобильного приложения с периодической синхронизацией с серверным прикладным решением, и полностью онлайновый сценарий с доступом к «живым» данным серверного решения. Для реализации этих двух подходов используются мобильная платформа «1С» и мобильный клиент «1С» соответственно.
Для работы в мобильной среде предусмотрены следующие технологии.
Мобильная платформа
«Мобильная платформа 1С:Предприятия 8» — это технология, позволяющая создавать приложения, работающие на различных планшетных ПК, смартфонах и других мобильных устройствах под управлением операционных систем Android, iOS, Windows.
- мобильную платформу (дистрибутив), работающую под управлением операционных систем Android, iOS, Windows;
- технологию создания и публикации мобильных приложений «1С:Предприятия 8»;
- мобильные предложения для мобильной платформы «1С» с использованием тех же сред разработки (Конфигуратор или 1С:Entrprise Development Tools) и тех же методик разработки, что используются для «обычных» приложений «1С».
Мобильные предложения для мобильной платформы 1С с использованием тех же сред разработки (Конфигуратор или 1С:Entrprise Development Tools) и тех же методик разработки, что используются для «обычных» приложений 1С.
Мобильное приложение, установленное на устройстве, представляет собой совокупность мобильной платформы и информационной базы. Информационная база на мобильном устройстве содержит аналог файловой базы данных «1С» и мобильное приложение (программный код, исполняющийся на мобильном устройстве).
Мобильные приложения «1С:Предприятия 8» могут работать полностью автономно (данные хранятся на мобильном устройстве), в оффлайн-режиме (без соединения с Интернетом). При этом развитые средства интеграции «1С:Предприятия 8» позволяют организовать их взаимодействие с любой центральной (back-office) системой (не только с системой «1С»).
Мобильный клиент
Мобильный клиент — это тонкий клиент для мобильных устройств, который обладает интерфейсом, аналогичным мобильной платформе. Дистрибутив мобильного клиента содержит все необходимые исполняемые файлы, из которых разработчик может собрать приложение для мобильного устройства аналогично тому, как собираются мобильные приложения из мобильной платформы.
Такое приложение, с одной стороны, может напрямую взаимодействовать с кластером серверов «1С:Предприятия 8» точно так же, как это делает тонкий клиент. С другой стороны мобильный клиент обеспечивает автоматическую трансформацию форм в интерфейс, аналогичный интерфейсу мобильной платформы.
Мобильные решения
Мобильные решения разрабатываются в среде «1С:Предприятия 8» так же, как и традиционные приложения «1С», с использованием тех же базовых принципов разработки прикладных решений. Они предназначены для использования на смартфонах и планшетах в операционных системах iOS, Android и Windows.
Мобильные приложения могут работать одновременно с несколькими бэк-офисными приложениями, в том числе и с приложениями, созданными не на платформе «1С:Предприятие 8». Наряду с готовым к работе мобильным приложением фирма «1С», как правило, выпускает также версию для разработчиков — типовое решение, на основе которого средствами мобильной платформы «1С:Предприятия 8» может быть создано новое прикладное решение.
Мобильная платформа — это технология, позволяющая создавать приложения, работающие на различных планшетных ПК, смартфонах и других мобильных устройствах под управлением операционных систем Android, iOS, Windows.
Мобильное приложение
Мобильный клиент
Мобильный клиент — это аналог тонкого клиента, предназначенный для мобильных устройств. Он позволяет в режиме онлайн получить доступ с мобильных устройств практически ко всей функциональности приложений, которые поддерживают работу через тонкий клиент или веб-клиент. Мобильным клиентом предполагается пользоваться в тех случаях, когда требуется онлайн-доступ к информационной базе с мобильных устройств. При этом, в отличие от мобильной платформы, данные, введенные на мобильном устройстве, будут сохраняться в общей информационной базе сразу же, без необходимости в дополнительной синхронизации. В мобильном клиенте поддерживается работа системы взаимодействия. Для реализации дополнительной функциональности можно использовать механизм расширений.
Функции | Мобильный клиент | Мобильное приложение |
Возможность выполнять базовые операции при помощи мобильного устройства | ||
Запуск типовых конфигураций без разработки | ||
Онлайн-взаимодействие с информационной базой | ||
Работа без обменов данными | ||
Автоматическая трансформация форм | ||
Сокращение нагрузки на память устройства | ||
Отсутствие необходимости в повторной сборке файла при изменении конфигурации | ||
Возможность работы офлайн | ||
Возможность пользоваться сервисами иных информационных систем |
Как собрать файл мобильной платформы и мобильного клиента 1С под iOS
В версии предприятия 8.3.20 появился сервис по сборке мобильных приложений для которого не нужен компьютер с MacOS для сборки приложения под iOS.
Как установить мобильную платформу и мобильный клиент на Android
Доступ к базе через мобильный клиент
- Развернуть веб-сервер.
- Опубликовать базу на данном веб-сервере.
- Указать в мобильном клиенте путь к базе.
Наша команда готова подобрать самое оптимальное решение для развития Вашего бизнеса и управления текущими задачами.
Разработка мобильных приложений всегда ассоциируется с необходимостью изучения дополнительных технологий. А что если пересмотреть вопрос и воспользоваться уже знакомыми инструментами?
Впервые фирма «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С».
Читайте также: