Имя: Пароль:
1C
 
Фото на мобильном клиенте
0 MetalZOne
 
12.01.17
11:48
Пишу вот так:

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

На это строке "ДанныеМультимедиа = СредстваМультимедиа.СделатьФотоснимок();" - ошибка сохранения фотографии... что за ошибка такая?
1 mobile-1c
 
12.01.17
12:15
так попробуй:

Функция ПолучитьДанныеФотоСнимка() Экспорт
    
    Данные = Неопределено;
    
    #Если МобильноеПриложениеКлиент Тогда
        
        Если СредстваМультимедиа.ПоддерживаетсяФотоснимок() Тогда
            
            ТипКамерыДанные = ОбщегоНазначенияСервер.ПолучитьЗначениеКонстанты("ТипКамеры");
            Если ТипКамерыДанные = ПредопределенноеЗначение("Перечисление.ТипКамеры.Задняя") Тогда
                ТипКамеры = ТипКамерыУстройства.Задняя;
            ИначеЕсли ТипКамерыДанные = ПредопределенноеЗначение("Перечисление.ТипКамеры.Передняя") Тогда
                ТипКамеры = ТипКамерыУстройства.Передняя;
            Иначе
                ТипКамеры = ТипКамерыУстройства.Авто;
            КонецЕсли;
            
            РазрешениеВысота = ОбщегоНазначенияСервер.ПолучитьЗначениеКонстанты("РазрешениеВысота");
            РазрешениеШирина = ОбщегоНазначенияСервер.ПолучитьЗначениеКонстанты("РазрешениеШирина");
            
            пКачество = ОбщегоНазначенияСервер.ПолучитьЗначениеКонстанты("КачествоФото");
            Если пКачество = 0 Тогда
                пКачество = 100;
            КонецЕсли;
            
            Если РазрешениеВысота = 0 Тогда
                РазрешениеВысота = 1024;
            КонецЕсли;
            Если РазрешениеШирина = 0 Тогда
                РазрешениеШирина = 768;
            КонецЕсли;            
                
            Если РазрешениеВысота <> 0 И РазрешениеШирина <> 0 Тогда
                РазрешениеКамеры = Новый РазрешениеКамерыУстройства;
                РазрешениеКамеры.Высота = РазрешениеВысота;
                РазрешениеКамеры.Ширина = РазрешениеШирина;
                Данные = СредстваМультимедиа.СделатьФотоснимок(ТипКамеры, РазрешениеКамеры, пКачество);
                
            Иначе
                Данные = СредстваМультимедиа.СделатьФотоснимок(ТипКамеры, , пКачество);
                
            КонецЕсли;    
            
            Возврат Данные;            
        Иначе
            Сообщить("Данное устройство не поддерживает фотоснимок!")
        КонецЕсли;
    
    #КонецЕсли
    
    Возврат Данные;
    
КонецФункции
2 ИС-2
 
naïve
12.01.17
14:34
//Тут указываем путь, при чем путь должен быть доступен всем программам,
        // так что временные файлы 1С не подйут
        
        ФайлКартинки = КаталогДокументов()+"MobileMKFoto.jpg";
        // без замены слешей не сохраняет нормально
        ФайлКартинки = СтрЗаменить(ФайлКартинки,"\","/");
        // делаем как бы ссылку на файл для андроида
        ФайлКартинки = "file://" + ФайлКартинки;
        
        НовВз = Новый ЗапускПриложенияМобильногоУстройства("android.media.action.IMAGE_CAPTURE");
        
        //Обязательно указываем этот параметр, если его не указать,
        // тогда вам вернется привью файла в низком качестве
        // и находится он будет в параметрах с ключем data.
        НовВз.ДополнительныеДанные.Добавить("output",ФайлКартинки,"Uri");
        
        //Если фото не сделано, то ответ будет "0"
        Рез = НовВз.Запустить(Истина);
        
        // а тут нормально обращение к файлу. Без этого вылетает ошибка, что файл не обнаружен
        ФайлКартинки = СтрЗаменить(ФайлКартинки,"file://","");
        
        // сохраняем в справочник на смартфоне, для последующей выгрузки
        Фото_СохранитьСнимок(Неопределено,
        Новый ДвоичныеДанные(ФайлКартинки),
        Неопределено,
        Неопределено
        );
Основная теорема систематики: Новые системы плодят новые проблемы.