|   |   | 
| 
 | Как отобразить полученное фото на форме мобильного клиента? | ☑ | ||
|---|---|---|---|---|
| 0
    
        Бешеная Нога 06.08.14✎ 16:19 | 
        Добрый день. Вот таким кодом я фотографирую на мобильном клиенте и добавляю фото в реквизит элемента справочника. Однако не получается на этом же мобильном клиенте посмотреть это фото.
 &НаКлиенте Процедура ДобавитьФото(Команда) #Если НЕ МобильноеПриложениеКлиент Тогда Сообщить("Функция не поддерживается"); Возврат; #Иначе Результат = Неопределено; Если СредстваМультимедиа.ПоддерживаетсяФотоснимок() Тогда Результат = СредстваМультимедиа.СделатьФотоснимок(); Иначе Сообщить("Не поддерживается фото!"); КонецЕсли; Если Результат = Неопределено Тогда Возврат КонецЕсли; Данные = Результат.ПолучитьДвоичныеДанные(); РасширениеФайла = Результат.РасширениеФайла; ДобавитьФотоНаСервере(Данные); Модифицированность = Истина; #КонецЕсли КонецПроцедуры &НаСервере Процедура ДобавитьФотоНаСервере(Данные) ОбъектФормы = РеквизитФормыВЗначение("Объект"); ОбъектФормы.ДанныеСтрокой = Base64Строка(Данные); ЗначениеВРеквизитФормы(ОбъектФормы, "Объект"); КонецПроцедуры &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) ОписаниеОшибки = ""; Если НЕ ЗначениеЗаполнено(Объект.Ссылка) Тогда Возврат; КонецЕсли; ОбновитьКартинкуНаСервере(ОписаниеОшибки); Если НЕ ОписаниеОшибки = "" тогда Сообщить(ОписаниеОшибки); КонецЕсли; КонецПроцедуры &НаСервере Процедура ОбновитьКартинкуНаСервере(ОписаниеОшибки) ОбъектФормы = РеквизитФормыВЗначение("Объект"); Этап = ""; Попытка Этап = "Получение двоичных данных."+Символы.ПС; ДвоичныеДанные = Base64Значение(ОбъектФормы.ДанныеСтрокой); Этап = Этап+"Получение картинки. Тип: "+ТипЗнч(ДвоичныеДанные)+" Размер: "+ДвоичныеДанные.Размер()+Символы.ПС; Картинка = Новый Картинка(ДвоичныеДанные); Этап = Этап+"Установка картинки. Тип: "+ТипЗнч(Картинка)+" Формат: "+Картинка.Формат()+Символы.ПС; Элементы.ДекорацияКартинка.Картинка = Картинка; Исключение ОписаниеОшибки = ОписаниеОшибки(); КонецПопытки; ОписаниеОшибки = Этап+Символы.ПС+ОписаниеОшибки; КонецПроцедуры Скрин - http://i074.radikal.ru/1408/fb/1588f4c8aa87.png При желании, если у вас есть мобильная платформа 8.3.5.63 - вы можете подключиться к базе http://base.ildarcheg.ru:39999/testclientMA2 | |||
| 1
    
        Бешеная Нога 06.08.14✎ 16:21 | 
        неудачно вставился код и ссылка.
 ссылка http://i074.radikal.ru/1408/fb/1588f4c8aa87.png | |||
| 2
    
        Бешеная Нога 06.08.14✎ 16:21 | 
        код:
 &НаКлиенте Процедура ДобавитьФото(Команда) #Если НЕ МобильноеПриложениеКлиент Тогда Сообщить("Функция не поддерживается"); Возврат; #Иначе Результат = Неопределено; Если СредстваМультимедиа.ПоддерживаетсяФотоснимок() Тогда Результат = СредстваМультимедиа.СделатьФотоснимок(); Иначе Сообщить("Не поддерживается фото!"); КонецЕсли; Если Результат = Неопределено Тогда Возврат КонецЕсли; Данные = Результат.ПолучитьДвоичныеДанные(); РасширениеФайла = Результат.РасширениеФайла; ДобавитьФотоНаСервере(Данные); Модифицированность = Истина; #КонецЕсли КонецПроцедуры &НаСервере Процедура ДобавитьФотоНаСервере(Данные) ОбъектФормы = РеквизитФормыВЗначение("Объект"); ОбъектФормы.ДанныеСтрокой = Base64Строка(Данные); ЗначениеВРеквизитФормы(ОбъектФормы, "Объект"); КонецПроцедуры &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) ОписаниеОшибки = ""; Если НЕ ЗначениеЗаполнено(Объект.Ссылка) Тогда Возврат; КонецЕсли; ОбновитьКартинкуНаСервере(ОписаниеОшибки); Если НЕ ОписаниеОшибки = "" тогда Сообщить(ОписаниеОшибки); КонецЕсли; КонецПроцедуры &НаСервере Процедура ОбновитьКартинкуНаСервере(ОписаниеОшибки) ОбъектФормы = РеквизитФормыВЗначение("Объект"); Этап = ""; Попытка Этап = "Получение двоичных данных."+Символы.ПС; ДвоичныеДанные = Base64Значение(ОбъектФормы.ДанныеСтрокой); Этап = Этап+"Получение картинки. Тип: "+ТипЗнч(ДвоичныеДанные)+" Размер: "+ДвоичныеДанные.Размер()+Символы.ПС; Картинка = Новый Картинка(ДвоичныеДанные); Этап = Этап+"Установка картинки. Тип: "+ТипЗнч(Картинка)+" Формат: "+Картинка.Формат()+Символы.ПС; Элементы.ДекорацияКартинка.Картинка = Картинка; Исключение ОписаниеОшибки = ОписаниеОшибки(); КонецПопытки; ОписаниеОшибки = Этап+Символы.ПС+ОписаниеОшибки; КонецПроцедуры | |||
| 3
    
        Широкий 06.08.14✎ 16:24 | 
        Проще будет записать изображение в файл и открыть штатным просмотрищиком     | |||
| 4
    
        Широкий 06.08.14✎ 16:27 | 
        Не понятно почему используешь строку а не хранилище значения     | |||
| 5
    
        Бешеная Нога 06.08.14✎ 16:30 | 
        (3) а как открыть файл штатным просмоторщиком на мобильном устройстве? 
 (4) пробовал и через хранилище значений, но натыкался на непонятный глюк. Двоичные данные помещенные в хранилище, потом в реквизит, а потом извлеченные оттуда так же ввиде хранилища - упорно не хотели превращаться в двоичные данные и в картинку. Пока решил через строку, но потом думаю добью и через хранилище. Отладка на мобильном устройстве не самое простое дело. | |||
| 6
    
        Широкий 06.08.14✎ 16:31 | 
        (5)ЗапуститьПриложение     | |||
| 7
    
        Бешеная Нога 06.08.14✎ 16:35 | 
        (6) почему-то посчитал, что такое на мобильном клиенте не доступно, гляну СП - доступно. Вообщем попробую, в качестве эксперимента.
 Однаком требуется все-таки видеть картинку именно на форме.. | |||
| 8
    
        Широкий 06.08.14✎ 16:35 | 
        Расширение декорации формы для картинки (Form decoration extension for a picture)
 Картинка (Picture) Использование: Чтение и запись. Описание: Тип: Картинка. Отображаемая картинка. Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент, мобильное приложение(клиент), мобильное приложение(сервер). Примечание: Если картинка задается программно, может быть установлена картина вида Пустая или ИзБиблиотеки. | |||
| 9
    
        Широкий 06.08.14✎ 16:35 | 
        (8) Последняя строка для твоего релиза актуальна?     | |||
| 10
    
        Бешеная Нога 06.08.14✎ 16:36 | 
        (8)
 "Если картинка задается программно, может быть установлена картина вида Пустая или ИзБиблиотеки." хм... а как же вообще картинки программно отображаются? (9) да... | |||
| 11
    
        Бешеная Нога 06.08.14✎ 16:39 | 
        ааааа, вспомнил!     | |||
| 12
    
        Бешеная Нога 06.08.14✎ 16:39 | 
        через ПолучитьНавигационнуюСсылкуКартинки?     | |||
| 13
    
        Широкий 06.08.14✎ 16:41 | 
        (12) Которая работает в мобильном приложении :)
 Попробуй через HTML как нить вывернуться. | |||
| 14
    
        Бешеная Нога 06.08.14✎ 17:00 | 
        Решилось! 
 АдресКартинки = ПоместитьВоВременноеХранилище(ДвоичныеДанные, УникальныйИдентификатор); А на форме поле "АдресКартинки" с типом ПолеКартинки. (13) большое спасибо за помощь! Если есть на инфостарте - зайти, там будет такая же ветка - отдам вознаграждение) | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |