Про мобільній платформі 1С: Підприємства

Мобільна платформа 1С: Підприємства – це набір інструментів і технологій для швидкої розробки додатків під мобільні ОС iOS, Android, Windows, з використанням тієї ж середовища розробки (Конфігуратор) і тих же методик розробки, що використовуються для «звичайних» програм 1С. В результаті виходять автономні, офлайнові програми, але з можливістю обміну інформацією з зовнішнім світом за допомогою широкого спектру засобів інтеграції, що надається платформою: Web і HTTP-сервіси, е-мейл і т. д. Оскільки протоколи обміну – платформно-незалежні, мобільна платформа 1С, крім іншого – це засіб швидкого створення мобільного фронт-енду для практично будь-якого серверного рішення.
image

Передісторія
Ще в часи «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, використовуючи ту ж середовище розробки (Конфігуратор) і ті ж методики розробки, що і для звичайних додатків на платформі «1С: Підприємство». В результаті виходять автономні, офлайнові програми, але з можливістю обміну інформацією з зовнішнім світом за допомогою широкого спектру засобів інтеграції, що надається платформою: Web — і HTTP-сервіси, електронна пошта і т. д.
Мобільна платформа була досить добре сприйнята громадою, почали з'являтися різні статті на цю тему (наприклад, тут, тут і тут). Для того, щоб розробити повнофункціональне додаток, що працює одночасно на переважній більшості мобільних пристроїв, тепер потрібно мінімальний час і знання, не принципово відрізняються від «звичайного» прикладного розробника на платформі «1С: Підприємство». Безумовно, такий низький поріг входження приваблює розробників, яким потрібно «малою кров'ю» забезпечити деякою базовою функціональністю співробітників, що працюють на виїзді, начальство, так і інших мобільних співробітників, яким потрібна робота з корпоративною системою.
Власне, почати розробляти мобільний додаток на платформі «1С: Підприємство» просто. В конфігураторі треба встановити у конфігурації властивість «Призначення використання» в значення «Мобільний пристрій». При цьому частина прикладних об'єктів конфігурації стане недоступна (плани видів характеристик, плани рахунків і т. д.), але стануть доступні специфічні для мобільних додатків властивості (наприклад, вбудовані засоби мультимедіа і геопозиціонування мобільного пристрою тощо).
image
При цьому налагоджувати основні алгоритми програми (не пов'язані безпосередньо з мобільного специфікою) можна безпосередньо в конфігураторі на комп'ютері розробника. При цьому ділянки коду, в яких відбувається звертання до «мобільного» функціональності, рекомендується обрамляти відповідними інструкціями препроцессору, щоб уникнути помилки при виконанні коду на персональному комп'ютері:
#Якщо МобильноеПриложениеКлиент Тоді
Дані = ГеопозиционированиеСервер.ПолучитьИмяПровайдера();
#КонецЕсли

Починаючи з версії мобільної платформи 8.3.7 стала доступна і налагодження програми безпосередньо на мобільному пристрої (детальніше про це нижче).

Розробка на мобільній платформі може слідувати різним підходам, але здається правильним виділити кілька основних моментів. З точки зору побудови власне мобільного додатка, його функціональної насиченості і ролі в ІТ-інфраструктурі підприємства:
  • мобільний додаток може бути складовою і невід'ємною частиною існуючої інформаційної системи підприємства. Мобільний додаток буде надавати інтерфейс і інші можливості (включаючи обмін даними), «заточені» під можливості існуючої інформаційної системи. В цьому випадку мобільний додаток дуже щільно пов'язане з звичайною інформаційною системою і не може експлуатуватися у відриві від неї.
  • мобільний додаток виконує специфічні завдання, які практично ніяк не пов'язані з інформаційною системою підприємства. Існує лише мінімальний набір даних, якими обмінюються мобільний додаток і інформаційна система. У цьому випадку, швидше за все, мобільний додаток буде виконувати обмін з певного стандартизованого протоколу, що робить можливим застосування цього мобільного додатку в абсолютно різних випадках і ситуаціях.
Дві вищеописані ситуації можна вважати крайніми варіантами. Але це не єдині варіанти розробки. Прикладної розробник може самостійно вибирати можливості інтеграції між мобільним додатком і тієї інформаційної системи, яка виступає бек-офісом для нього.
Мобільний додаток розробляється як повністю автономна конфігурація, але може розділяти частина вихідного тексту з «батьківського» конфігурацією. До речі, «батьківська» конфігурація може фізично не існувати (наприклад, розробляється якесь універсальне додаток, який може працювати з різними системами з універсального протоколу).

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

Трохи про платформі розробника

Поки ми ведемо розробку мобільного додатка – ми не пов'язані ліцензійними обмеженнями, що накладаються на мобільні додатки, що розповсюджуються через магазини додатків. А значить, ми можемо використовувати мобільну платформу 1С так само, як використовуємо «велику» платформу на персональному комп'ютері – встановити саму мобільну платформу на смартфон/планшет і довантажувати в неї конфігурації мобільних додатків. Після запуску платформа покаже нам список зареєстрованих в ній додатків:
image
Щоб додати нове додаток в платформу, потрібно розмістити xml-файл з його описом на ресурсі, доступному з мобільного пристрою по протоколу HTTP. Зручніше за все зробити це з конфігуратора, через меню «Конфігурація \ Мобільний додаток \ Публікувати». При цьому xml-файл з конфігурацією додатка розміщується на веб-сервері на комп'ютері розробника (відповідно на цьому комп'ютері повинен бути веб-сервер IIS або Apache).
image
Якщо для програми вказати опцію «Перезавантаження з конфігуратора», програма на мобільному пристрої буде автоматично оновлюватися з комп'ютера розробника кожен раз, коли розробник оновить розміщений на веб-сервері 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. Можна сказати, що ми зробили абсолютно новий мобільний інтерфейс для наших додатків. Він має багато спільного з нашим інтерфейсом «Таксі». Модель розробки для розробників додатків відповідає моделі розробки у «Таксі». При цьому мобільний інтерфейс повністю відповідає прийнятим в мобільних додатках підходів до дизайну і UX. Інтерфейс повністю враховує специфіку мобільного світу: невеликий розмір екрана (а значить, оформлення графічних елементів має стати більш аскетичним – без тіней, градієнтів), є підтримка пальцевих жестів і т. д. Цікавий факт: новий механізм платформи, відповідальний за розміщення елементів у формі (layouter) виявився настільки вдалим і своєчасним для мобільної платформи, що був випущений в ній раніше (у версії 8.3.6) ніж в платформі для ПК (у версії 8.3.7), для якої він в першу чергу призначався.
На зображенні можна побачити, як змінився наш інтерфейс.
Додаток «Управління невеликою фірмою» на версії мобільної платформи 8.3.5:
image
Воно ж на версії 8.3.6:
image

А ось так виглядає інтерфейс мобільної платформи наживо:


Складальник — і що це за звір?
Як вже було сказано раніше, мобільний додаток складається з декількох компонентів (власне мобільна платформа, конфігурація, різні ресурси), які повинні представляти собою єдине ціле для приміщення програми в магазин. Щоб полегшити перетворення компонентів в додаток, був розроблений складальник мобільних додатків. Це конфігурація (додаток), створена на платформі «1С: Підприємство», яка зберігає у своїй базі даних всі компоненти, необхідні для формування мобільного додатку. Для того щоб складальник виконував свою роботу, необхідно завантажити та встановити різні програмні пакети, які необхідні для його роботи (Java і Android SDK і т. п.), потім вказати шляхи до цих пакетів у налаштуваннях збирача і задати деякі інші параметри (ключі розробників і т. д.).
image
Після налаштування складальник готовий до роботи. У загальному випадку робота зі складальником виглядає наступним чином:
  1. Завантажуємо версію мобільної платформи 1С, на якій будемо збирати додаток
  2. Завантажуємо власне конфігурацію, з якої будемо збирати мобільний додаток
  3. Створюємо мобільний додаток, в якому вказуємо, для яких платформ (Android, iOS, Windows) треба виконувати збірку, яку конфігурацію і платформу слід використовувати (зокрема, вказати, який сертифікат для складання під iOS використовувати у випадку, якщо додаток працює з PUSH-повідомленнями).
  4. Потім «одним кліком» виконується складання мобільного додатка під всі вибрані платформи
  5. «Одним кліком» зібрані мобільні додатки відправляються в магазини додатків (якщо це додаток для iOS або Android). В магазин Windows додаток потрібно завантажувати вручну, т. к. Microsoft поки не надає API для розміщення програми в магазині.
Слід окремо зазначити, що збирач не потрібен для розробки та налагодження мобільного додатку. Для цього можна використовувати мобільну платформу розробника і засоби конфігуратора для передачі конфігурації на мобільний пристрій. А ось для поширення мобільного додатка — потрібен складальник.

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

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

Які публікації від 1С вам були б найбільш цікавими?

/>
/>


<input type=«checkbox» id=«vv73116»
class=«checkbox js-field-data»
name=«variant[]»
value=«73116» />
Про пристрій технологічної платформи 1С: Підприємство (мобільна платформа, веб-клієнт тощо)
<input type=«checkbox» id=«vv73118»
class=«checkbox js-field-data»
name=«variant[]»
value=«73118» />
прикладних продуктах (1С:ERP, 1С: Управління Торгівлею і т. д.)
<input type=«checkbox» id=«vv73120»
class=«checkbox js-field-data»
name=«variant[]»
value=«73120» />
Про методики, що використовуються нами при розробці платформи 1С: Підприємство
<input type=«checkbox» id=«vv73122»
class=«checkbox js-field-data»
name=«variant[]»
value=«73122» />
Про методики, що використовуються нами при розробці прикладних продуктів (1С:ERP, 1С: Управління Торгівлею і т. д.)
<input type=«checkbox» id=«vv73124»
class=«checkbox js-field-data»
name=«variant[]»
value=«73124» />
Інше (пишіть у коментарях)

Проголосував 21 людина. Утрималося 6 чоловік.


Тільки зареєстровані користувачі можуть брати участь в опитуванні. Увійдіть, будь ласка.


Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.