Предыстория
Еще во времена «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С:Предприятие», записанная в виде XML-файла.
- Комбинация мобильной платформы и мобильной конфигурации дает мобильное приложение.
- Сборщик мобильных приложений — специализированное прикладное решение, которое умеет сделать из мобильной платформы, конфигурации, заставок, иконок и прочих компонентов, готовый файл мобильного приложения, который можно загрузить в магазины 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. Можно сказать, что мы сделали совершенно новый мобильный интерфейс для наших приложений. Он имеет много общего с нашим интерфейсом «Такси». Модель разработки для разработчиков мобильных приложений соответствует модели разработки в «Такси». При этом мобильный интерфейс полностью соответствует принятым в мобильных приложениях подходам к дизайну и UX. Интерфейс полностью учитывает специфику мобильного мира: небольшой размер экрана (а значит, оформление графических элементов должно стать более аскетичным – без теней, градиентов), есть поддержка пальцевых жестов и т.д. Интересный факт: новый механизм платформы, отвечающий за размещение элементов в форме (layouter) оказался настолько удачным и своевременным для мобильной платформы, что был выпущен в ней раньше (в версии 8.3.6) чем в платформе для ПК (в версии 8.3.7), для которой он в первую очередь предназначался.
На картинке можно увидеть, как поменялся наш интерфейс.
Приложение «Управление небольшой фирмой» на версии мобильной платформы 8.3.5:
Оно же на версии 8.3.6:
А вот так выглядит интерфейс мобильной платформы вживую:
Сборщик — и что это за зверь?
Как уже было сказано ранее, мобильное приложение состоит из нескольких компонентов (собственно мобильная платформа, конфигурация, различные ресурсы), которые должны представлять собой единое целое для помещения приложения в магазин. Чтобы облегчить превращение компонентов в приложение, был разработан сборщик мобильных приложений. Это конфигурация (приложение), созданная на платформе «1С:Предприятие», которая хранит в своей базе данных все компоненты, необходимые для формирования мобильного приложения. Для того чтобы сборщик выполнял свою работу, нужно скачать и установить различные программные пакеты, которые нужны для его работы (Java и Android SDK и т.п.), затем указать пути к этим пакетам в настройках сборщика и задать некоторые дополнительные параметры (ключи разработчиков и т.д.).
После настройки сборщик готов к работе. В общем случае работа со сборщиком выглядит следующим образом:
- Загружаем версию мобильной платформы 1С, на которой будем собирать приложение
- Загружаем конфигурацию, из которой будем собирать мобильное приложение
- Создаем мобильное приложение, в котором указываем, для каких платформ (Android, iOS, Windows) надо выполнять сборку, какую конфигурацию и платформу следует использовать (в частности, указать, какой сертификат для сборки под iOS использовать в случае, если приложение работает с PUSH-уведомлениями).
- Выполняем «одним кликом» сборку мобильного приложения под все выбранные платформы
- «Другим кликом» отправляем собранные мобильные приложения в магазины приложений (если это приложение для 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-сервисы, файловый обмен и т.д).
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Комментарии (50)
medvedevia
10.05.2016 18:24+1А какие условия распространения приложений, написанных на платформе 1С? С большой платформой все понятно — у клиента должна быть как минимум лицензия на платформу и может быть еще на конфигурацию. А с мобильной не понятно…
saddy
10.05.2016 18:40+1Если приложение распространяется не через Google Play Market, то покупаете т.н. клиентские лицензии для мобильного устройства.
Если через Google — надо договариваться с 1С, подробности и цены в инфописьме от 1С.Darth_Malok
11.05.2016 10:59Никаких аппаратных и программных настроек на телефоне для работы приложения производить не нужно? Поймите правильно, в своё время натерпелся от отваливающихся программных лицензий 1с из за смены пользователя, под которым работает служба, смены порядка следования процессоров на виртуальной машине после перезагрузки и т.д.
PeterG
11.05.2016 11:01Никаких аппаратных и программных настроек на телефоне для работы приложения производить не нужно?
Нет, не нужно.
Melex
10.05.2016 20:33+1Ну вот все круто, кроме одного — нет json. А видь это основной метод общения в мобильном мире :)
Кроме этого — совершенно умолчали про то, что мобильная платформа доступна и на Windows Phone.
И есть один вопрос — когда то реализуют в мобильной платформе под андроид бродкасты? Это с одной стороны конечно хорошо, так как у нас меньше конкуренции, так как похоже, что только наши PDA поддерживают сканирование в режиме аналога «внешнего события» для 1С. Но, как разработчику — это доставляет уйму неудобств. Тогда бы и драйвера было бы проще намного писать под всякое оборудование.PeterG
11.05.2016 12:18Ну вот все круто, кроме одного — нет json.
Скоро будет.
И есть один вопрос — когда то реализуют в мобильной платформе под андроид бродкасты?
В планах есть.
Сроки пока озвучить к сожалению не могу.Melex
13.05.2016 14:29Есть еще один очень важный вопрос. Просьба ответить :)
В андроиде есть несколько схем указания uri, через file и через content провайдера.
Когда уже ваши программисты дадут нам резолвить эти адреса?
Пусть сделают просто функцию куда мы даем адрес контент провайдера и она возвращает нам полный путь.
Без этого нельзя сделать кучу вещей, например — выбор фото из галереи — не работает, взаимодействие с другими приложениями.
Приходится изголятся так, что аж стыдно становится :)
Поторопите плиз ребят из отдела разработок. Все эти звуки, вибро и тд. — это круто, но вот толку от них, если я даже не могу сделать элементарные вещи :)
VaalKIA
11.05.2016 10:15+1Виндовс фон вы быстро поддержали, а вот в свете этой новости: Основой российской мобильной операционной системы является ОС Sailfish планируется поддержка мобильных линуксов?
MyRockNRoll
11.05.2016 11:09Что можете сказать за быстродействие приложений, получающихся с помощью мобильной платформы?
PeterG
11.05.2016 11:13Быстродействие — от удовлетворительного до хорошего. По части обмена данными — хорошее. Подробнее об этом в следующей статье, так что пока вкратце: мобильное приложение «Торговый Агент», прайс-лист (20 000 элементов, 18 000 из них с фотографиями, 150 000 характеристик) грузятся на устройство по WiFi за 10 минут.
awa
11.05.2016 11:30Вопрос не совсем про мобильную платформу, но вытекающий из нее. Внутри 1cd файла мобильного приложения все модули конфигурации хранятся в скомпилированном виде (без исходных текстов), в том числе и модули форм. Почему же не реализована возможность в обычной (не в мобильной) конфигурации поставить пароль на модуль управляемых форм или сделать поставку без исходных текстов модулей управляемых форм? Ведь, по сути, в мобильной платформе это реализовано.
saddy
12.05.2016 04:53Установить пароль можно на общий модуль, в нем реализовать всю логику, а в модуле формы вставить вызовы этого общего модуля.
Во многих отраслевых решениях 1С сделано примерно так.
kvv_pro
11.05.2016 11:32Хотелось бы увидеть поддержку выполнения куска кода (на JS, Java). Пока что это реализовано только на десктопной версии 1С. У вас есть даже команда «Выполнить» (код только на встроенном языке 1С) — зачатки идеи этой реализации, так почему ее не развить дальше? Будет полезно.
И вы, думаю слышали о profi1c.ru (FBA Toolkit), ребята уже далеко продвинулись (серверная часть на 1С, клиентская — нативная разработка под Android — сейчас перешли на Android Studio). Если вы хотите и дальше развивать мобильную платформу, думаю стоит реализовывать поддержку и нативной клиентской разработки под определенную систему (Android, iOS). Т.е. делать два варианта: кто не хочет париться с интерфейсом — пожалуйста, пиши все на 1С, кому нужно детальная и более красочная проработка интерфейса — руки в ноги и в любую IDE. Спасибо за внимание.PeterG
11.05.2016 12:25Хотелось бы увидеть поддержку выполнения куска кода (на JS, Java). Пока что это реализовано только на десктопной версии 1С.
Вы про внешние компоненты?
Или про что-то другое?
sharpshooter
11.05.2016 11:32Будет ли какая-нибудь оптимизация плавности интерфейса? Например берем типовую 1С заказы, в ней версия платформы 8.3.7.70, при скролле формы списка или просто формы с элементами которые не умещаются в одну страницу видны притормаживания/подергивания. Даже боковое меню при скролле слегка тормозит. Это немного бесит. Причем такое поведение как на ios так и на android.
tetacat
11.05.2016 11:32Нет возможности получать данные в фоновом режиме.
Нет возможности выполнить код асинхронно.
Возможности по дизайну интерфейсов настолько сильно ограничены, что написать на данной платформе современное конкурентоспособное мобильное приложение представляется затруднительным.PeterG
11.05.2016 12:17Нет возможности получать данные в фоновом режиме.
Нет возможности выполнить код асинхронно.
Есть — через фоновые задания.
Возможности по дизайну интерфейсов настолько сильно ограничены
А чего именно вам не хватает в интерфейсе?
Понятно, что 3D-игру на мобильной платформе не написать, у нее другое предназначение.
Я до сих пор при создании мобильных приложений на 1С: Предприятии не сталкивался при создании интерфейса с непреодолимыми проблемами.
Давайте обсудим — чего, по вашему мнению, не хватает для написания конкурентоспособных приложений.VaalKIA
11.05.2016 13:27Вставлю свои пять копеек (не про мобильную платформу, а про интерфейс). Размер колонки невозможно проставить в соответствие размеру надписи, потому что введены какие-то виртуальные размеры символов, что соответсвует умножению на коэффициент константной величины, что для современных шрифтов является полнейшим бредом. В итоге, для маленьких и больших слов, всегда в одном случае избыточно, в другом невозможно избавиться от прокрутки. Сделайте уже какую-нибудь функцию получения длинны отрендеренного слова.
mevgenym
12.05.2016 14:12По страницам. Пролистывание на страницах, хорошая задумка. Но жест вправо перехватывается размещенным на странице списком, даже если убрать из него все команды. Жест влево работает. И еще если размер формы больше размера экрана (на одной из страниц размещено много полей), список на другой странице не получится увидеть до конца. Почему бы не оставить высоту формы под размер экрана, и не сделать скролл внутри страницы? В обоих выше упомянутых случаях можно выкрутиться: в первом, жест вправо можно заменить переходом по команде, либо размер списка сделать меньше высоты формы и браться за низ, либо страницу со списком размещать на крайней правой странице, либо отказаться от пролистывания, во втором отключением видимости части полей на больших страницах, но все это как то неправильно.
panorik
11.05.2016 18:00Вопрос по мобильной версии «1С Документооборот», в частности по программе под андроид.
Есть ли поддержка доменной авторизации(NTLM) или только встроенная. При этом доменная авторизация отлично работает в браузере.PeterG
11.05.2016 18:26К сожалению доменная авторизация в мобильной платформе пока не поддерживается.
Есть обходной путь (не очень изящный), к которому прибегают некоторые.
Заводят в ДО пользователей с именами «домен+имя пользователя» и паролем, идентичным паролю соотв. пользователя в Windows.
Делают публикацию на веб-сервере (отличную от публикации для веб-клиента, если такая есть) с выключенной опцией «Идентификация ОС».
И подключают мобильных клиентов к этой публикации.
Matashin
12.05.2016 15:08Платформа неверно работает с элементами типа ДанныеФормыКоллекции (с 8.3.6 по самую последнюю).
т.о. все реквизиты типа ТаблицаЗначений и ТабличнаяЧасть неверно работают.
Проблема в неверной реакции прокрутки элемента ДанныеФормыКоллекции по вертикали.
Прокрутка происходит формы, а не элемента, т.е. если у Вас в такой таблице 1000 чтрок, то будет отображена форма с таблицей в 1000 строк и прокруткой формы, а не таблицы.PeterG
12.05.2016 18:44На партнерский форум писали?
Или на v8@1c.ru?Matashin
12.05.2016 19:50Думаете поможет?
В своих типовых они где могли обошли этот момент (всякими правдами и не правдами уходя от прямого отображения таблиц), а где они есть все именно так как я описал, думаю они в курсе.
на инфостарте поднимал тему, но…
Anderson
Мобильная платформа очень интересна. Ждем дальнейшего развития. В настоящее время не хватает многого:
PeterG
Воспроизведение звука будет в версии 8.3.9: «Поддержка новых возможностей мобильных устройств».
Anderson
Спасибо за информацию. Надеюсь остальные жизненно функции необходимые для бизнес-приложений будут доделаны оперативно
PeterG
Работу со сканерами ШК, думаю, можно будет реализовать через внешние компоненты (будет реализовано в обозримом будущем).
А работа с FTP — с мобильных сильно востребована? Можете привести бизнес-кейс?
Спасибо!
iliabvf
Думаете или можно? Пока что до мобильной платформы никак нельзя достучаться, единственное как можно взаиомдействовать со средой Андроид через интенты, пока что все очень печально.
PeterG
Если вы про сканеры ШК — да, можно будет через внешние компоненты реализовать.
iliabvf
Скажите можно по подробнее о внешней компоненте? это случайно не внешняя андроид-apk? даже если так, как мобильная 1С получит от нее события?
PeterG
Пока могу только сказать, что архитектурная реализация как у внешних компонент на «большой» платформе.
iliabvf
Т.е. поддержка внешних компонент в мобильной платформе планируется в будущих релизах? или она уже существует в 8.3.8?
PeterG
В 8.3.8 еще нет, планируется в след. релизах.
PeterG
Подробнее о внешних компонентах в мобильной платформе здесь.
Anderson
Необходимо для передачи объемных файлов по сети.
Пробовали передать большой XML-файл средствами веб-сервиса. Результата не дождались. Передали запакованный xml, распаковали, загрузили.
VasiliyKudryavtsev
В веб-сервисе дополнительные расходы на упаковку-распаковку в нужный формат, разбор xml
Лучше попробуйте http-сервис
saddy
Некоторые Bluetooth сканеры штрих-кода, например CipherLab 1562 нормально подключаются к смартофонам Android/Apple и, через отдельную виртуальную клавиатуру, могут использоваться в любом поле ввода смартофона, в.т.ч. и в мобильной платформе 1С.
У меня успешно работает пару лет связка из 5 шт. CipherLab 1562+Android+Мобильная 1С+обмен с основной базой 1С в одной организации для складского учета.
Anderson
В том-то и дело, что нужно поле ввода. Приходится в приложении «входить в режим считывания ШК», а потом выходить из него. В идеале считывание данных должно обрабатываться в фоне, а в приложении показывать информацию, которую разработчик считает нужной.
Сейчас висит поле ввода поверх экрана. Ничего не видно. И чтобы закрыть окно «грузчику» с грязными руками надо касаться экрана.
saddy
Поле ввода достаточно ткнуть один раз, после чего можно неограниченное количество раз тыкать сканером.
У меня это выглядит примерно так: https://yadi.sk/i/vnRFXeqPrc7gz или https://yadi.sk/i/kOjRiRnIrc7tE — грузчики тыкают в поле ШК один раз за день/документ, потом нужное количество раз сканируются штрих-коды (после каждого сканирования обновляется информация на форме).
Правда у меня были какие-то заморочки с возвратом фокуса на платформе выше 8.3.4.21, плюс не смог избавиться от необходимости первоначального тычка в поле ШК, но возможно в новых версиях (8.3.6+) это уже можно реализовать — как раз есть время потестить — результаты сообщу.
saddy
Нашел решение без тыкания — нужно иметь отдельное андроид-приложение которое будет отлавливать сканирование ШК и отправлять «фиктивное» смс в 1С, которое уже обрабатывается стандартным обработчиком формы 1С ОбработкаОповещение.
Видео как это реализовано, подробнее про это на Infostart
Melex
Ну если честно, то фейковое смс — это уже прошлый этап, с версии 8.3.6+ — мы реккомендуем использовать фейковые локальные уведомления :)
Anderson
Хорошо, что платформа развивается
Anderson
Похоже то, что надо. Спасибо за ссылку