Мобильная платформа 1С:Предприятия – это набор инструментов и технологий для быстрой разработки приложений под мобильные ОС iOS, Android, Windows Phone / 8.1 / 10, с использованием тех же сред разработки (Конфигуратор или 1С:Entrprise Development Tools) и тех же методик разработки, что используются для «обычных» приложений 1С. В результате получаются автономные, офлайновые приложения, но с возможностью обмена информацией с внешним миром при помощи широкого спектра средств интеграции, предоставляемого платформой: Web и HTTP-сервисы, е-мейл и т.д. Поскольку протоколы обмена – платформенно-независимые, мобильная платформа 1С, помимо прочего – это средство быстрого создания мобильного фронт-энда для практически любого серверного решения.
Разработка на мобильной платформе может следовать различным подходам, но можно выделить несколько основных моментов. С точки зрения построения собственно мобильного приложения, его функциональной насыщенности и роли в ИТ инфраструктуре предприятия:
А вот так выглядит интерфейс мобильной платформы вживую:
Только зарегистрированные пользователи могут участвовать в опросе. Войдите , пожалуйста.
28 сентября сего года фирма 1С без особого шума и пафоса выпустила ознакомительную версию платформы 8.3.2.163, которая была предназначена для тестирования. Полный список изменений и улучшений желающие могут прочитать или, если имеют подписку, .
Из перечисленных улучшений достаточно «вкусным» мне кажется «Мобильная платформа 1С: Предприятия 8», которая позволяет привычными средствами 1С создать приложение для мобильных операционок Android или iOS
Мобильная платформа, как пишут сами разработчики, «это общее название технологии, позволяющей создавать приложения, работающие на мобильных устройствах под управлением операционных систем Android или iOS».
«Мобильное приложение, установленное на устройстве, представляет собой совокупность мобильной платформы и информационной базы.».
То есть, говоря проще, можно свою написанную конфигурацию, скомпилировать в приложение под Android (.apk) или iOS (.zip). Затем всё это добро можно выложить в Google Play или AppStore. Правда, если программу под Андроид можно подписать созданным там же ключём сразу же в 1С, и она будет готова для публикации немедленно, то для публикации приложения в AppStore его сначала придётся собрать с помощью программы Xcode на компьютере с операционной системой Mac OS X. И, разумеется, для публикации в любом из этих магазинов нужна лицензия разработчика.
Звучит всё хорошо, и я, естественно, захотел опробовать новые функции в деле.
Для этого нам понадобится новая версия платформы (), файл, который берётся , android SDK и JDK.
Предупрежу сразу: я сейчас не ставлю себе задачу показать процесс разработки чего-то конкретного на 1С, а просто хочу проверить и показать вам, что - да, мир сошёл с ума и на 1С действительно можно написать программку под Андроид.
Ну что ж, попробуем написать своеобразный «helloWorld» под гуглофон. Сделаем программу в тестовых целях - конфигурацию с одной общей формой, которую и вынесем на «рабочий стол».
Итак, создаём новую конфигурацию в управляемом режиме, и первое, что мы должны сделать, если пишем под мобильную платформу, это указать «Назначение использования» в свойствах самой конфигурации.
И здесь мы сразу обращаем внимание, что многие объекты конфигурации стали недоступны для использования. Мы уже не сможем использовать подсистемы, регламентные задания, XDTO-пакеты, Web- сервисы, отчеты, бизнес-процессы и многое другое. Также многие процедуры и методы для некоторых объектов оказываются недоступны. Это стоит учитывать при разработке.
Делаем «форму», создаём строковый реквизит с заголовком: «Привет, Хабр!» - и кидаем его на форму. Также создадим кнопку. В обработке нажатия напишем вывод сообщения, для примера.
&НаКлиенте Процедура Команда1(Команда) Предупреждение("Это работает!"); КонецПроцедуры
Для проверки работоспособности нам этого хватит, потому приступаем к самому интересному. Сохраняем конфигурацию в файл для мобильного приложения (Конфигурация->Мобильное приложение->Записать в файл), запускаемся в управляемом режиме, и запускаем обработку MobileAppWizard.epf. Этот файл лежит в архиве mobile.zip, который мы скачали в самом начале.
И вот нам предлагают заполнить первичные настройки, где все обязательные поля подчёркнуты красным.
Расположение мобильной платформы - каталог, в котором расположены файлы android.zip и ios.zip, необходимые для формирования поставки мобильного приложения. Они лежат всё в том же архиве mobile.zip.
Указываем папку, куда мы установили Android SDK (скачать можно ). 1С выставляет следующие требования:
Версия Android SDK Tools - не ниже 20.0.3;
Версия Android SDK Platform-tools - не ниже 14;
Версия SDK Platform - API 8 (не ниже версии 8.3).
И также нам нужен Java SDK (можно получить по этому адресу) Причем 1С предупреждает нас, что JDK7 не работает совместно с Android SDK.
Указываем папки, куда будет помещён наш.apk файл, место расположение ключа для подписи и псевдоним с паролем. Если вы делаете это впервые, и у Вас нет ключа, то можно заполнить «параметры ключа» и сформировать себе ключ (в таком случае в поле «файл ключа» вы должны указать папку, где этот ключ будет создан).
Нажимаем «ОК» и переходим ко второму окну.
В нём в первую очередь указываем «Конфигурацию моб.приложения» - тот самый файл, который мы сохранили. Затем язык, и только потом нажимаем на кнопочку с «лупой» и вводим там представление. Указываем « Идентификатор приложения» - уникальное имя Java-класса, которое будет использоваться в дальнейшем для выполнения обновления. Идентификатор должен обязательно быть написан на латинице, и 1С рекомендует начинать его название с «com.e1c.» Заполняем номер версии и сборки и жмём кнопку «Создать». Если всё пройдёт удачно, то система оповестит вас об успешном создании.apk файла.
Закидываем получившийся файл на телефон и устанавливаем любимым менеджером, предварительно разрешив в настройках системы установку сторонних приложений. Либо устанавливаем программу на эмулятор через adb. Скажу сразу: на эмуляторе всё ужасно тормозит, на телефоне же (проверял только на HTC Wildfire S) дела обстоят намного лучше, но всё равно проблемы есть. Например, у меня файл получился весом в целых 34 Mb, так что установка шла достаточно долго. После запуска нас приветствует экран заставки, и через некоторое время запускается сама конфигурация. (за фото извините: фоткал на калькулятор)
Пока новые возможности выглядят весьма «сыро»: ограничение функционала 1С, невозможность использования SDK напрямую, плюс большой размер и некоторые «тормоза»… Но сама возможность написать программу для мобильной платформы на 1С немного удивляет! Лично у меня двоякое мнение об этом. С одной стороны, эта «фича» пока больше похожа на игрушку, ибо отсутствует возможность сделать что-то по-настоящему стоящее. Но с другой стороны, это явно большой шаг компании 1С в сторону мобильности, и если данное направление будет активно развиваться, то это может принести немало пользы. Как пример - можно экипировать кладовщиков планшетами. Если будет возможность использовать «бортовые» камеры, то можно освободится от устройств считывания, и сканировать коды непосредственно с планшета, можно снабдить ими водителей машин, и посылать задания на перевозку или отслеживать маршрут автомобиля и время в движении. Вариантов, в общем-то, много, и то, что это всё будет в единой информационной системе, весьма порадует заказчиков/руководителей, ведь у них почему-то всегда присутствует панический страх перед использованием большого количества различных систем, они хотят использовать весь функционал на единой платформе.
Вот мы и подобрались к 1С: Предприятие в виде мобильного приложения -
небольшой обзор на мобильное приложение изнутри.
Мобильное приложение представляет собой самодостаточное приложение со своей собственной базой данных для работы с пользовательской информацией. На данный момент , мобильные приложение от 1С могут работать на трех самых популярных платформах - Android, Apple iOS, и Windows.
Установка мобильного приложения осуществляется из «маркетов» на данных платформах
.
Если приложение не опубликовано, то можно его установить передав файл-дистрибутив на мобильное устройство.
Конфигурировать и программировать само мобильное приложение можно только в полноценном режиме Конфигуратора, а затем собирать его с помощью специальной конфигурации Сборщик мобильных приложений.
Это огромный плюс, так как разработку мобильного приложения может вести разработчик 1С конфигураций, который сопровождает Вашу программу 1С: Предприятие.
Конечно, мобильное приложение обладает меньшими возможностями, чем десктопная платформа: например, отсутствуют такие объекты как Отчеты, Регистры бухгалтерии, Бизнес-процессы
.
Еще один минус - вы не сможете подключиться к базе данных 1С, которая работает на десктопной платформе в файловом или серверном варианте.
Вы спросите: «
Как же работать с обычной базой на 1С? Зачем такое приложение вообще нужно?»
Для связи с «внешним миром»существует несколько механизмов, например Планы обмена. Они позволяют связать полноценную базу 1С и базу мобильного приложения - примерно также, как работают распределенные базы данных.
Мобильное приложение должно выполнять функцию мобильного приложения и соответствующий функционал, поэтому полностью все данные из одной базы в другую не синхронизируются, да и не смогли бы из-за объектного ограничения, описанного выше.
Такая реализация обмена доступна, например, в связке программ 1С: Предприятие 8 Управление Торговлей ред.11 и
мобильное приложение "1С:Заказы"
. Базы обмениваются информацией о контрагентах, заказах покупателей товарным ассортиментом и ценами. При этом мобильное приложение может работать оффлайн, а при доступности сети Интернет производить обмен данными.
Мобильное приложение выглядит достойно, есть визуальный узнаваемый стиль по сравнению с десктопной версией 1С, а также набор стандартных операций производимый с объектами, типа: «Провести», «Пометить на удаление» и тому подобные. Поэтому пользователям мобильного приложения будет знаком контекст работы.
Вот так выглядит интерфейс приложения в последних версиях:
Второй популярный способ общения между мобильным приложением и учетной системой
1С:
Предприятие 8 - это работа через веб-сервисы
Общая схема организации следующая: в прикладном решение 1С: Предприятие 8, а проще говоря - в конфигурации, описывается веб-сервис, который выполняет какие-либо функции на стороне, где опубликован сервис, и может передавать данные.
По простому: с мобильного приложения в режиме онлайн можно обратиться к учетной системе 1С: Предприятие 8, выполнить какую-либо функцию, описанную в сервисе - например, получить данные по отчету или завести нового контрагента
Подробнее:
Сервис может передавать данные в формате, описанном в XDTO пакете, причем сам разработчик описывает эту модель данных. Можно передавать примитивные типы: числа, строки, даты. Можно передавать составные типы, можно передавать бинарные данные - например, картинки, или документы PDF, XLS. Мы покажем простой пример, где описан пакет с задачами - номер задачи и заголовок. Пример того, как выглядит пакет :
В свою очередь, в мобильном приложении создается объект с типом WS-Ссылка. В ней указывается адрес веб-сервиса, после чего автоматически подгружаются типы данных и методы, которыми сервис оперирует:
Все готово! В мобильном приложении теперь можно вызывать функцию сервиса 1С: Предприятие 8 или получать необходимые данные.
А что с лицензиями на мобильные приложения от 1С?
В информационном письме от фирмы 1С данный вопрос раскрыт. Выдержка приведена ниже.
Наши рекомендации:
Мобильные приложения от 1С - это довольно новый продукт, но в привычной «обертке» - разработку может выполнять штатный специалист по 1С. Они открывают новые горизонты для расширения взаимодействия с учетной системой и консолидация данных для управленческого учета. Рекомендуем использовать этот вариант работы, когда стационарный вариант работы с 1С не подходит и мобильного функционала будет достаточно, например, доступ только к части данных или части какого-либо процесса.
И по традиции, кейс:
Задача: Заказчик имеет центральный офис и несколько точек в своей торговой сети. На каждой точке несколько продавцов-менеджеров и одно рабочее место продажи товара с учетной программой. При этом , центральный офис дает поручения продавцам - например, собрать заказ для другой точки из своих остатков или разукомплектовать указанный товар. Для постановки задач Заказчик сначала использовал электронную почту и телефонные звонки, но - автоматизированное рабочее место одно и оперативно получать задачи и реагировать на них работники не могли. Центральный офис имел трудности в контроле таких задач, так как при постановке по телефону задача нигде не записывалась, а пересматривать почту на предмет невыполненных задач было затруднительно. Решение: Мы предложили следующее решение. Разработать необходимый функционал для постановки задач сотрудникам на базе мобильного приложения «1С: Заказы» и интегрировать его с центральной учетной системой. В качестве платформы для запуска и работы с мобильным приложением работник торговой точки мог использовать собственный мобильный телефон, а у кого их не было - для них центральный офис закупил недорогие смартфоны. Благодаря тому, что мобильное приложение и центральная учетная система работают в одном информационном пространстве - была достигнута оперативность постановки задач и адресация именно на того сотрудника, кому она предназначалась. Повысилась точность передачи информации - если раньше по электронной почте менеджер в офисе писал - «подготовить товар по Заказу№ ___», то теперь в задаче он просто указывал ссылку на необходимый заказ, которые работник точки мог открыть на телефоне. Повысился уровень контроля по задачам - они никуда не пропадали и имели статус, который им устанавливал работник в процессе исполнения задачи. А центральный офис всегда мог проконтролировать поставленную задачу.
Анатолий Никулин |
Мобильная платформа «1С:Предприятия 8» — это название технологии, которая позволяет разрабатывать решения, работающие на смартфонах и планшетах Google Android или Apple iOS. Важным преимуществом платформы «1С» является то, что решения разрабатываются в одном варианте для обоих мобильных операционных систем и затем просто экспортируются для Android и для iOS без какой-либо дополнительной модификации и написания платформенно-зависимого программного кода.
На мобильное устройство устанавливается сразу и платформа «1С:Предприятие» и сама информационная база (конфигурация, в терминах «1С»). Информационная база на устройстве содержит вариант файловой базы данных (для хранения различных данных, с которыми работает или будет работать пользователь) и само приложение (программный байт-код, который исполняющийся на планшете или смартфоне).
Пример мобильного клиента для СЭД «Корпоративный документооборот» созданный на мобильной платформе «1С:Предприятие 8.3»
Платформой поддерживается скачивание и развертывание приложений пользователями на их устройствах из магазинов App Store или Google Play. Дистрибутив при этом содержит все компоненты, необходимые для начала работы.
На базе мобильной платформы «1С» могут быть созданы различные решения, но основным вариантом решений являются мобильные off-line клиенты для учетных систем. Такие решения предназначены для поддержки мобильных пользователей в удаленных рабочих местах. Обмен данными при этом производится посредством регулярной синхронизации с центральной базой данных. Обмен данными возможен посредством следующих механизмов:
Разработанное мобильное приложение является отдельным, законченным программным продуктом и может обмениваться данными сразу с несколькими центральными базами данных. Например в одном мобильном приложении можно реализовать доступ и работу с документами из бухгалтерской базы данных и задачами из системы документооборота предприятия.
Практика разработки мобильного приложения 1С 8.3 (часть 1)
В данной статье речь пойдет о том, что довелось перепробовать и на какие грабли наступить, прежде чем удалось сделать более-менее нормальное приложение для планшетников. Приложение изначально затачивалось только под Андроид, за основу взята конфигурация 1С: Заказы, и мобильное приложение для разработки.
Изначально был выбран «неправильный» подход с компилированием приложения и закидыванием его на планшетник вручную. Напомню, что для сборки мобильных приложений используется «Помощник создания мобильного приложения» (MobileAppWizzard ). Затем на одном из форумов было найдено красивое решение с использованием мобильного приложения для разработки. Это приложение входит в комплект установки мобильной платформы. На момент разработки использовалась платформа версии 8.3.3.24. В папке «Android » можно найти файл 1cem.apk. Это и есть мобильное приложение для разработки. Его огромнейший плюс, сэкономивший нам уйму времени — в том, что можно опубликовать мобильное приложение на веб-сервере, а на планшетнике указать путь вида http://[ Адрес веб-сервера ]/[ Имя мобильного приложения ].
На планшетном ПК, в настройках добавленного приложения можно отметить флажок «Обновлять из конфигуратора», и при каждом запуске приложение будет пытаться подключиться к веб-серверу и проверять обновления.
После того, как мобильное приложение было развернуто, начался процесс его доработки.
Что требовалось:
1. Настроить обмен между центральной базой и мобильным устройством.
2. Организовать асимметричную синхронизацию: из центральной базы выгружать данные о номенклатуре, контрагентах, остатках товаров на складе и взаиморасчетах, а из мобильного приложения загружать только заказы покупателей.
3. Реализовать простой интерфейс для менеджеров, где они смогут быстро просмотреть остатки, цены и взаиморасчеты.
На этапе тестирования использовалась промежуточная база «Управляемое приложение», ввиду того что демо-приложение 1С:Заказы изначально заточено на обмен именно с Управляемым приложением.
Первый блин вышел комом. В прямом смысле. Для обмена с центральной базой был использован v82.ComConnector. Не буду вдаваться в подробности его настройки, об этом есть куча отдельных материалов. Пройдусь только по тем трудностям, с которыми столкнулся.
1. Использование com- объектов на 64-битной серверной ОС. Для решения проблемы была использована обертка COM+ Applications, которая настраивается в Component Services.
2. Удаленный вызов Com с другого сервера. Вызываемый сервер должен иметь роль Application Server, и у него должно быть настроено COM+ Network Access. Кроме того, сервер Apache должен иметь соответствующие права (т. е. запускаться как сервис от имени авторизованного пользователя)
Намучившись с Ком-соединениями, решили переводить рабочую базу на web- сервисы.
О публикации веб-сервисов также написано очень много, но там написано о том, как работает. Как НЕ работает, поделюсь ниже.
Рабочая база развернута на платформе 8.2, мобильное приложение, соответственно, на 8.3.
При публикации вначале приложения 8.3, а затем 8.2. периодически выхватывали глюк «Ошибка формата потока» в веб-клиенте 8.3, либо сообщение об ошибке «различаются версии платформы клиента и сервера». Перепубликация не помогает, равно как и перезапуск Apache. А вот отключение публикации и подключение заново — помогает.
Далее, поймал забавную ошибку при авторизации пользователя (при создании ws Определения). При тестировании на компьютере, авторизация с длинным ФИО проходит легко. При попытке авторизации этого же пользователя с планшетника под управлением Android, авторизация заканчивалась, не начавшись. Экспериментальным путем удалось вычислить, что кириллицей длина логина ограничена 22 символами. При этом сочетание кириллических символов и цифр дало авторизоваться с логином длиной 27 символов. Есть подозрение, что это связано с преобразованием кириллических символов. Так, например, в браузере Firefox строка из Википедии « иво» преобразуется в « ».
Технологически, мобильная платформа 8.3.3 на текущий момент имеет ряд ограничений. Самое ожидаемое, на мой взгляд, нововведение — это поддержка запросов. Но, поскольку произвольные запросы в динамических списках мобильная платформа пока не поддерживает, пришлось «пойти другим путем».
Для решения задачи отображения справочника номенклатуры с ценами и остатками был использован следующий подход:
1. В форме справочника номенклатуры созданы две таблицы. Первая — динамический список, собственно сам справочник. Фильтр динамического списка настроен так, чтобы выводились только группы. Вторая таблица — собственно остатки и цены. При активизации строки динамического списка, на сервере происходит заполнение таблицы значений, которая затем и выводится во вторую таблицу. При получении цен и остатков использовалась объектная модель. Все эти танцы с бубном были исполнены только потому, что привычного по толстому клиенту метода «при выводе строки» или «при получении данных» нет, и динамически нарисовать цифры в колонке нельзя.
Аналогичный подход использовался и в форме подбора
2. Для вывода строки с текущими ценами отлично подошла ФорматированнаяСтрока.
Ниже — пример кода.
&НаСервереБезКонтекста Функция ОстаткиПриАктивизацииСтрокиНаСервере(ном) НаборЗаписей = РегистрыСведений.ЦеныТоваров.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Товар.Значение = ном; НаборЗаписей.Отбор.Товар.Использование = Истина; НаборЗаписей.Прочитать(); МассивФорматированныхСтрок = Новый Массив; Для Каждого СтрокаНабора Из НаборЗаписей Цикл МассивФорматированныхСтрок.Добавить(Новый ФорматированнаяСтрока(СтрокаНабора.ВидЦен.Наименование,WebЦвета.Синий)); МассивФорматированныхСтрок.Добавить(Новый ФорматированнаяСтрока(" " + Строка(СтрокаНабора.Цена) + " ")); КонецЦикла; Возврат Новый ФорматированнаяСтрока(МассивФорматированныхСтрок); // Вставить содержимое обработчика. КонецФункции
3. Для загрузки справочников, остатков и цен в мобильное приложение был использован веб-сервис, который на входе получает структуру параметров, а на выходе возвращает хранилище значения. Еще одним неприятным открытием стал вылет обмена при слишком длительной обработке на стороне сервера. Сложилось впечатление, что имеется какой-то таймаут, после которого приложение «считает», что связь прервана (хотя на самом деле все еще идет обработка данных в рабочей базе через ws -соединение), и прекращает обмен с ошибкой.
Чтобы этого избежать, было принято решение дробить полный обмен на порции с возвратом фокуса обратно в мобильное приложение. Т.е. вначале синхронизировать номенклатуру, затем контрагентов, затем остатки, и т. п.
4. Для получения отчетов оставлен тот же подход, что и в конфигурации 1С: Заказы. Вызывается веб-сервис с параметрами, на стороне сервера рабочей базы формируется табличный документ, и затем уже готовый табличный документ возвращается в мобильное приложение.
challenge-sp.ru - Программы. Windows. Устройства. Настройка. Браузеры