Обзор новых возможностей мобильной платформы 1С:Предприятие 8.3.9

3 августа фирма «1С» выпустила мобильную платформу 8.3.9.

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

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

Самой главной «фишкой» 8.3.9 для мобильной платформы стала возможность использовать внешние компоненты.

Сама 1С про это писала так:

Для мобильной платформы мы реализовали механизм внешних компонент. Он позволяет вам создавать внешние компоненты по технологии Native API аналогично тому, как это делается в платформе для персональных компьютеров. Конечно, есть некоторые особенности, связанные с мобильными операционными системами. Но в целом всё очень похоже.

Но давайте обо всем по порядку.

Сборщик мобильных приложений

С выходом нового релиза платформы обновился и сборщик мобильных приложений. Актуальная версия – 2.0.3.23. Что изменилось?

  • Теперь для компиляции под Android необходим SDK версии 23 и выше, а ранее хватало и 19 версии.
  • Добавили необходимые объекты для работы с внешними компонентами.
  • Починили работу регистра файлов, теперь он называется Хранилище Данных, и в нем находятся все файлы, история их создания и т.д. Т.е. теперь удобно чистить весь ненужный «мусор».
  • Прочие мелкие исправления.

Что не изменилось? Баг при тесте квитанций в модуле PurchasesService, ищите по «puchaseTime», и замените на «purchaseTime».

Работа с файлами

Появилась конструкция ДиалогВыбораФайла. Как мы ее ждали :) Теперь не нужно писать много кода, чтобы можно было адекватно выбрать файл.

Также добавлен интерактив выбора файла в функции:

  • ПолучитьФайл(),
  • ПолучитьФайлы(),
  • ПоместитьФайл(),
  • ПоместитьФайлы().

НАКОНЕЦ! Теперь можно работать со схемой content. Ранее многие обращали внимание, что внешние приложения иногда требовали такой формат файла или сами его возвращали.

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

Итак, где его можно использовать:

  • Файл
  • ДвоичныеДанные
  • Картинка
  • ЗапускПриложенияМобильногоУстройства
  • И в остальных файловых операциях (копировать, переместить и т.д.).

Добавлена новая функция КаталогБиблиотекиМобильногоУстройства(), которая отвечает за быстрый доступ к каталогам (картинки, видео, загрузки и т.д.).

Добавлена функция обработки представления файлов Файл.ПолучитьПредставлениеФайлаБиблиотекиМобильногоУстройства(). Имеет смысл использовать ее, когда надо показать имя файла, который был получен через схему content, так как имена, используемые в этих схемах, далеки от тех, которые используются в представлении прямого пути (обычный стиль Windows). Т.е. в них вообще может и не быть как такового имени файла.

Вот так выглядит диалог выбора файла:

review-news-8-3-9-pic1

Вверху указывается полный путь к файлу/папке. Далее идут уже иконки быстрого перехода.

Телефония

Для Android теперь можно отследить факт входящего звонка.

Например, это можно использовать для CRM: звонит клиент – а в приложении сразу показываются его долги, заказы, статусы и прочее.

Работает так: подключается обработчик, и при факте звонка в него приходит уведомление в виде даты звонка, номера телефона и прочее.

При этом принимать или отклонять звонки – нельзя.

Аудио

Теперь можно более детально работать со звуком – воспроизводить, останавливать, получать длительность. Особенно удобно, если на телефоне стоит запись звонков. В этом случае можно написать плеер для прослушивания разговора повторно. Т.е. позвонил клиент менеджеру, надиктовал требуемые товары, потом менеджер включает проигрывание и вводит заказ клиента.

Кроме этого – теперь можно воспроизводить текст при помощи встроенного синтезатора речи.

Отчеты

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

Формы

Теперь добавлена возможность работать с разными интерфейсными возможностями платформы, то есть. с расстоянием, формой, цветом и т. д., в основном это касается кнопок.

Теперь кнопки можно сделать вот такими:

review-news-8-3-9-pic2

Статус интернет-соединения

Наконец-то добавлен новый функционал в мобильную платформу, который позволяет получить тип соединения – ИнформацияОбИнтернетСоединении.

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

  1. По типу соединения:
    • WiFi (WiFi)
    • ЛокальнаяСеть (LAN)
    • НетСоединения (NoConnection)
    • СотовыеДанные (CellularData)
  2. По скорости, в виде числа в КБ. Т.е., например, 128 КБ. НО! Это не означает, что мобильная платформа тестирует скорость соединения и т.д. Это значит только то, что максимальная скорость – ожидается такой. Так как сотовая связь может быть 2G, 3G, LTE, и понятно, что на 2G делать синхронизацию смысла особого нет, а вот на 3G или уж тем более на LTE – можно. Если трафика не жалко.
Работа с JSON

Это то, чего многие очень долго ждали. Так как все веб-сервисы в интернете работают именно с JSON. Плюс – объем JSON меньше XML.

SSL сертификаты

Теперь все работает как в стационарной. Отличие в основном затрагивает только самоподписанные сертификаты, где ранее мы вынуждены были добавлять сертификат выдающего центра в само устройство, что было не очень удобно. Теперь можно просто сказать платформе – не проверять эту информацию. НО! Это небезопасно!

AdMob для iOS

Ранее 1С поддерживала баннеры в iOS из сети iAd, но, так как Apple неожиданно закрыла эту сеть 01.07.2016, 1С в iOS теперь так же, как и в Android, использует AdMob – сервис рекламы Google. Что намного удобней.

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

Внешние компоненты

Один из самых ожидаемых инструментов. Но, к сожалению, чтобы написать что-то интересное про него, необходимо глубоко его проанализировать. Пока можно сказать только одно: поддерживается только технология Native API, и пока непонятно, можно ли передавать контекст приложения, так как без него вся эта технология будет весьма ограниченной.

Из принципиальных изменений – это всё.

От себя добавлю, что стабильность платформы значительно возросла. На одном из моих проектов используется около 150 устройств, из которых 50 – идентичные, закуплены одной партией. И на 5 из них платформа постоянно беспричинно падала в любом месте. Теперь она падает только 1 устройстве. :)

P.S.

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

review-news-8-3-9-pic3

Она возникает из-за того, что в общей форме httpСервисы в элементах формы у элемента «Группа8», стоит параметр ВыравниваниеЭлементовИЗаголовков в «Элементы право, заголовки лево», надо его заменить на «Авто». При этом – 8.3.8 отрабатывает штатно.

Об авторе

Дмитрий Шерстобитов:

  • Базовая тематика: создание мобильных решений, как на базе мобильной платформы 1С, так и под Андроид.
  • Докладчик секции по мобильной платформе 1С на конференциях Infostart 2013 Rev и Infostart Event 2014
  • Премия в номинации “Открытие года” на Инфостарт 2014

Автор и тренер курсов:

Комментарии / обсуждение (40):

  1. Vlad

    мне нужно связать ИП телефонию на IPAD и мобильную 1с. Есть какие то варинаты? тоесть нужно чтобы в 1с отражалась карточка входящего вонка на ип телефонию во время звонка.

    • Поддержка курса по EDT

      IP телефония – это же отдельное приложение, верно? Тем более, IPAD.
      Я боюсь что без внешних компонент тут не обойтись.
      Как второй вариант, в IP телефониях есть свои API, почитайте про вашу, возможно, можно сделать так, что когда человек заходит в мобильную 1с – 1с делает запрс на сервер IP телефонии и проверяет – есть ли активный звонок на указанный ID клиента, и если есть, то выводит его.
      Можно даже сделать прослойку, что мобильная подключается к стационарной 1с, куда IP телефония, судя по всему внедрена, через http сервисы, и уже стационарная отвечает мобильной – а есть ли чё там по звонкам.

      Это как мне видится.
      Если развить тему дальше, то вы можете слать пуш уведомление со стационарной 1с, когда она сама ловит что звонок пришел, и при нажатии на пуш уведомление – будет открываться 1с, и в нем сразу карточка клиента.
      Вобщем посмотрите, для начала, в эту сторону. Ну или дайте больше вводной инфы :)

  2. Chistyakov

    Добрый день, при переходе с 8.3.8 на 8.3.9 (и на 8.3.10) столкнулся с проблемой что таблицы в документах перестали растягиваться (нет прокручивания на Android), показывает только первые несколько строк. Подскажите куда копать?

    • Поддержка курса по EDT

      Да, в 1с есть такие проблемы. На самом деле их 2:
      1. Таблица не растягивается. Решается довольно просто – добавляете пустую декорацию, которую растягиваете.
      2. Таблица оооочень сильно растягивается, это встречается если у вас 2 страницы, на одной реквизиты, которые выходят за рамки экрана, а на второй ТЗ. Вот тут и начинаются чудеса. Это проблему адекватно я решить не смог.Причем иногда – она не проявляется.

  3. Dovbenko_V_A

    Добрый день, Дмитрий! На платформе 8.3.9.74 набросал небольшое приложение, настроил обмен, но неожиданно обнаружил, что база разрастается просто непомерно. Оказалось, что начинает дико расти файл 1Cv8.1CD.tmp. Он по размерам приближается к файлу базы данных 1Cv8.1CD. Не подскажите чем это может быть вызвано? Возможно ли это недоработка платформы предназначенной для тестирования? Заранее спасибо!

    • Поддержка курса по EDT

      Доброе. Это уже вопрос сложный, попробуйте сделать ТиИ базы и проверьте – сожмет он его или нет.

      • Владислав

        Добрый день, спасибо за ответ! Пробовал. Не помогает. И самое интересное что на другом мобильном устройстве такого файла платформа не создает. И, если можно, еще вопрос. Правильно ли я понимаю, что в каталоге 1Cv8FTxt хранятся файлы системы полнотекстового поиска? Данный каталог при размере базы данных в 320 Mb имеет размер около 100 Mb. Т.е. около трети от размера базы. Насколько часто по Вашему опыту пользователям требуется использовать этот механизм?

        • Поддержка курса по EDT

          Тогда подумайте про архитектуру приложения в целом, может там не надо столько данных?
          С другой стороны – может надо выбрать более мощное устройство?
          Это я к тому, что в мобильной всегда так – или куча данных, или высокая производительность.
          Но опять таки, база мобильной максимум должна весить 500мб-1Гб, если больше, то тут уже сложнее. А сейчас даже в древних телефонах есть 8Гб :)
          На счет полнотекстового поиска – я его всегда отключаю, так как он глючный :(

          • Владислав

            Вдруг кому пригодится. Заинтересовал меня этот файл 1Cv8.1CD.tmp вот что выяснилось: Файл 1Cv8.1CD.tmp – это копия базы на момент обновления, после успешного обновления файл удаляется. Если файл остается , скорей все это вызвано: 1. Не удачное обновление 2. Файл заблокирован сторонней программой.

  4. Александр

    Странная ситуация – при переходе с 8.3.8 на 8.3.9 платформа перестала работать в режиме background mode – location updates. Т.е. при неактивном приложении перестал вызываться обработчик обновления гео данных. В xcode соответствующая галка background modes стоит. Есть ли еще какие-либо изменения в этом? Или очередной баг платформы?

    • Поддержка курса по EDT

      Вы знаете, работа с мобильной платформой иногда граничит с паникой, так как ты никогда не знаешь, где баг, где фича, а где у самого руки кривые, увы.
      В таких случаях я беру несколько рядом идущих версий и тестирую, это конечно долго, но вариантов как-бы не много.
      Либо спросить на форму разработчиков. Либо отправить на баг трек запрос.
      Кстати поэтому еще и не выпущено обновление курса про 8.3.9, так как там вот таких приколов уйма, плюс то они выпустят релиз, то они его откатят через день, в общем нет стабильной версии.

  5. Андрей

    Здравствуйте Дмитрий.
    Может у Вас была такая ситуация, помогите пожалуйста:

    код позиционирует табличное поле в конце на указанную область, ТабличныйДокумент – это реквизит формы:

    Элементы.ТабличныйДокумент.ТекущаяОбласть = ТабличныйДокумент.Область(“R” + ?(ТабличныйДокумент.ВысотаТаблицы = 0, 1, ТабличныйДокумент.ВысотаТаблицы) + “C1”);

    -На персональном компьютер код работает исправно, как ожидаю (1С:Предприятие 8.3 (8.3.8.2167), назначения использования: Мобильное устройство).
    -На мобильном устройство код срабатывает без ошибок, но не дает ожидаемого результата (1С:Предприятие 8.3 (8.3.9.74) – моб. платформа).

  6. Руслан Панченко

    Писал отправку писем через ИнтернетПочта. 8.3.9 + Android 6/ 1С просто вылетает с ошибкой. Что это может быть?

    • Поддержка курса по EDT

      баг платформы, как вариант, отправьте в 1с тестовую конфу

  7. Сергей

    Добрый день. При открытии формы рабочего стола вызывается открытие формы авторизации. В 8.3.8 все отрабатывает нормально, а вот в 8.3.9 почему-то форма авторизации открывается, но активна форма рабочего стала, хотя в свойствах формы авторизации установлен режим открытия окна “Блокировать весь интерфейс”. При чем это повторялось и в 8.3.9.66 и в новой 8.3.9.74.
    Это новое поведение платформы или баг? И что можно с этим сделать?

      • Сергей

        В обработчике “ПриОткрытии” формы, которая указана в рабочей области начальной страницы.

        • Поддержка курса по EDT

          Странное решение. Перенесите открытие формы дополнительной в процедуру ПриНачалеРаботыСистемы

  8. Виталий

    Смотрю 8.3.9.66 – кнопки как были в виде плоских надписей, так и остались. На свойства фигуры никак не реагируют. Как Вам удалось сделать выделенную кнопку?

    • Поддержка курса по EDT

      Даже хатрудняюсь ответить. У вас кнопка в коммандной панеле или нет?

  9. Ника

    А есть где-то вообще полный перечень того, что изменилось, с подробным описанием как именно?

    • Поддержка курса по EDT

      обычно – на ИТС, но это все раскидано по разделам, особенно то, что касается интерфейса.

  10. psbest

    добрый день, ошибка при вызове метода объекта модели XDTO возникает только из-за параметра ВыравниваниеЭлементовИЗаголовков? Как можно отловить в каком месте происходит ошибка? Т.к. это происходит на стадии обновления

    • Поддержка курса по EDT

      Я делаю просто – методом половинного деления.
      Т.е. удалил пол конфигурации – проверил, если не работает – удалил половину оставшейся половины и т.д., пока не найду ту форму/модуль/обработку, из-за которой ошибка. Других способов я не нашел, увы.

  11. Simol

    Цитата:
    Например, это можно использовать для CRM: звонит клиент – а в приложении сразу показываются его долги, заказы, статусы и прочее.

    Вот такое и хочу и сделать или звук воспросизвести. Но:
    Приложение входящего звонка перекрывает окно 1с и ничего не будет видно при звонке до поднятия трубки. А надо показать много инфу до поднятия трубки.
    И воспроизвести текст не могу, звонок по приоритету перебивает воспроизведение текста 1с-кой.

    Что Вы имели в виду под “звонит клиент – а в приложении сразу показываются”. Вам удалось при звонке сразу видеть окно 1с?

    • Поддержка курса по EDT

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

  12. Simol

    Кто-то пробовал “ВоспроизвестиТекст”? У меня иногда сразу воспроизводит, иногда секунд через 5-10. На Андроид 2.3.3 не заработало, говорит язык не поддерживает. Пробовал и англ и русский явно указать. И слова и только цифры.

    • Поддержка курса по EDT

      эта функция не встроенная фишка 1С, она просто использует синтезатор андроида, так что вероятно на 2.3 его просто нет, а другие – ну… тут уже как кому повезет с прошивкой.

  13. TreeDogNight

    После переноса мобильного приложения с платформы 8.3.8 на платформу 8.3.9 у меня перестали работать фоновые задания. Кто-нибудь уже встречался с данной проблемой?

    • Поддержка курса по EDT

      Нет, все работает отлично. Убедитесь, что у вас не идет индексация базы, и что не запущены другие фоновые, так как они выполняются последовательно.

        • Поддержка курса по EDT

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

  14. Ринат Валерьевич

    “принимать или отклонять звонки – нельзя”
    Ну и за чем такой телефон? Пейджер тогда уместнее.

    • Поддержка курса по EDT

      В смысле? Принимать или отклонять звонки нельзя при помощи самой 1С, при чем тут это сравнение?

  15. manserg

    Кстати, у нас на разрабатываемом проекте при тестировании на платформе 8.3.9 съехала форма странным образом (часть элементов слиплись а подвал ушел вниз за пределы видимой области), это баг или появились новые интерфейсные фишки которые нужно теперь учитывать?

    • Поддержка курса по EDT

      На самом деле – мне уже про такое рассказывали, но ни на одном моем проекте – лично я, такое не встретил. Так что затрудняюсь ответить. Но если что-то узнаете интересное,то поделитесь, пожалуйста. Самому интересно :)

  16. manserg

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

    • Поддержка курса по EDT

      Можете написать в техподдержку, с просьбой, что бы вас ТОЧНО уведомили :)
      Либо следите за новостями в ближайшее будущее более пристально.

  17. Сергей

    Воу-воу. Интересно очень. Наконец-то полезные штуковины сделали которых так не хватало.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Вход на сайт

Зарегистрироваться

Подтверждение регистрации будет отправлено на указанный e-mail.

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

Восстановить доступ

E-mail или логин

Ссылка на создание нового пароля будет отправлена на указанный e-mail.