Пока это тестовый релиз, но он позволяет опробовать новые возможности. И, естественно, на реальных проектах рекомендуем использовать тестовые релизы с максимальной осторожностью :)
В этой статье мы рассмотрим, какой полезный функционал был добавлен в новый релиз, – а новых возможностей появилось немало.
Самой главной «фишкой» 8.3.9 для мобильной платформы стала возможность использовать внешние компоненты.
Сама 1С про это писала так:
Для мобильной платформы мы реализовали механизм внешних компонент. Он позволяет вам создавать внешние компоненты по технологии Native API аналогично тому, как это делается в платформе для персональных компьютеров. Конечно, есть некоторые особенности, связанные с мобильными операционными системами. Но в целом всё очень похоже.
Но давайте обо всем по порядку.
Сборщик мобильных приложений
С выходом нового релиза платформы обновился и сборщик мобильных приложений. Актуальная версия – 2.0.3.23. Что изменилось?
- Теперь для компиляции под Android необходим SDK версии 23 и выше, а ранее хватало и 19 версии.
- Добавили необходимые объекты для работы с внешними компонентами.
- Починили работу регистра файлов, теперь он называется Хранилище Данных, и в нем находятся все файлы, история их создания и т.д. Т.е. теперь удобно чистить весь ненужный «мусор».
- Прочие мелкие исправления.
Что не изменилось? Баг при тесте квитанций в модуле PurchasesService, ищите по «puchaseTime», и замените на «purchaseTime».
Работа с файлами
Появилась конструкция ДиалогВыбораФайла. Как мы ее ждали :) Теперь не нужно писать много кода, чтобы можно было адекватно выбрать файл.
Также добавлен интерактив выбора файла в функции:
- ПолучитьФайл(),
- ПолучитьФайлы(),
- ПоместитьФайл(),
- ПоместитьФайлы().
НАКОНЕЦ! Теперь можно работать со схемой content. Ранее многие обращали внимание, что внешние приложения иногда требовали такой формат файла или сами его возвращали.
В двух словах – что такое content-провайдер. Приложения не могут общаться внутренними путями. Например, вы передали в программу для редактирования фото путь к файлу, который лежит во временных файлах 1С, и внешняя программа ничего не могла сделать, так как у нее просто не было доступа. Вот в таких случаях можно использовать content-провайдер.
Итак, где его можно использовать:
- Файл
- ДвоичныеДанные
- Картинка
- ЗапускПриложенияМобильногоУстройства
- И в остальных файловых операциях (копировать, переместить и т.д.).
Добавлена новая функция КаталогБиблиотекиМобильногоУстройства(), которая отвечает за быстрый доступ к каталогам (картинки, видео, загрузки и т.д.).
Добавлена функция обработки представления файлов Файл.ПолучитьПредставлениеФайлаБиблиотекиМобильногоУстройства(). Имеет смысл использовать ее, когда надо показать имя файла, который был получен через схему content, так как имена, используемые в этих схемах, далеки от тех, которые используются в представлении прямого пути (обычный стиль Windows). Т.е. в них вообще может и не быть как такового имени файла.
Вот так выглядит диалог выбора файла:
Вверху указывается полный путь к файлу/папке. Далее идут уже иконки быстрого перехода.
Телефония
Для Android теперь можно отследить факт входящего звонка.
Например, это можно использовать для CRM: звонит клиент – а в приложении сразу показываются его долги, заказы, статусы и прочее.
Работает так: подключается обработчик, и при факте звонка в него приходит уведомление в виде даты звонка, номера телефона и прочее.
При этом принимать или отклонять звонки – нельзя.
Аудио
Теперь можно более детально работать со звуком – воспроизводить, останавливать, получать длительность. Особенно удобно, если на телефоне стоит запись звонков. В этом случае можно написать плеер для прослушивания разговора повторно. Т.е. позвонил клиент менеджеру, надиктовал требуемые товары, потом менеджер включает проигрывание и вводит заказ клиента.
Кроме этого – теперь можно воспроизводить текст при помощи встроенного синтезатора речи.
Отчеты
Реализована поддержка компоновки данных, теперь при разработке будет удобно писать код, а не ставить постоянно проверку, чтобы на стационарной обрабатывало через схему, а на мобильной – по-иному. Жаль, что недоступен интерактив, так что все отборы и т.д. – по-прежнему нужно писать вручную.
Формы
Теперь добавлена возможность работать с разными интерфейсными возможностями платформы, то есть. с расстоянием, формой, цветом и т. д., в основном это касается кнопок.
Теперь кнопки можно сделать вот такими:
Статус интернет-соединения
Наконец-то добавлен новый функционал в мобильную платформу, который позволяет получить тип соединения – ИнформацияОбИнтернетСоединении.
Мало того, теперь еще можно подключить и обработчик изменения. А вот получить варианты сети можно в двух представлениях:
- По типу соединения:
- WiFi (WiFi)
- ЛокальнаяСеть (LAN)
- НетСоединения (NoConnection)
- СотовыеДанные (CellularData)
- По скорости, в виде числа в КБ. Т.е., например, 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.
Не обошлось и без багов. В частности, если вы попробуете запустить конфигурацию «Тестирование возможностей» из полного курса по мобильной платформе, то увидите вот такую ошибку:
Она возникает из-за того, что в общей форме httpСервисы в элементах формы у элемента «Группа8», стоит параметр ВыравниваниеЭлементовИЗаголовков в «Элементы право, заголовки лево», надо его заменить на «Авто». При этом – 8.3.8 отрабатывает штатно.
Об авторе
Дмитрий Шерстобитов:
- Базовая тематика: создание мобильных решений, как на базе мобильной платформы 1С, так и под Андроид.
- Докладчик секции по мобильной платформе 1С на конференциях Infostart 2013 Rev и Infostart Event 2014
- Премия в номинации “Открытие года” на Инфостарт 2014
Автор и тренер курсов:
мне нужно связать ИП телефонию на IPAD и мобильную 1с. Есть какие то варинаты? тоесть нужно чтобы в 1с отражалась карточка входящего вонка на ип телефонию во время звонка.
IP телефония – это же отдельное приложение, верно? Тем более, IPAD.
Я боюсь что без внешних компонент тут не обойтись.
Как второй вариант, в IP телефониях есть свои API, почитайте про вашу, возможно, можно сделать так, что когда человек заходит в мобильную 1с – 1с делает запрс на сервер IP телефонии и проверяет – есть ли активный звонок на указанный ID клиента, и если есть, то выводит его.
Можно даже сделать прослойку, что мобильная подключается к стационарной 1с, куда IP телефония, судя по всему внедрена, через http сервисы, и уже стационарная отвечает мобильной – а есть ли чё там по звонкам.
Это как мне видится.
Если развить тему дальше, то вы можете слать пуш уведомление со стационарной 1с, когда она сама ловит что звонок пришел, и при нажатии на пуш уведомление – будет открываться 1с, и в нем сразу карточка клиента.
Вобщем посмотрите, для начала, в эту сторону. Ну или дайте больше вводной инфы :)
Добрый день, при переходе с 8.3.8 на 8.3.9 (и на 8.3.10) столкнулся с проблемой что таблицы в документах перестали растягиваться (нет прокручивания на Android), показывает только первые несколько строк. Подскажите куда копать?
Да, в 1с есть такие проблемы. На самом деле их 2:
1. Таблица не растягивается. Решается довольно просто – добавляете пустую декорацию, которую растягиваете.
2. Таблица оооочень сильно растягивается, это встречается если у вас 2 страницы, на одной реквизиты, которые выходят за рамки экрана, а на второй ТЗ. Вот тут и начинаются чудеса. Это проблему адекватно я решить не смог.Причем иногда – она не проявляется.
Добрый день, Дмитрий! На платформе 8.3.9.74 набросал небольшое приложение, настроил обмен, но неожиданно обнаружил, что база разрастается просто непомерно. Оказалось, что начинает дико расти файл 1Cv8.1CD.tmp. Он по размерам приближается к файлу базы данных 1Cv8.1CD. Не подскажите чем это может быть вызвано? Возможно ли это недоработка платформы предназначенной для тестирования? Заранее спасибо!
Доброе. Это уже вопрос сложный, попробуйте сделать ТиИ базы и проверьте – сожмет он его или нет.
Добрый день, спасибо за ответ! Пробовал. Не помогает. И самое интересное что на другом мобильном устройстве такого файла платформа не создает. И, если можно, еще вопрос. Правильно ли я понимаю, что в каталоге 1Cv8FTxt хранятся файлы системы полнотекстового поиска? Данный каталог при размере базы данных в 320 Mb имеет размер около 100 Mb. Т.е. около трети от размера базы. Насколько часто по Вашему опыту пользователям требуется использовать этот механизм?
Тогда подумайте про архитектуру приложения в целом, может там не надо столько данных?
С другой стороны – может надо выбрать более мощное устройство?
Это я к тому, что в мобильной всегда так – или куча данных, или высокая производительность.
Но опять таки, база мобильной максимум должна весить 500мб-1Гб, если больше, то тут уже сложнее. А сейчас даже в древних телефонах есть 8Гб :)
На счет полнотекстового поиска – я его всегда отключаю, так как он глючный :(
Спасибо за помощь и добрый совет!
Вдруг кому пригодится. Заинтересовал меня этот файл 1Cv8.1CD.tmp вот что выяснилось: Файл 1Cv8.1CD.tmp – это копия базы на момент обновления, после успешного обновления файл удаляется. Если файл остается , скорей все это вызвано: 1. Не удачное обновление 2. Файл заблокирован сторонней программой.
Странная ситуация – при переходе с 8.3.8 на 8.3.9 платформа перестала работать в режиме background mode – location updates. Т.е. при неактивном приложении перестал вызываться обработчик обновления гео данных. В xcode соответствующая галка background modes стоит. Есть ли еще какие-либо изменения в этом? Или очередной баг платформы?
Вы знаете, работа с мобильной платформой иногда граничит с паникой, так как ты никогда не знаешь, где баг, где фича, а где у самого руки кривые, увы.
В таких случаях я беру несколько рядом идущих версий и тестирую, это конечно долго, но вариантов как-бы не много.
Либо спросить на форму разработчиков. Либо отправить на баг трек запрос.
Кстати поэтому еще и не выпущено обновление курса про 8.3.9, так как там вот таких приколов уйма, плюс то они выпустят релиз, то они его откатят через день, в общем нет стабильной версии.
Здравствуйте Дмитрий.
Может у Вас была такая ситуация, помогите пожалуйста:
код позиционирует табличное поле в конце на указанную область, ТабличныйДокумент – это реквизит формы:
Элементы.ТабличныйДокумент.ТекущаяОбласть = ТабличныйДокумент.Область(“R” + ?(ТабличныйДокумент.ВысотаТаблицы = 0, 1, ТабличныйДокумент.ВысотаТаблицы) + “C1”);
-На персональном компьютер код работает исправно, как ожидаю (1С:Предприятие 8.3 (8.3.8.2167), назначения использования: Мобильное устройство).
-На мобильном устройство код срабатывает без ошибок, но не дает ожидаемого результата (1С:Предприятие 8.3 (8.3.9.74) – моб. платформа).
Писал отправку писем через ИнтернетПочта. 8.3.9 + Android 6/ 1С просто вылетает с ошибкой. Что это может быть?
баг платформы, как вариант, отправьте в 1с тестовую конфу
Добрый день. При открытии формы рабочего стола вызывается открытие формы авторизации. В 8.3.8 все отрабатывает нормально, а вот в 8.3.9 почему-то форма авторизации открывается, но активна форма рабочего стала, хотя в свойствах формы авторизации установлен режим открытия окна “Блокировать весь интерфейс”. При чем это повторялось и в 8.3.9.66 и в новой 8.3.9.74.
Это новое поведение платформы или баг? И что можно с этим сделать?
В какой момент вы открываете форму авторизации?
В обработчике “ПриОткрытии” формы, которая указана в рабочей области начальной страницы.
Странное решение. Перенесите открытие формы дополнительной в процедуру ПриНачалеРаботыСистемы
Смотрю 8.3.9.66 – кнопки как были в виде плоских надписей, так и остались. На свойства фигуры никак не реагируют. Как Вам удалось сделать выделенную кнопку?
Даже хатрудняюсь ответить. У вас кнопка в коммандной панеле или нет?
А есть где-то вообще полный перечень того, что изменилось, с подробным описанием как именно?
обычно – на ИТС, но это все раскидано по разделам, особенно то, что касается интерфейса.
добрый день, ошибка при вызове метода объекта модели XDTO возникает только из-за параметра ВыравниваниеЭлементовИЗаголовков? Как можно отловить в каком месте происходит ошибка? Т.к. это происходит на стадии обновления
Я делаю просто – методом половинного деления.
Т.е. удалил пол конфигурации – проверил, если не работает – удалил половину оставшейся половины и т.д., пока не найду ту форму/модуль/обработку, из-за которой ошибка. Других способов я не нашел, увы.
Цитата:
Например, это можно использовать для CRM: звонит клиент – а в приложении сразу показываются его долги, заказы, статусы и прочее.
Вот такое и хочу и сделать или звук воспросизвести. Но:
Приложение входящего звонка перекрывает окно 1с и ничего не будет видно при звонке до поднятия трубки. А надо показать много инфу до поднятия трубки.
И воспроизвести текст не могу, звонок по приоритету перебивает воспроизведение текста 1с-кой.
Что Вы имели в виду под “звонит клиент – а в приложении сразу показываются”. Вам удалось при звонке сразу видеть окно 1с?
Можно выводить пуш, и когда вы подняли трубку, или даже еще не подняли – можно перейти в другое приложение нажав на пуш.
А там уже сразу открывать отчет. Т.е. как то так.
Кто-то пробовал “ВоспроизвестиТекст”? У меня иногда сразу воспроизводит, иногда секунд через 5-10. На Андроид 2.3.3 не заработало, говорит язык не поддерживает. Пробовал и англ и русский явно указать. И слова и только цифры.
эта функция не встроенная фишка 1С, она просто использует синтезатор андроида, так что вероятно на 2.3 его просто нет, а другие – ну… тут уже как кому повезет с прошивкой.
После переноса мобильного приложения с платформы 8.3.8 на платформу 8.3.9 у меня перестали работать фоновые задания. Кто-нибудь уже встречался с данной проблемой?
Нет, все работает отлично. Убедитесь, что у вас не идет индексация базы, и что не запущены другие фоновые, так как они выполняются последовательно.
В мобильном приложении Фоновые задания не выполняются асинхронно?
нет, только последовательно, и еще они конфликтуют с обновлением полнотекстовых индексов. Т.е. когда идет пересчет индексов – задания будут стартовать, но не будут выполняться.
“принимать или отклонять звонки – нельзя”
Ну и за чем такой телефон? Пейджер тогда уместнее.
В смысле? Принимать или отклонять звонки нельзя при помощи самой 1С, при чем тут это сравнение?
Кстати, у нас на разрабатываемом проекте при тестировании на платформе 8.3.9 съехала форма странным образом (часть элементов слиплись а подвал ушел вниз за пределы видимой области), это баг или появились новые интерфейсные фишки которые нужно теперь учитывать?
На самом деле – мне уже про такое рассказывали, но ни на одном моем проекте – лично я, такое не встретил. Так что затрудняюсь ответить. Но если что-то узнаете интересное,то поделитесь, пожалуйста. Самому интересно :)
Дмитрий, спасибо, очень интересные темы озвучены!
Скажите, а как не пропустить выход нового курса по мобильной разработке который будет посвящен монетизации мобильных приложений, есть ли где подписка на автоматическое уведомление?
Можете написать в техподдержку, с просьбой, что бы вас ТОЧНО уведомили :)
Либо следите за новостями в ближайшее будущее более пристально.
Воу-воу. Интересно очень. Наконец-то полезные штуковины сделали которых так не хватало.