Имя: Пароль:
 
1C
1С v8
Вопросы по мобильному приложению
0 Aradel3d
 
16.09.16
12:56
Добрый день!
Может кто сведущий подскажет?

1) СделатьФотоснимок() - можно ли стандартным функционалом сделать снимок без участия пользователя?  Т.е. чтоб стоял планшет на столе и в нужный момент без всяких открываний камеры на экран сохранял картинку? Возможно ЗапускПриложенияМобильногоУстройства() это умеет?
2) периодически при исполнении СделатьФотоснимок(), камера некоторое время висит и затем сворачивается, не сохраняя картинку. Ошибок при этом не возникает. От чего так может быть?

3) При попытке получить координаты

#Если МобильноеПриложениеКлиент Тогда
    Провайдер = СредстваГеопозиционирования.ПолучитьСамогоЭнергоЭкономичногоПровайдера();
    Если СредстваГеопозиционирования.ОбновитьМестоположение(Провайдер.Имя, 60) Тогда
        ДанныеМестоположения = СредстваГеопозиционирования.ПолучитьПоследнееМестоположение(Провайдер.Имя);
        Объект.Долгота = ДанныеМестоположения.Координаты.Долгота;
        Объект.Широта = ДанныеМестоположения.Координаты.Широта;
    КонецЕсли;
    #КонецЕсли

Мобильный клиент загадочно вылетает, без ошибок. От чего так?
1 ИС-2
 
16.09.16
13:05
ну если только сделать свою фотографировалку...

вот код для стандартной камеры (взят за основу пример из инета)

    #Если МобильноеПриложениеКлиент Тогда    
        //Тут указываем путь, при чем путь должен быть доступен всем программам,
        // так что временные файлы 1С не подйут
        
        ФайлКартинки = КаталогДокументов()+"MobileMKFoto.jpg";
        // без замены слешей не сохраняет нормально
        ФайлКартинки = СтрЗаменить(ФайлКартинки,"\","/");
        // делаем как бы ссылку на файл для андроида
        ФайлКартинки = "file://" + ФайлКартинки;
        
        НовВз = Новый ЗапускПриложенияМобильногоУстройства("android.media.action.IMAGE_CAPTURE");
        
        //Обязательно указываем этот параметр, если его не указать,
        // тогда вам вернется привью файла в низком качестве
        // и находится он будет в параметрах с ключем data.
        НовВз.ДополнительныеДанные.Добавить("output",ФайлКартинки,"Uri");
        
        //Если фото не сделано, то ответ будет "0"
        Рез = НовВз.Запустить(Истина);
        
        // а тут нормально обращение к файлу. Без этого вылетает ошибка, что файл не обнаружен
        ФайлКартинки = СтрЗаменить(ФайлКартинки,"file://","");
        
        // сохраняем в справочник на смартфоне, для последующей выгрузки
        Фото_СохранитьСнимок(Неопределено,
        Новый ДвоичныеДанные(ФайлКартинки),
        Неопределено,
        Неопределено
        );

    #Конецесли
2 Aradel3d
 
16.09.16
13:08
Подразумевается, что этот код выполнит снимок и сохранит без участия человека?
3 Широкий
 
16.09.16
14:41
(0) Провайдер,ДанныеМестоположения  нет проверки на Неопределено.
ОбновитьМестоположение уложить в попытку-исключение
4 Aradel3d
 
16.09.16
14:57
Огромное спасибо!
5 Aradel3d
 
18.09.16
15:53
Кто-нибудь знает про СредстваГеопозиционирования.ПодключитьОбработчикИзмененияМестоположения("ДобавьКоординатыВТЗ","network",,60);

и

СредстваГеопозиционирования.ОтключитьОбработчикИзмененияМестоположения("ДобавьКоординатыВТЗ","network");

При исполнении ругается на параметр номер 1 т.е. "ДобавьКоординатыВТЗ". Я создал Процедуру с таким именем, попробовал &НаСервере и &НаКлиенте, не помогло.
6 Aradel3d
 
18.09.16
15:55
Еще вопрос про невозможность обращения к полям через точку в мобильном приложении, а как тогда с картинками быть?

Объект.ФотоФронтальнаяКамера = СоздатьНовыйФайл(ДанныеМультимедиа.ПолучитьДвоичныеДанные(),ДанныеМультимедиа.РасширениеФайла,ДанныеМультимедиа.ТипСодержимого);
Элементы.Фронт.Картинка = Новый Картинка(Объект.ФотоФронтальнаяКамера.ДанныеФайла.Получить());

Ведь даже если я присвою ссылку не Объект.ФотоФронтальнаяКамера, а переменной, все равно надо в .ДанныеФайла обращаться...
7 Aradel3d
 
18.09.16
18:35
По картинам разобрался сам, а с ПодключитьОбработчикИзмененияМестоположения актуально. Неужели никто не пользовался?