Приложение для андроид 1с. Советы по автоматизации. Публикация конфигурации приложения

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


Перечислены лишь несколько приложений; чтобы написать обо всех приложениях, не хватит одной статьи, даже если говорить только о приложениях, созданных фирмой «1С». Это и мобильный клиент 1С:Документооборота, и мобильные клиенты 1С:БухОбслуживания и 1С:Бухгалтерии (работают с облачными версиями 1С:Бухгалтерии или 1С:Предпринимателя, находящимися в нашем облачном сервисе http://1cfresh.com), и Монитор ERP (широкий спектр отчетов, строящихся на основании данных из 1C:ERP или 1С:Управления Торговлей), и 1С:Заказы (приложение для работы с клиентскими заказами «в полях»), и 1С:Мобильная Касса, и другие.

Перед описанием приложения мы приводим его краткую характеристику:

  • Было приложение создано по заказу клиента или это тиражируемое приложение, распространяемое через магазины приложений
  • Количество установок приложения; может быть неизвестно для тиражируемых приложений, т.к. не все магазины приложений открывают эту информацию
  • Мобильные ОС, на которых распространяется приложение. Приложения, созданные на мобильной платформе 1С:Предприятия, работают сразу на трех мобильных ОС (Android, iOS, Windows), но для заказных приложений это может быть одна ОС, т.к. заказчики часто ограничиваются у себя в компании одной моделью мобильных устройств.
  • Объем разработки (если известен). Объем работы (в человеко-днях), затраченный на выпуск первой рабочей версии приложения.

1С:Управление Небольшой Фирмой

Тип решения: тиражное, бесплатное
Количество инсталляций: свыше 170.000
Мобильные ОС: Android, iOS, Windows Phone

Мобильная 1С:Управление Небольшой Фирмой (сокращенно УНФ)- мобильная версия нашей популярной программы для ведения дел небольшой организации. Программа автоматизирует торговую деятельность, позволяет вводить и распечатывать заказы на покупку и продажу, вести базу покупателей и поставщиков, вести каталог товаров и их учет (цены, остатки на складе), встроенная фотокамера устройства используется для фотографий товаров и распознавания штрих-кодов. Есть несколько типов отчетов. Счета на оплату можно отсылать клиентам через встроенный почтовый клиент мобильного устройства или через SMS.

Приложение оффлайновое - все данные оно хранит на мобильном устройстве. Есть опция синхронизации с «большим» приложением 1С: УНФ, расположенным на сервере или в облаке. Приложение бесплатное, новая версия дает также бесплатный доступ к «большой» версии 1С: УНФ, расположенной в облачном сервисе http://1cfresh.com ; в случае бесплатного доступа три мобильных устройства могут синхронизировать свои данные с облачным приложением (а через него – между собой), а один пользователь – работать непосредственно с «большой» версией УНФ в облаке через тонкого или веб-клиента (функциональность «большого» УНФ в этом случае ограничена до функциональности мобильного приложения). В случае покупки облачного УНФ с ним может работать неограниченное количество мобильных устройств, и все ограничения по его функциональности снимаются.

Многие пользователи мобильного УНФ пользуются только мобильной версией приложения – для их задач функциональности мобильной версии вполне достаточно. Многие из пользователей до работы с мобильным УНФ были незнакомы с продукцией 1С – им просто было нужно мобильное приложение для автоматизации торговой деятельности (учет заказов, простой расчет рентабельности и т.п.), и они нашли УНФ в AppStore или GooglePlay. По мере развития бизнеса и роста потребностей в автоматизации часть пользователей «дорастают» до «большой» версии УНФ и приобретают ее в коробочном или облачном варианте.

Мобильное приложение для компании Вкусвилл

Тип решения: заказное
Количество инсталляций: около 200
Объем разработки: 5 человеко-месяцев (выпуск первой версии)
Мобильные ОС: Android

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

Лучше здесь процитировать самого Андрея Кривенко, владельца компании (интервью сайту «РБК»):

- Один из последних больших проектов - мы внедрили в нашу операционную систему мобильный телефон. Мы запретили офисным сотрудникам бывать в магазинах. Сейчас у нас в каждом магазине все фотографии стекаются в единую систему. Это позволяет контролировать все возвраты, списания, какие-то нюансы по качеству - все идет через телефон. Если в магазине что-то сломалось, не нужно объяснять - сделал фото, мы тут же в центре увидели. На складе через сканеры телефонов контролируем всю приемку товара. У водителей контролируем разгрузку. Такой большой круг мы замкнули.
- Сколько это вам стоило?
- Это все стоило копейки. Например, телефоны нам «МегаФон» продал по 1 руб., софт - это все на 1С. Примерно в десять раз дешевле, чем стоимость, по которой пишут мобильные приложения. Это обычная система 1С, только запускается не на компьютере, а на мобильном телефоне. Весь проект - несколько миллионов рублей. Экономия - миллионы в месяц.

От начала разработки до выхода пилотной версии прошло 2.5 месяца, до первой рабочей версии – 5 месяцев. Характерная особенность приложения – большой объем фотографий, выполняемых камерой мобильного устройства. В ходе одного отчета, ежедневно отправляемого из магазина в головной офиса, объем фотографий варьируется от 300 Мб до 1 Гб. Также приложение использует PUSH уведомления – с их помощью сервер сообщает мобильным приложениям о получении для них служебных сообщений (например, об изменениях в правилах работы магазинов).

Планирование оперативного управления производством

Тип решения: заказное
Количество инсталляций: свыше 100
Объем разработки: 4 человеко-месяца
Мобильные ОС: iOS

Один из наших клиентов, АО «АтомЭнергоМаш технологии», внедрил на своих предприятиях решение «1С:Управление производственным предприятием» . В ходе эксплуатации решения возникла необходимость работать с решением непосредственно из цехов предприятия.

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

Было принято решение – вести работу в цехах с мобильных устройств. За 4 человеко-месяца (часть времени заняла постановка задачи) партнером 1С – компанией «Неосистемс» - было создано мобильное приложение для планирования оперативного управления производством, синхронизирующееся с серверным решением «1С:Управление производственным предприятием». Приложение производит, в частности, поиск номенклатуры изделия по штрих-коду (считываемому камерой мобильного устройства), обеспечивает доступ к технологическим картам, осуществляет выдачу заданий сотрудникам, позволяет отмечать факты выполнения производственных и контрольных операций. Более 100 сотрудников компании используют мобильное приложение, в том числе в тех местах на производстве (горячие цеха, склады и т.п.), где невозможно установить стационарные рабочие места или где требуется повышенная мобильность сотрудников.

Мобильный Торговый Агент

Тип решения: заказное
Объем разработки: 6 человеко-дней (выпуск первой версии)
Мобильные ОС: Android

Сравнительно недавно передо мной встала задача автоматизации деятельности торговых агентов крупного оптового дистрибутора. Казалось бы, что может быть проще? Существует множество готовых решений, бери и пользуйся, но все было бы хорошо, если бы не ряд требований заказчика, а именно:

  • Приложение должно быстро загружать из базы остатки, цены, дебиторскую задолженность.
  • Обработка заявок и обратный ответ должны происходить в режиме реального времени .
  • Приложение должно уметь работать со всем прайс-листом, а именно (20 000 позиций номенклатуры и 150 000 характеристик)
  • Приложение должно уметь отображать изображения товаров (18 000 изображений)
  • В приложении должна существовать удобная и эргономичная форма подбора товаров
  • Приложение должно контролировать местоположение агентов
  • В приложении должна быть возможность контроля просроченной задолженности клиентов.

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

Если нет готового решения удовлетворяющего ВСЕ требования клиента, решение очевидно – необходимо разработать индивидуальное решение для конкретного заказчика. Но что делать, если бюджет и сроки весьма сжаты? Вот тут-то мы и подошли к вопросу о технологии.

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

Покопал демонстрационные приложения на мобильной платформе – мне понравилось все, мучал только один вопрос, а сможет ли эта платформа обработать такие объемы информации и насколько быстрым будет процесс обмена с центральной базой. Именно это первым делом я и решил выяснить.

Чтобы не изобретать велосипед, за основу приложения был взят демо-пример mademo.cf, поставляемый фирмой 1С со своей мобильной платформой. Вариантов обмена мобильного приложения с центральной базой немало, но т.к. стояла задача получения ответа realtime, обмен с базой было решено выполнять с использованием web-сервисов. В указанном демо-примере обмен уже был реализован именно таким образом. Минус заключался в том, что обмен с центральной базой выполнялся объектами с идентичными метаданными. В моем же случае в мобильной базе состав реквизитов был существенно урезан, поэтому пришлось доработать процедуры выгрузки/загрузки данных с использованием конвертации данных. После решения этой задачи мне предстояло проверить, как быстро сможет мобильная платформа эти данные отображать и обрабатывать. Набросав примитивную форму подбора, я убедился в том, что платформа успешно справилась и с этой задачей. Осталось дело за малым - набросать нужные формы и заложить в них необходимый требуемый заказчику функционал, кстати, стоит отметить, что демо-пример от 1С содержит примеры всех особенностей работы мобильной платформы – это и работа с мультимедиа, с геопозиционированием, а так же с функциями мобильного устройства (набор номера из приложения 1С). При этом данные возможности постоянно расширяются с появлением свежих платформ.
Из особенностей, которые хотелось бы отметить, я выделю следующее:

  • Разработка ведется в привычном Конфигураторе 1С, не пришлось тратить время на изучение новых средств разработки.
  • В возможности платформы зашит большой функционал учитывающий работу на мобильном устройстве.
  • Очень удобное обновление конфигурации мобильных устройств. Буквально 1 клик и на всех устройствах уже новая конфигурация, что очень сильно разгружает отдел ИТ.
  • Возможность использования web сервисов для обмена.
  • Скорость работы с большими объемами данных (при грамотной организации модели данных).
Скорость работы нашего приложения полностью удовлетворила клиента, так что поставленную цель можно считать достигнутой. Первый обмен с центральной базой занял примерно 10 минут (8 из которых заняла загрузка изображений), дальнейшие регулярные обмены занимают 10-30 секунд, что в большинстве своем зависит от качества интернет-соединения. В ближайших планах - написание нового функционала для реализованного приложения. Реализация данного решения заняла порядка 50 часов, при условии, что пришлось потратить значительную часть времени на некоторые эксперименты, связанные с большим объемом данных. По финансовым затратам разработка нового приложения оказалась ниже, чем оцениваемые клиентом затраты на покупку адаптированных решений, плюс данное решение всегда можно доработать или поправить с весьма незначительными трудозатратами.

1С:Миниденьги

Тип решения: тиражное, платное
Мобильные ОС: iOS, Android


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

Мобильная платформа «1С:Предприятия 8» — это название технологии, которая позволяет разрабатывать решения, работающие на смартфонах и планшетах Google Android или Apple iOS. Важным преимуществом платформы «1С» является то, что решения разрабатываются в одном варианте для обоих мобильных операционных систем и затем просто экспортируются для Android и для iOS без какой-либо дополнительной модификации и написания платформенно-зависимого программного кода.

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

Пример мобильного клиента для СЭД «Корпоративный документооборот» созданный на мобильной платформе «1С:Предприятие 8.3»

Платформой поддерживается скачивание и развертывание приложений пользователями на их устройствах из магазинов App Store или Google Play. Дистрибутив при этом содержит все компоненты, необходимые для начала работы.

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

  • Web-сервисы
  • Файловый обмен
  • Электронная почта
  • и другие механизмы
    Альтернативным вариантом может являться работа в онлайне в режиме веб-клиента.

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


Мобильная платформа 1С:Предприятия – это набор инструментов и технологий для быстрой разработки приложений под мобильные ОС iOS, Android, Windows Phone / 8.1 / 10, с использованием тех же сред разработки (Конфигуратор или 1С:Entrprise Development Tools) и тех же методик разработки, что используются для «обычных» приложений 1С. В результате получаются автономные, офлайновые приложения, но с возможностью обмена информацией с внешним миром при помощи широкого спектра средств интеграции, предоставляемого платформой: Web и HTTP-сервисы, е-мейл и т.д. Поскольку протоколы обмена – платформенно-независимые, мобильная платформа 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.
  • эта система должна позволять использовать разработанные приложения в стиле, принятом на современных мобильных устройствах. В частности, интерфейс должен опираться на ручное управление (в буквальном смысле этого слова) с использованием сенсорных экранов.
  • система должна обеспечивать единообразный программный интерфейс для реализации различных специфических механизмов, вне зависимости от используемой мобильной ОС.
  • разработчик должен использовать тот же инструмент и те же подходы к разработке, что и при разработке приложений для «обычного» компьютера.
  • прикладной разработчик должен разрабатывать прикладное решение в привычной среде разработки, по возможности используя единый код для настольной и мобильной систем.
  • интерфейс прикладного решения, работающего на мобильном устройстве, должен быть аналогичен для различных платформ и в целом однозначно узнаваем.
Результатом разработки явилась так называемая мобильная платформа , которая была выпущена 29 мая 2013 года в вариантах для iOS и Android. Мобильная платформа «1С:Предприятия» - это набор инструментов и технологий, позволяющий создавать приложения для мобильных ОС iOS, Android, Windows Phone / 8.1 / 10, используя ту же среду разработки (Конфигуратор) и те же методики разработки, что и для обычных приложений на платформе «1С:Предприятие». В результате получаются автономные, офлайновые приложения, но с возможностью обмена информацией с внешним миром при помощи широкого спектра средств интеграции, предоставляемого платформой: Web- и HTTP-сервисы, электронная почта и т.д.
Мобильная платформа была достаточно хорошо воспринята сообществом, начали появляться различные статьи на эту тему (например, и ). Для того, чтобы разработать полнофункциональное приложение, работающее одновременно на подавляющем большинстве мобильных устройств, теперь требовалось минимальное время и знания, принципиально не отличающиеся от знаний «обычного» прикладного разработчика на платформе «1С:Предприятие». Безусловно, такой низкий порог вхождения привлекает разработчиков, которым надо «малой кровью» обеспечить некоторой базовой функциональностью сотрудников, работающих на выезде, начальство, да и прочих мобильных сотрудников, которым требуется работа с корпоративной системой.
Начать разрабатывать мобильное приложение на платформе «1С:Предприятие» просто. В Конфигураторе нужно установить у конфигурации свойство «Назначение использования» в значение «Мобильное устройство». При этом часть прикладных объектов конфигурации станет недоступна (планы видов характеристик, планы счетов и т.д.), но станут доступны специфичные для мобильных приложений свойства (например, встроенные средства мультимедиа и геопозиционирования мобильного устройства и т.п.).


При этом отлаживать основные алгоритмы приложения (не связанные непосредственно с мобильной спецификой) можно непосредственно в Конфигураторе на компьютере разработчика. При этом участки кода, в которых происходит обращение к «мобильной» функциональности, рекомендуется обрамлять соответствующими инструкциями препроцессору, чтобы избежать ошибки при выполнении кода на персональном компьютере:
#Если МобильноеПриложениеКлиент Тогда Данные = ГеопозиционированиеСервер.ПолучитьИмяПровайдера(); #КонецЕсли
Начиная с версии мобильной платформы 8.3.7 стала доступна и отладка приложения непосредственно на мобильном устройстве (подробнее об этом ниже).

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

  • мобильное приложение может быть составной и неотъемлемой частью существующей информационной системы предприятия. Мобильное приложение будет предоставлять интерфейс и другие возможности (включая обмен данными), «заточенные» под возможности существующей информационной системы. В этом случае мобильное приложение очень плотно связано с «обычной» информационной системой и не может эксплуатироваться в отрыве от нее.
  • мобильное приложение выполняет специфические задачи, которые практически никак не связаны с информационной системой предприятия. Существует лишь минимальный набор данных, которыми обмениваются мобильное приложение и информационная система. В этом случае, скорее всего, мобильное приложение будет выполнять обмен по некоторому стандартизированному протоколу, что делает возможным применение этого мобильного приложения в совершенно различных случаях и ситуациях.
Две вышеописанные ситуации можно считать крайними вариантами. Но это не единственные варианты разработки. Прикладной разработчик может самостоятельно выбирать возможности интеграции между мобильным приложением и той информационной системой, которая выступает бэк-офисом для него.
Мобильное приложение разрабатывается как полностью автономная конфигурация, но может разделять часть исходного текста с «родительской» конфигурацией. Кстати, «родительская» конфигурация может физически не существовать (например, если вы разрабатываете некое универсальное приложение, которое может работать с разными системами по универсальному протоколу).

Устройство мобильной платформы

Что же представляет собой мобильная платформа и что она умеет?
Справедливости ради, мобильная платформа - это всего один из компонентов всего комплекса, благодаря которому «1С:Предприятие 8» работает на мобильных устройствах. Итак, прикладной разработчик оперирует следующими компонентами:
  1. Собственно мобильная платформа - мобильная часть фреймворка «1С:Предприятие». Она бывает обычной (которая используется во время сборки приложения для публикации в магазине приложений) и мобильной платформой разработчика, которая используется (сюрприз) во время разработки мобильного приложения.
  2. Мобильная конфигурация - это конфигурация системы программ «1С:Предприятие», записанная в виде XML-файла.
  3. Комбинация мобильной платформы и мобильной конфигурации дает мобильное приложение.
  4. Сборщик мобильных приложений - специализированное прикладное решение, которое умеет сделать из мобильной платформы, конфигурации, заставок, иконок и прочих компонентов, готовый файл мобильного приложения, который можно загрузить в магазины Apple AppStore, Google Play, Windows Phone Apps / Windows Apps.
Почему все так сложно? Почему нельзя сделать на мобильном устройстве точно так, как это сделано в большой платформе? Т.е. ставить на устройство одну мобильную платформу и загружать в нее любое количество конфигураций/приложений? Это запрещают делать лицензионные ограничения на приложения, которые распространяются через магазины приложений. Например, если ваше приложение будет загружать исполняемый код (в виде скрипта) через Интернет, то оно никогда не появится в магазине приложений Apple. Следует, однако, понимать, что возможности по загрузке любой конфигурации, которые есть в мобильной платформе разработчика, не предназначены для дистрибуции мобильных приложений даже внутри одной компании, не говоря уже о дистрибуции клиентам разработчика.
После того, как мобильное приложение оказывается на целевом мобильном устройстве, возникает необходимость использовать какую-то базу данных (данные надо где-то хранить). В качестве движка базы данных мобильная платформа использует собственный движок базы данных, который портирован на мобильную платформу из платформы для персонального компьютера. Он компактен и достаточно быстр, но главное - он обеспечивает ровно такое же поведение, к которому привыкли прикладные разработчики, работая на платформе для персональных компьютеров.
Также стоит отметить, что внутри себя мобильное приложение построено по той же схеме, что и работа обычной платформы с файловым вариантом информационной базы: есть клиентская часть, есть серверная часть, есть база данных и есть клиент-серверное взаимодействие.
Собственно мобильная платформа написана как native-приложение, компилируется в двоичный код под основные процессорные архитектуры, используемые сейчас в мобильном мире: это архитектура ARM v5 и выше и x86.
Кроме того, для взаимодействия с теми или иными возможностями мобильного устройства (телефония, GPS, работа со встроенной камерой и т.п.) могут требоваться специальные разрешения. Для iOS они задаются непосредственно в процессе работы самого приложения, а для Android разрешения указываются при создании приложения. Требуемые разрешения указываются при разработке мобильного приложения и используются сборщиком мобильных приложений, но о сборщике - чуть позже.

Немного о платформе разработчика

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

Чтобы добавить новое приложение в платформу, нужно разместить XML-файл с его описанием на ресурсе, доступном с мобильного устройства по протоколу HTTP. Удобнее всего сделать это из Конфигуратора, через меню «Конфигурация \ Мобильное приложение \ Публиковать». При этом XML-файл с конфигурацией приложения размещается на веб-сервере на компьютере разработчика (соответственно на этом компьютере должен быть веб-сервер – IIS или Apache).

Если для приложения указать опцию «Перезапуск из конфигуратора», то приложение на мобильном устройстве будет автоматически обновляться с компьютера разработчика каждый раз, когда разработчик обновит размещенный на веб-сервере XML файл конфигурации.
При включенной опции «Отладка разрешена» возможна пошаговая отладка приложения на мобильном устройстве из Конфигуратора на компьютере разработчика (в Конфигураторе должна быть выбрана опция «Отладка по протоколу HTTP» в меню «Сервис \ Параметры»). Если в Конфигураторе поставить в коде точки останова и выбрать команду «Мобильное приложение – начать отладку», то мобильное приложение на устройстве остановится, когда исполняемый код дойдет до точки останова, и в Конфигураторе можно будет посмотреть значения переменных, стек вызовов и т.д.

Что умеет?

Итак, что умеет мобильная платформа? Достаточно много:)
Если не оперировать специфическими терминами «1С:Предприятия», то мобильная платформа предоставляет возможность работать с нормативно-справочной информацией, оформлять документы, описывающие какие-то внешние действия, просматривать отчеты, связываться с внешним миром с помощью интернет-сервисов и многое другое. Т.е. она предоставляет прикладному разработчику возможность написать достаточно функциональное приложение, например, программу учета домашних финансов, программу для выездной торговли и тому подобное.
Но кроме обычной функциональности, которая есть на платформе для персонального компьютера, мобильная платформа должна обеспечивать работу со специфическими возможностями, которые присущи только мобильным устройствам:
  • работа со звонками и журналом звонков;
  • работа с короткими сообщениями (SMS) и их списком;
  • контакты;
  • календари;
  • геопозиционирование (без прокладки маршрутов);
  • позволяет делать фотоснимки, а также осуществлять видео- и аудиозапись;
  • реагировать на изменение ориентации экрана;
  • работать с уведомлениями (локальными и PUSH, как напрямую, так и через специальный сервис-посредник);
  • сканировать штрих- и QR-коды с помощью камеры
  • Монетизация мобильных приложений (т.е. способ дать разработчику мобильных приложений возможности для дополнительного заработка):
    • Работа с сервисами покупок Apple In-App Purchase (для ОС iOS) и Google Play In-App Billing (для ОС Android), с помощью которых можно организовывать в мобильном приложении различного рода подписки, покупки функциональности и т.д
    • Показ рекламы в мобильных приложениях (пока поддерживаются сервисы iAd для ОС iOS и AdMob для ОС Android).
  • и т.д.
Понятно, что какие-то возможности могут быть недоступны на каждом конкретном устройстве, поэтому для определения того, что можно делать на том устройстве, на котором исполняется мобильное приложение, предусмотрены специальные методы, которые позволяют узнать, доступна на данном устройстве, например, возможность набора номера или нет. Таким образом, реализуется примерно такая схема использования: проверяем, можно использовать какую-то возможность или нельзя и если можно - используем:
Если СредстваТелефонии.ПоддерживаетсяНаборНомера() Тогда СредстваТелефонии.НабратьНомер(НомерТелефона, ВызватьСразу); КонецЕсли;
Спрятать от прикладного разработчика подробности об используемой мобильной ОС, предоставить ему унифицированные механизмы для использования мобильной функциональности – важная задача для нас. Мы считаем, что задача нами успешно решается. Различия в реализуемых механизмах или отсутствуют или сведены к минимуму. Кроме, конечно, случаев, когда функциональности в одной из ОС нет совсем.
Например, техника работа с PUSH-уведомлениями сильно отличается у Google и Apple. Мы приложили немало усилий, чтобы унифицировать механизм работы с PUSH-уведомлениями из прикладного кода. В случае мобильного приложения нам это удалось почти на 100%: один и тот же прикладной код на мобильном устройстве обрабатывает прием PUSH-уведомлений и на iOS, и на Android. И код рассылки PUSH-уведомлений в серверном приложении также выглядит одинаково. Но чтобы добиться такой унификации, нам пришлось разработать специальный сервер-прокси https://pushnotifications.1c.com/ , который скрывает от разработчика разную технику работы с сервисами Apple Push Notification Service (APNS) и Google Cloud Messaging (GCM). Вся разница заключается в разных настройках непосредственно на сайте-прокси https://pushnotifications.1c.com/ ; для работы c APNS на сайт нужно загрузить SSL-сертификат (который Apple выдает для приложения по заявке разработчика), для работы с GCM – указать уникальный идентификатор приложения.
Очевидно, что сразу невозможно реализовать все возможности, которые вы хотите иметь в мобильном приложении. И всегда приходится искать компромисс между несколькими очень полезными вещами. И если вам чего-то не хватает - пишите нам о том, какие бизнес-задачи (ведь платформа - это в первую очередь инструмент по реализации бизнес-задач!) у вас не получается решить и какой механизм помог бы вам для этого.

Как выглядит?

Графический интерфейс мобильной платформы – отдельная тема. В 1С:Предприятии, как известно, интерфейс описывается декларативно. Это, с одной стороны, накладывает некоторые ограничения на разработку UI (например, отсутствует возможность попиксельного позиционирования), но, с другой стороны, позволяет платформе единообразно отрисовывать интерфейс на экранах разного размера, в тонком и веб-клиенте. Этого же принципа мы старались придерживаться и в мобильной платформе. Насколько хорошо нам это удалось? Попробуем разобраться.
В первых версиях мобильной платформы (до 8.3.5 включительно) графический интерфейс приложений выглядел весьма привычно для искушенных пользователей 1С; фактически он переносил знакомый по «десктопным» версиям 1С интерфейс в мобильный мир. Но с точки зрения пользователей, ранее с 1С не знакомых, интерфейс выглядел несколько архаичным.
Учтя замечания и пожелания, мы коренным образом пересмотрели свой подход к мобильному интерфейсу в версии 8.3.6. Можно сказать, что мы сделали совершенно новый мобильный интерфейс для наших приложений. Он имеет много общего с нашим интерфейсом «Такси» . Модель разработки для разработчиков мобильных приложений соответствует модели разработки в «Такси». При этом мобильный интерфейс полностью соответствует принятым в мобильных приложениях подходам к дизайну и . Интерфейс полностью учитывает специфику мобильного мира: небольшой размер экрана (а значит, оформление графических элементов должно стать более аскетичным – без теней, градиентов), есть поддержка пальцевых жестов и т.д. Интересный факт: новый механизм платформы , отвечающий за размещение элементов в форме (layouter) оказался настолько удачным и своевременным для мобильной платформы, что был выпущен в ней раньше (в версии 8.3.6) чем в платформе для ПК (в версии 8.3.7), для которой он в первую очередь предназначался.
На картинке можно увидеть, как поменялся наш интерфейс.
Приложение «Управление небольшой фирмой» на версии мобильной платформы 8.3.5:


Оно же на версии 8.3.6:

А вот так выглядит интерфейс мобильной платформы вживую:

Сборщик - и что это за зверь?

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


После настройки сборщик готов к работе. В общем случае работа со сборщиком выглядит следующим образом:
  1. Загружаем версию мобильной платформы 1С, на которой будем собирать приложение
  2. Загружаем конфигурацию, из которой будем собирать мобильное приложение
  3. Создаем мобильное приложение, в котором указываем, для каких платформ (Android, iOS, Windows) надо выполнять сборку, какую конфигурацию и платформу следует использовать (в частности, указать, какой сертификат для сборки под iOS использовать в случае, если приложение работает с PUSH-уведомлениями).
  4. Выполняем «одним кликом» сборку мобильного приложения под все выбранные платформы
  5. «Другим кликом» отправляем собранные мобильные приложения в магазины приложений (если это приложение для iOS или Android). В магазины Windows Apps / Windows Phone Apps приложение нужно загружать вручную, т.к. Microsoft пока не предоставляет API для размещения приложения в магазине.
Следует отдельно отметить, что сборщик не нужен для разработки и отладки мобильного приложения. Для этого можно использовать мобильную платформу разработчика и средства Конфигуратора для передачи конфигурации на мобильное устройство. А вот для распространения мобильного приложения - нужен сборщик.

Приложения на мобильной платформе

Сама фирма «1С» выпускает на мобильной платформе ряд приложений, являющихся мобильными клиентами серверных приложений 1С (1С:Документооборот, 1С:Управление Небольшой Фирмой и т.д.). Эти приложения реализуют некоторое подмножество функциональности «обычных» клиентов. В случае мобильной версии «1С:Управление Небольшой Фирмой» функциональности достаточно для полноценного использования программы, и мы часто видели ситуацию, когда клиентам для ведения бизнеса достаточно мобильной версии приложения.
Наши партнеры используют мобильную платформу как для разработки тиражных мобильных приложений, распространяемых через магазины приложений, так и для заказных приложений, созданных по запросам конкретных клиентов. Среди тиражных приложений встречаются приложения, которые используют не 1С-ный back-end в качестве центрального хранилища данных.
Среди мобильных приложений, созданных по заказу клиентов, можно упомянуть мобильный клиент для «1С:Управления Производственным Предприятием», созданный по заказу крупного машиностроительного холдинга. Около ста сотрудников холдинга используют мобильное приложение в горячих цехах, где по соображениям техники безопасности поставить стационарные компьютеры невозможно. Встроенная камера мобильного устройства используется для чтения штрих-кодов изделий и поиска их в справочнике номенклатур, мобильное приложение позволяет понять, на каком этапе технологической цепочки находится данное изделие, отметить прохождение изделием очередной операции и т.п.

Заключение

Мы постарались очень поверхностно описать мобильную платформу, то, что она позволяет делать и почему она получилась такой, какой получилась. В данной статье практически ничего не сказано про мобильную Windows. На то есть несколько причин: во-первых, версия мобильной платформы под Windows вышла сравнительно недавно («1С:Предприятие» версии 8.3.7), во-вторых эта версия мобильной платформы не обладает какими-то существенными отличиями от реализации для других мобильных ОС. Естественно, что функциональность для ОС Windows мы будем наращивать. Равно как и наращивать функциональность мобильной платформы в целом. Так, в ближайших планах у нас – поддержка в мобильной платформе внешних компонентов; этот механизм (давно доступный в «большой» платформе), позволит разработчикам реализовать функциональность, недоступную в силу каких-либо причин в мобильной платформе.
Традиционно сильными сторонами технологической платформы «1С:Предприятие» являются легкость в освоении для разработчика и быстрота создания и модификации бизнес-приложений. Мобильная платформа 1С перенесла оба этих козыря в мобильный мир. Мобильная платформа 1С – это возможность быстро разработать приложение, работающее на трех самых массовых мобильных платформах (iOS, Android, Windows Phone / 8.1 / 10). А благодаря широкому спектру доступных платформенно-независимых средств интеграции (Web- и HTTP-сервисы и т.д.) мобильная платформа 1С - это возможность быстро создать мобильный клиент под три мобильные платформы для практически любого серверного приложения, поддерживающего любой из способов интеграции, доступных в платформе 1С (Web- и HTTP-сервисы, файловый обмен и т.д).

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

Разработка мобильных приложений на платформе 1С для уже подготовленных программистов 1С работающих на стационарной платформе требует получения минимального набора навыков и имеет очень низкий порог вхождения в мобильную разработку(по сравнению с другими платформами для мобильной разработки).

В данной статье по шагам постараюсь описать основные моменты работы с мобильной платформой(что-то вроде мини F.A.Q. для начала разработки под мобильную платформу).

Итак начнём:
1.Устанавливаем стационарную платформу 1С, обязательно при установке указываем компоненту «Модули расширения веб-сервера».
2.Устанавливаем веб-сервер Apache 2.2 c настройками по-умолчанию.
3.Создаём пустую информационную базу с настройками по-умолчанию и открываем её в режиме конфигуратора.
4.В конфигураторе задаём «назначение использования» — мобильное устройство. Так же можно выбрать варианты персональный компьютер, или гибридный вариант «мобильное устройство + персональный компьютер». В случае выбора гибридного варианта «мобильное устройство + персональный компьютер» нам следует разграничивать код который будет выполняться на ПК и на мобильном устройстве. Для разграничения выполнения кода служат директивы препроцессора «#Если МобильноеПриложениеКлиент Тогда» и «#Если ТонкийКлиент Тогда». Директивы препроцессора определяют контекст кода 1С. Следует понимать, что набор объектов конфигурации доступных для использования значительно ограничен в мобильной платформе по-сравнению со стационарной платформой. К примеру в мобильной платформе у нас недоступна работа с планами видов характеристик, планами счетов, регистрами бухгалтерии, а также отчётами(недоступные ветки метаданых выделены серым цветом).

5.Обновляем конфигурацию и публикуем на веб-сервере.


6.Заходим в браузере по адресу http://127.0.0.1/MobPril/ и видим XML-файл(т.е. вся наша опубликованная конфигурация хранится на веб-сервере в виде XML-файла).


7.Ставим виртуальную машину «VMware Workstation»(или любую другую). Разворачиваем на виртуальной машине операционную систему Android.

P.S. Лучше вместо виртуальной машины использовать реальное устройство под управлением Android так как реальное устройство всегда будет работать быстрее и стабильнее, чем виртуальная машина.
8.Устанавливаем на Android мобильную платформу 1С.

Для того чтобы передать файлы установщика мобильной платформы на Android удобно воспользоваться программой «Google диск»(для этого нужно поставить программу «Google диск» на Android(из Playmarket) и программу «Автозагрузка и синхронизация» на персональный компьютер). Если ставим платформу на виртуальную машину тогда нам нужен файл «1cem-x86.apk «, если ставим платформу на реальное мобильное устройство под управлением Android тогда нам нужен файл «1cem-arm.apk «.


9. Далее подключаем опубликованное на веб-сервере приложение на наше мобильное устройство.
Чтобы узнать ip-адрес компьютера на котором установлен веб-сервер Apache достаточно набрать в командной строке команду ipconfig (или посмотреть в сведениях о сетевом подключении). Если при подключении у вас возникает ошибка — попробуйте отключить антивирус и брандмауэр.

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



10.Напишем наше первое приложение «Привет МИР!!!».

Для этого выполним следующие шаги:

10.1.Создадим общую форму и разместим на ней декорацию.

10.2.Откроем рабочую область начальной страницы и добавим туда общую форму созданную на шаге 10.1.

Так же в качестве шаблона начальной страницы укажем — одна колонка(в мобильном приложении доступна только 1 колонка).

10.3.Запустим наше мобильное приложение и увидим надпись «Привет МИР!!!».


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

Создадим справочники «Номенклатура», «Характеристики номенклатуры», «Контрагенты» и документ «Поступление товаров» и посмотрим как они отображаются в мобильной платформе.

Ниже на скриншотах представлены формы списков справочников «Номенклатура» и «Контрагенты».


Форма документа «Поступление товаров»:

Как видно из скриншота в табличной части используется группа колонок для оптимизации пространства.

Форма ввода новой строки в табличную часть товары:

Форма списка документов «Поступление товаров»:

Таким образом мы имеем 2 конфигурации — конфигурация мобильного устройства с ограниченным набором объектов и конфигурация стационарного компьютера которые обмениваются.
Следует понимать, что пропускная способность мобильного интернета достаточно низкая и передача больших объёмов данных между мобильным устройством и стационарным компьютером занимает большое количество времени.

В данной статье мы использовали платформу для разработчика и 2 конфигурации(конфигурация мобильного устройства с ограниченным набором объектов и конфигурация стационарного компьютера). Такой подход нужен только при разработке приложения, в реальной же практике мы скомпилируем.apk файл мобильного приложения и загрузим его в Playmarket. Пользователь будет скачиваит apk файл, устанавливать его на мобильное устройство и пользоваться полностью автономным мобильным приложением.

Так же на мобильной платформе доступны функции совершения звонков и отправки SMS-сообщений, сканирование штрихкодов, записи аудио и видео, функции геопозиционирования, а также работа с веб-сервисами. Продолжение следует…

Мобильная платформа 1С:Предприятия – это набор инструментов и технологий для быстрой разработки приложений под мобильные ОС iOS, Android, Windows Phone / 8.1 / 10, с использованием тех же сред разработки (Конфигуратор или 1С:Entrprise Development Tools) и тех же методик разработки, что используются для «обычных» приложений 1С. В результате получаются автономные, офлайновые приложения, но с возможностью обмена информацией с внешним миром при помощи широкого спектра средств интеграции, предоставляемого платформой: Web и HTTP-сервисы, е-мейл и т.д. Поскольку протоколы обмена – платформенно-независимые, мобильная платформа 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.
  • эта система должна позволять использовать разработанные приложения в стиле, принятом на современных мобильных устройствах. В частности, интерфейс должен опираться на ручное управление (в буквальном смысле этого слова) с использованием сенсорных экранов.
  • система должна обеспечивать единообразный программный интерфейс для реализации различных специфических механизмов, вне зависимости от используемой мобильной ОС.
  • разработчик должен использовать тот же инструмент и те же подходы к разработке, что и при разработке приложений для «обычного» компьютера.
  • прикладной разработчик должен разрабатывать прикладное решение в привычной среде разработки, по возможности используя единый код для настольной и мобильной систем.
  • интерфейс прикладного решения, работающего на мобильном устройстве, должен быть аналогичен для различных платформ и в целом однозначно узнаваем.
Результатом разработки явилась так называемая мобильная платформа , которая была выпущена 29 мая 2013 года в вариантах для iOS и Android. Мобильная платформа «1С:Предприятия» - это набор инструментов и технологий, позволяющий создавать приложения для мобильных ОС iOS, Android, Windows Phone / 8.1 / 10, используя ту же среду разработки (Конфигуратор) и те же методики разработки, что и для обычных приложений на платформе «1С:Предприятие». В результате получаются автономные, офлайновые приложения, но с возможностью обмена информацией с внешним миром при помощи широкого спектра средств интеграции, предоставляемого платформой: Web- и HTTP-сервисы, электронная почта и т.д.
Мобильная платформа была достаточно хорошо воспринята сообществом, начали появляться различные статьи на эту тему (например, и ). Для того, чтобы разработать полнофункциональное приложение, работающее одновременно на подавляющем большинстве мобильных устройств, теперь требовалось минимальное время и знания, принципиально не отличающиеся от знаний «обычного» прикладного разработчика на платформе «1С:Предприятие». Безусловно, такой низкий порог вхождения привлекает разработчиков, которым надо «малой кровью» обеспечить некоторой базовой функциональностью сотрудников, работающих на выезде, начальство, да и прочих мобильных сотрудников, которым требуется работа с корпоративной системой.
Начать разрабатывать мобильное приложение на платформе «1С:Предприятие» просто. В Конфигураторе нужно установить у конфигурации свойство «Назначение использования» в значение «Мобильное устройство». При этом часть прикладных объектов конфигурации станет недоступна (планы видов характеристик, планы счетов и т.д.), но станут доступны специфичные для мобильных приложений свойства (например, встроенные средства мультимедиа и геопозиционирования мобильного устройства и т.п.).


При этом отлаживать основные алгоритмы приложения (не связанные непосредственно с мобильной спецификой) можно непосредственно в Конфигураторе на компьютере разработчика. При этом участки кода, в которых происходит обращение к «мобильной» функциональности, рекомендуется обрамлять соответствующими инструкциями препроцессору, чтобы избежать ошибки при выполнении кода на персональном компьютере:
#Если МобильноеПриложениеКлиент Тогда Данные = ГеопозиционированиеСервер.ПолучитьИмяПровайдера(); #КонецЕсли
Начиная с версии мобильной платформы 8.3.7 стала доступна и отладка приложения непосредственно на мобильном устройстве (подробнее об этом ниже).

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

  • мобильное приложение может быть составной и неотъемлемой частью существующей информационной системы предприятия. Мобильное приложение будет предоставлять интерфейс и другие возможности (включая обмен данными), «заточенные» под возможности существующей информационной системы. В этом случае мобильное приложение очень плотно связано с «обычной» информационной системой и не может эксплуатироваться в отрыве от нее.
  • мобильное приложение выполняет специфические задачи, которые практически никак не связаны с информационной системой предприятия. Существует лишь минимальный набор данных, которыми обмениваются мобильное приложение и информационная система. В этом случае, скорее всего, мобильное приложение будет выполнять обмен по некоторому стандартизированному протоколу, что делает возможным применение этого мобильного приложения в совершенно различных случаях и ситуациях.
Две вышеописанные ситуации можно считать крайними вариантами. Но это не единственные варианты разработки. Прикладной разработчик может самостоятельно выбирать возможности интеграции между мобильным приложением и той информационной системой, которая выступает бэк-офисом для него.
Мобильное приложение разрабатывается как полностью автономная конфигурация, но может разделять часть исходного текста с «родительской» конфигурацией. Кстати, «родительская» конфигурация может физически не существовать (например, если вы разрабатываете некое универсальное приложение, которое может работать с разными системами по универсальному протоколу).

Устройство мобильной платформы

Что же представляет собой мобильная платформа и что она умеет?
Справедливости ради, мобильная платформа - это всего один из компонентов всего комплекса, благодаря которому «1С:Предприятие 8» работает на мобильных устройствах. Итак, прикладной разработчик оперирует следующими компонентами:
  1. Собственно мобильная платформа - мобильная часть фреймворка «1С:Предприятие». Она бывает обычной (которая используется во время сборки приложения для публикации в магазине приложений) и мобильной платформой разработчика, которая используется (сюрприз) во время разработки мобильного приложения.
  2. Мобильная конфигурация - это конфигурация системы программ «1С:Предприятие», записанная в виде XML-файла.
  3. Комбинация мобильной платформы и мобильной конфигурации дает мобильное приложение.
  4. Сборщик мобильных приложений - специализированное прикладное решение, которое умеет сделать из мобильной платформы, конфигурации, заставок, иконок и прочих компонентов, готовый файл мобильного приложения, который можно загрузить в магазины Apple AppStore, Google Play, Windows Phone Apps / Windows Apps.
Почему все так сложно? Почему нельзя сделать на мобильном устройстве точно так, как это сделано в большой платформе? Т.е. ставить на устройство одну мобильную платформу и загружать в нее любое количество конфигураций/приложений? Это запрещают делать лицензионные ограничения на приложения, которые распространяются через магазины приложений. Например, если ваше приложение будет загружать исполняемый код (в виде скрипта) через Интернет, то оно никогда не появится в магазине приложений Apple. Следует, однако, понимать, что возможности по загрузке любой конфигурации, которые есть в мобильной платформе разработчика, не предназначены для дистрибуции мобильных приложений даже внутри одной компании, не говоря уже о дистрибуции клиентам разработчика.
После того, как мобильное приложение оказывается на целевом мобильном устройстве, возникает необходимость использовать какую-то базу данных (данные надо где-то хранить). В качестве движка базы данных мобильная платформа использует собственный движок базы данных, который портирован на мобильную платформу из платформы для персонального компьютера. Он компактен и достаточно быстр, но главное - он обеспечивает ровно такое же поведение, к которому привыкли прикладные разработчики, работая на платформе для персональных компьютеров.
Также стоит отметить, что внутри себя мобильное приложение построено по той же схеме, что и работа обычной платформы с файловым вариантом информационной базы: есть клиентская часть, есть серверная часть, есть база данных и есть клиент-серверное взаимодействие.
Собственно мобильная платформа написана как native-приложение, компилируется в двоичный код под основные процессорные архитектуры, используемые сейчас в мобильном мире: это архитектура ARM v5 и выше и x86.
Кроме того, для взаимодействия с теми или иными возможностями мобильного устройства (телефония, GPS, работа со встроенной камерой и т.п.) могут требоваться специальные разрешения. Для iOS они задаются непосредственно в процессе работы самого приложения, а для Android разрешения указываются при создании приложения. Требуемые разрешения указываются при разработке мобильного приложения и используются сборщиком мобильных приложений, но о сборщике - чуть позже.

Немного о платформе разработчика

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

Чтобы добавить новое приложение в платформу, нужно разместить XML-файл с его описанием на ресурсе, доступном с мобильного устройства по протоколу HTTP. Удобнее всего сделать это из Конфигуратора, через меню «Конфигурация \ Мобильное приложение \ Публиковать». При этом XML-файл с конфигурацией приложения размещается на веб-сервере на компьютере разработчика (соответственно на этом компьютере должен быть веб-сервер – IIS или Apache).

Если для приложения указать опцию «Перезапуск из конфигуратора», то приложение на мобильном устройстве будет автоматически обновляться с компьютера разработчика каждый раз, когда разработчик обновит размещенный на веб-сервере XML файл конфигурации.
При включенной опции «Отладка разрешена» возможна пошаговая отладка приложения на мобильном устройстве из Конфигуратора на компьютере разработчика (в Конфигураторе должна быть выбрана опция «Отладка по протоколу HTTP» в меню «Сервис \ Параметры»). Если в Конфигураторе поставить в коде точки останова и выбрать команду «Мобильное приложение – начать отладку», то мобильное приложение на устройстве остановится, когда исполняемый код дойдет до точки останова, и в Конфигураторе можно будет посмотреть значения переменных, стек вызовов и т.д.

Что умеет?

Итак, что умеет мобильная платформа? Достаточно много:)
Если не оперировать специфическими терминами «1С:Предприятия», то мобильная платформа предоставляет возможность работать с нормативно-справочной информацией, оформлять документы, описывающие какие-то внешние действия, просматривать отчеты, связываться с внешним миром с помощью интернет-сервисов и многое другое. Т.е. она предоставляет прикладному разработчику возможность написать достаточно функциональное приложение, например, программу учета домашних финансов, программу для выездной торговли и тому подобное.
Но кроме обычной функциональности, которая есть на платформе для персонального компьютера, мобильная платформа должна обеспечивать работу со специфическими возможностями, которые присущи только мобильным устройствам:
  • работа со звонками и журналом звонков;
  • работа с короткими сообщениями (SMS) и их списком;
  • контакты;
  • календари;
  • геопозиционирование (без прокладки маршрутов);
  • позволяет делать фотоснимки, а также осуществлять видео- и аудиозапись;
  • реагировать на изменение ориентации экрана;
  • работать с уведомлениями (локальными и PUSH, как напрямую, так и через специальный сервис-посредник);
  • сканировать штрих- и QR-коды с помощью камеры
  • Монетизация мобильных приложений (т.е. способ дать разработчику мобильных приложений возможности для дополнительного заработка):
    • Работа с сервисами покупок Apple In-App Purchase (для ОС iOS) и Google Play In-App Billing (для ОС Android), с помощью которых можно организовывать в мобильном приложении различного рода подписки, покупки функциональности и т.д
    • Показ рекламы в мобильных приложениях (пока поддерживаются сервисы iAd для ОС iOS и AdMob для ОС Android).
  • и т.д.
Понятно, что какие-то возможности могут быть недоступны на каждом конкретном устройстве, поэтому для определения того, что можно делать на том устройстве, на котором исполняется мобильное приложение, предусмотрены специальные методы, которые позволяют узнать, доступна на данном устройстве, например, возможность набора номера или нет. Таким образом, реализуется примерно такая схема использования: проверяем, можно использовать какую-то возможность или нельзя и если можно - используем:
Если СредстваТелефонии.ПоддерживаетсяНаборНомера() Тогда СредстваТелефонии.НабратьНомер(НомерТелефона, ВызватьСразу); КонецЕсли;
Спрятать от прикладного разработчика подробности об используемой мобильной ОС, предоставить ему унифицированные механизмы для использования мобильной функциональности – важная задача для нас. Мы считаем, что задача нами успешно решается. Различия в реализуемых механизмах или отсутствуют или сведены к минимуму. Кроме, конечно, случаев, когда функциональности в одной из ОС нет совсем.
Например, техника работа с PUSH-уведомлениями сильно отличается у Google и Apple. Мы приложили немало усилий, чтобы унифицировать механизм работы с PUSH-уведомлениями из прикладного кода. В случае мобильного приложения нам это удалось почти на 100%: один и тот же прикладной код на мобильном устройстве обрабатывает прием PUSH-уведомлений и на iOS, и на Android. И код рассылки PUSH-уведомлений в серверном приложении также выглядит одинаково. Но чтобы добиться такой унификации, нам пришлось разработать специальный сервер-прокси https://pushnotifications.1c.com/ , который скрывает от разработчика разную технику работы с сервисами Apple Push Notification Service (APNS) и Google Cloud Messaging (GCM). Вся разница заключается в разных настройках непосредственно на сайте-прокси https://pushnotifications.1c.com/ ; для работы c APNS на сайт нужно загрузить SSL-сертификат (который Apple выдает для приложения по заявке разработчика), для работы с GCM – указать уникальный идентификатор приложения.
Очевидно, что сразу невозможно реализовать все возможности, которые вы хотите иметь в мобильном приложении. И всегда приходится искать компромисс между несколькими очень полезными вещами. И если вам чего-то не хватает - пишите нам о том, какие бизнес-задачи (ведь платформа - это в первую очередь инструмент по реализации бизнес-задач!) у вас не получается решить и какой механизм помог бы вам для этого.

Как выглядит?

Графический интерфейс мобильной платформы – отдельная тема. В 1С:Предприятии, как известно, интерфейс описывается декларативно. Это, с одной стороны, накладывает некоторые ограничения на разработку UI (например, отсутствует возможность попиксельного позиционирования), но, с другой стороны, позволяет платформе единообразно отрисовывать интерфейс на экранах разного размера, в тонком и веб-клиенте. Этого же принципа мы старались придерживаться и в мобильной платформе. Насколько хорошо нам это удалось? Попробуем разобраться.
В первых версиях мобильной платформы (до 8.3.5 включительно) графический интерфейс приложений выглядел весьма привычно для искушенных пользователей 1С; фактически он переносил знакомый по «десктопным» версиям 1С интерфейс в мобильный мир. Но с точки зрения пользователей, ранее с 1С не знакомых, интерфейс выглядел несколько архаичным.
Учтя замечания и пожелания, мы коренным образом пересмотрели свой подход к мобильному интерфейсу в версии 8.3.6. Можно сказать, что мы сделали совершенно новый мобильный интерфейс для наших приложений. Он имеет много общего с нашим интерфейсом «Такси» . Модель разработки для разработчиков мобильных приложений соответствует модели разработки в «Такси». При этом мобильный интерфейс полностью соответствует принятым в мобильных приложениях подходам к дизайну и . Интерфейс полностью учитывает специфику мобильного мира: небольшой размер экрана (а значит, оформление графических элементов должно стать более аскетичным – без теней, градиентов), есть поддержка пальцевых жестов и т.д. Интересный факт: новый механизм платформы , отвечающий за размещение элементов в форме (layouter) оказался настолько удачным и своевременным для мобильной платформы, что был выпущен в ней раньше (в версии 8.3.6) чем в платформе для ПК (в версии 8.3.7), для которой он в первую очередь предназначался.
На картинке можно увидеть, как поменялся наш интерфейс.
Приложение «Управление небольшой фирмой» на версии мобильной платформы 8.3.5:


Оно же на версии 8.3.6:

А вот так выглядит интерфейс мобильной платформы вживую:

Сборщик - и что это за зверь?

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


После настройки сборщик готов к работе. В общем случае работа со сборщиком выглядит следующим образом:
  1. Загружаем версию мобильной платформы 1С, на которой будем собирать приложение
  2. Загружаем конфигурацию, из которой будем собирать мобильное приложение
  3. Создаем мобильное приложение, в котором указываем, для каких платформ (Android, iOS, Windows) надо выполнять сборку, какую конфигурацию и платформу следует использовать (в частности, указать, какой сертификат для сборки под iOS использовать в случае, если приложение работает с PUSH-уведомлениями).
  4. Выполняем «одним кликом» сборку мобильного приложения под все выбранные платформы
  5. «Другим кликом» отправляем собранные мобильные приложения в магазины приложений (если это приложение для iOS или Android). В магазины Windows Apps / Windows Phone Apps приложение нужно загружать вручную, т.к. Microsoft пока не предоставляет API для размещения приложения в магазине.
Следует отдельно отметить, что сборщик не нужен для разработки и отладки мобильного приложения. Для этого можно использовать мобильную платформу разработчика и средства Конфигуратора для передачи конфигурации на мобильное устройство. А вот для распространения мобильного приложения - нужен сборщик.

Приложения на мобильной платформе

Сама фирма «1С» выпускает на мобильной платформе ряд приложений, являющихся мобильными клиентами серверных приложений 1С (1С:Документооборот, 1С:Управление Небольшой Фирмой и т.д.). Эти приложения реализуют некоторое подмножество функциональности «обычных» клиентов. В случае мобильной версии «1С:Управление Небольшой Фирмой» функциональности достаточно для полноценного использования программы, и мы часто видели ситуацию, когда клиентам для ведения бизнеса достаточно мобильной версии приложения.
Наши партнеры используют мобильную платформу как для разработки тиражных мобильных приложений, распространяемых через магазины приложений, так и для заказных приложений, созданных по запросам конкретных клиентов. Среди тиражных приложений встречаются приложения, которые используют не 1С-ный back-end в качестве центрального хранилища данных.
Среди мобильных приложений, созданных по заказу клиентов, можно упомянуть мобильный клиент для «1С:Управления Производственным Предприятием», созданный по заказу крупного машиностроительного холдинга. Около ста сотрудников холдинга используют мобильное приложение в горячих цехах, где по соображениям техники безопасности поставить стационарные компьютеры невозможно. Встроенная камера мобильного устройства используется для чтения штрих-кодов изделий и поиска их в справочнике номенклатур, мобильное приложение позволяет понять, на каком этапе технологической цепочки находится данное изделие, отметить прохождение изделием очередной операции и т.п.

Заключение

Мы постарались очень поверхностно описать мобильную платформу, то, что она позволяет делать и почему она получилась такой, какой получилась. В данной статье практически ничего не сказано про мобильную Windows. На то есть несколько причин: во-первых, версия мобильной платформы под Windows вышла сравнительно недавно («1С:Предприятие» версии 8.3.7), во-вторых эта версия мобильной платформы не обладает какими-то существенными отличиями от реализации для других мобильных ОС. Естественно, что функциональность для ОС Windows мы будем наращивать. Равно как и наращивать функциональность мобильной платформы в целом. Так, в ближайших планах у нас – поддержка в мобильной платформе внешних компонентов; этот механизм (давно доступный в «большой» платформе), позволит разработчикам реализовать функциональность, недоступную в силу каких-либо причин в мобильной платформе.
Традиционно сильными сторонами технологической платформы «1С:Предприятие» являются легкость в освоении для разработчика и быстрота создания и модификации бизнес-приложений. Мобильная платформа 1С перенесла оба этих козыря в мобильный мир. Мобильная платформа 1С – это возможность быстро разработать приложение, работающее на трех самых массовых мобильных платформах (iOS, Android, Windows Phone / 8.1 / 10). А благодаря широкому спектру доступных платформенно-независимых средств интеграции (Web- и HTTP-сервисы и т.д.) мобильная платформа 1С - это возможность быстро создать мобильный клиент под три мобильные платформы для практически любого серверного приложения, поддерживающего любой из способов интеграции, доступных в платформе 1С (Web- и HTTP-сервисы, файловый обмен и т.д).

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