Разработка мобильных приложений всегда ассоциируется с необходимостью изучения дополнительных технологий. А что, если пересмотреть вопрос и воспользоваться уже знакомыми инструментами?

1C и мобильные технологии

Впервые «1C» попыталась выйти на рынок мобильной разработки в 2006 году. В то время был настоящий ажиотаж по поводу автоматизации работы удаленных сотрудников с помощью КПК. Новые программы для решения подобных задан появлялись как грибы, и такой вендор, как «1C», с успешными продуктами для автоматизации разных сфер бизнеса не мог упустить шанс выйти на прибыльный рынок.

К середине 2006-го компания представила релиз нового продукта с многообещающим названием «1 С:Предприятие 8. Расширение для карманных компьютеров». У разработчиков 1C, разглядевших перспективы 8-й платформы, появилась надежда, что теперь на одном инструменте без особого труда можно выполнять разработку под популярную в те годы мобильную ОС Windows Mobile.

На практике все выглядело значительно хуже. Воплощать оригинальные идеи этот инструмент не позволял. Пакет «Расширение для карманных компьютеров» представлял скорее дополнение для определенных типовых конфигураций, чем полноценное решение для разработки. Расширять функционал конфигурации путем добавления новых объектов метаданных было не предусмотрено. На откуп сторонним программистам оставались совсем простые вещи: создание новых форм для взаимодействия с пользователем, обработка пользовательских событий.

Да, были всевозможные обходы ограничений, но даже они не позволяли по-настоящему развернуться. Помимо технических ограничений, потребители ощутили серьезный финансовый барьер. Компаниям, решившим внедрить решение от «1C», требовалось закупить производительные КПК, приобрести лицензии на Windows Mobile, а также заплатить «1C» за поставку решения и конечное приложение.

Решение от «1C» обходилось слишком дорого. Компании, привыкшие экономить, продолжали использовать альтернативные решения. Тем более что разработчики альтернатив успели снабдить свои продукты функционалом для взаимодействия с типовыми решениями 1C.

Технические ограничения, высокая стоимость не позволили продукту повторить колоссальный успех настольной платформы. Идея завоевать мобильный рынок корпоративных приложений с треском провалилась.

Шаг вперед

Проигрыш и убытки от неудачного проекта не поставили окончательную точку на развитии перспективного направления. В 2013 году компания «1C» представила первую стабильную версию новой платформы 8.3, обладающую функцией разработки мобильных приложений. «1C» полностью переосмыслила подход к решению мобильной «теоремы» и учла ошибки предыдущего неудачного продукта. Результатом стал абсолютно новый инструмент, не имеющий ничего общего с предшественником и ориентированный на самые актуальные мобильные платформы — Android и iOS.

Мобильные приложения в стиле 1C

Для полноценного знакомства с возможностями разработки под мобильные платформы попробуем разработать небольшую конфигурацию. На примере вы сможете лучше оценить доступный функционал и определиться с возможностью использования платформы «1C» для решения задач.

Нам потребуется последний релиз платформы «1C Предприятие 8.3». Учебная версия дистрибутива доступна на официальном сайте «1C». Для воссоздания примера ее возможностей более чем достаточно.

Помимо платформы «1C:Предприятие 8.3», нам потребуется ряд дополнительных инструментов. В статье будет рассматриваться пример разработки приложения для Android. В связи с этим придется загрузить Android SDK и веб сервер Apache. Первый компонент содержит все необходимое для сборки приложения и эмулятор для тестирования, а веб-сервер пригодится для быстрой загрузки приложения на мобильную ОС.

Также нам потребуется поставка «Мобильной платформы разработчика». Она содержит конфигурацию для упрощения процесса сборки созданного мобильного приложения, а также мобильную платформу разработчика. Ее необходимо установить на мобильном устройстве или эмуляторе.

Для сборки приложения, готового к распространению через Google Play, потребуется загрузить Apacheant и JavaJDK. Эта тема выходит за рамки статьи, поэтому узнать подробности о работе с этими инструментами и сборкой приложения вы можете в соответствующем разделе блога .

Конфигурируем инструменты

Платформа «1С:Предприятие 8.3» и веб-сервер Apache поставляются с инсталляторами и устанавливаются стандартным образом. Android SDK необходимо просто разархивировать в отдельную директорию и запустить «sdk manager.exe». Перед вами появится окно с выбором доступных пакетов для установки. Для тестирования рассматриваемого в рамках статьи примера потребуется выбрать и установить Android SDK Tools, Android Platform Tools, SDK Platform API 17.

Последним шагом будет создание новой информационной базы. Для тех, кто не связан с разработкой под «1 С:Предприятие», поясню, что любое решение для этой платформы состоит из информационной базы и конфигурации. Добавление новой базы осуществляется по кнопке «Добавить» стартового окна. После добавления базы открывайте ее в режиме «Конфигуратор».

Первая мобильная конфигурация

В главном меню конфигуратора найдем нужный нам раздел «Конфигурация» и выберем пункт «Открыть конфигурацию» . Дерево конфигурации (объектов, из которых будет состоять будущее приложение) отобразится в левой части окна. Выделите в нем корень конфигурации и нажмите сочетание клавиш <Alt> + <Enter>. В правой части окна откроется редактор свойств.

Назовем конфигурацию «TODO» и в свойстве «Назначение использования» укажем «Мобильное устройство».

Обратите внимание: выполнив последнее действие, некоторые узлы дерева конфигурации станут неактивными. К сожалению, воспользоваться всеми объектами метаданных на мобильной платформе не получится.

Для решения нашей задачи в дереве конфигурации нам потребуется создать несколько объектов метаданных:

Работа с мультимедийными функциями

Разработчику доступна возможность делать снимки, видеозаписи, аудиозаписи средствами встроенного языка: СделатьФотоснимок(), Сделать-Видеозапись(), СделатьАудиозапись().

перечисление «СтатусыЗадач» с тремя значениями: Выполнена, ВПроцессеИсполнения, ОжидаетПринятия-Решения. Ими будем определять состояние созданных задач;

справочник «Ответственные». Элементы справочника определяют ответственных лиц, т.е. исполнителей;

справочник «Задачи». Здесь будем хранить все задачи. Для удобства группировки задач включим флажок «Иерархический справочник» и создадим несколько реквизитов:

  • описание (строка, 500);
  • статус (ПеречислениеСсылка.СтатусыЗадач);
  • ответственный (СправочникСсылка.Ответственные); » ДатаИсполнения (Дата);

регистр сведений «СостояниеЗадач». Регистр будет хранить историю изменения состояния задачи. Поскольку нас интересует хранение истории, то при создании регистра укажем свойству «Периодичность» значение «В пределах секунды». Метод записи оставим по умолчанию — «Независимым». Из реквизитов создадим:

  • одно измерение «Задача» (СправочникСсылка.За-дачи);
  • один ресурс «Статус» (ПеречислениеСсылка.Стату-сы Задач).

Этих объектов нам вполне хватит для решения задачи и обкатки возможностей мобильной платформы. Взаимодействие пользователя будет происходить с формой элемента справочника «Задачи», поэтому желательно поработать над ее дизайном. Я на этом заострять внимание не стану, т.к. статья не резиновая, а просто приведу снимок моего варианта оформления. Вы можете сделать что-то подобное или положиться на платформу, которая при необходимости сгенерирует нужные формы автоматически.

Пишем код

Первым делом напишем код для добавления в регистр сведений «СостояниеЗадач» новых записей. Для этого откроем модуль менеджера (правый клик по регистру) и опишем в нем две процедуры (см. листинги 1 и 2).

Процедура ДобавитьЗадачу(Задача) Экспорт

МенеджерЗаписи = СоздатьМенеджерЗаписи();

МенеджерЗаписи.Период = ТекущаяДата();

МенеджерЗаписи.Задача = Задача;

МенеджерЗаписи.Статус = Задача.Статус;

МенеджерЗаписи.Записать();

КонецПроцедуры

Листинг 2. Код функции «ПолучитьСписокНеЗакрытых Задач()»

Функция ПолучитьСписокНеЗакрытыхЗадач() Экспорт

Продолжение смотрите журнал Системный администратор №11 2014

Оцените post