Как отобразить полученное фото на форме мобильного клиента?

1. spezc 782 06.08.14 15:52 Сейчас в теме
Добрый день. Вот таким кодом я фотографирую на мобильном клиенте и добавляю фото в реквизит элемента справочника. Однако не получается на этом же мобильном клиенте посмотреть это фото.

&НаКлиенте
Процедура ДобавитьФото(Команда)
	
	#Если НЕ МобильноеПриложениеКлиент Тогда
		Сообщить("Функция не поддерживается");
		Возврат;
	#Иначе
		
		Результат = Неопределено;
		
		Если СредстваМультимедиа.ПоддерживаетсяФотоснимок() Тогда
			Результат = СредстваМультимедиа.СделатьФотоснимок();
		Иначе
			Сообщить("Не поддерживается фото!");
		КонецЕсли; 
		
		Если Результат = Неопределено Тогда Возврат КонецЕсли;
		
		Данные = Результат.ПолучитьДвоичныеДанные();
		РасширениеФайла = Результат.РасширениеФайла;
		ДобавитьФотоНаСервере(Данные);   
		Модифицированность = Истина;
		
	#КонецЕсли
	
КонецПроцедуры

&НаСервере
Процедура ДобавитьФотоНаСервере(Данные)
	
	ОбъектФормы = РеквизитФормыВЗначение("Объект");
	ОбъектФормы.ДанныеСтрокой = Base64Строка(Данные);
	ЗначениеВРеквизитФормы(ОбъектФормы, "Объект");
	
КонецПроцедуры

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	ОписаниеОшибки = "";
	
	Если НЕ ЗначениеЗаполнено(Объект.Ссылка) Тогда
		
		Возврат;
		
	КонецЕсли;
	
	ОбновитьКартинкуНаСервере(ОписаниеОшибки);
	
	Если НЕ ОписаниеОшибки = "" тогда
		
		Сообщить(ОписаниеОшибки);
		
	КонецЕсли;
	
КонецПроцедуры

&НаСервере
Процедура ОбновитьКартинкуНаСервере(ОписаниеОшибки)
	
	ОбъектФормы = РеквизитФормыВЗначение("Объект");
	Этап = "";
	
	Попытка
		
		Этап = "Получение двоичных данных."+Символы.ПС;
		ДвоичныеДанные = Base64Значение(ОбъектФормы.ДанныеСтрокой);
		Этап = Этап+"Получение картинки. Тип: "+ТипЗнч(ДвоичныеДанные)+" Размер: "+ДвоичныеДанные.Размер()+Символы.ПС;
		Картинка = Новый Картинка(ДвоичныеДанные);
		Этап = Этап+"Установка картинки. Тип: "+ТипЗнч(Картинка)+" Формат: "+Картинка.Формат()+Символы.ПС;
		Элементы.ДекорацияКартинка.Картинка = Картинка;
		
	Исключение
		
		ОписаниеОшибки = ОписаниеОшибки();
		
	КонецПопытки;
	
	ОписаниеОшибки = Этап+Символы.ПС+ОписаниеОшибки;
	
КонецПроцедуры
Показать



Во вложении скрин ошибки. Кто сталкивался?

При желании, если у вас есть мобильная платформа 8.3.5.63 - вы можете подключиться к базе http://base.ildarcheg.ru:39999/testclientMA2
Прикрепленные файлы:
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
6. dj_serega 390 06.08.14 17:03 Сейчас в теме
(5) spezc, а если нужно фото отредактировать редактором мобильного аппарата то используй (4).
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
3. dj_serega 390 06.08.14 16:32 Сейчас в теме
(1) spezc, Код вывода картинки в мобильном и тонком клиенте идентичный.
4. dj_serega 390 06.08.14 16:34 Сейчас в теме
(1) spezc, Я вот так на планшете фото показываю:

&НаКлиенте
Процедура СделатьФото(Команда)
	
	Если СредстваМультимедиа.ПоддерживаетсяФотоснимок() Тогда
		
		РезультатФото = СредстваМультимедиа.СделатьФотоснимок();
		
		Если Не РезультатФото = Неопределено Тогда
			
			ДвоичныеДанныеФото = РезультатФото.ПолучитьДвоичныеДанные();
			
			СтруктураНовогоФайла = Новый Структура("Расширение, Данные", РезультатФото.РасширениеФайла, ДвоичныеДанныеФото);
			
			СохранитьФотоНаСервере(СтруктураНовогоФайла);
			
		КонецЕсли;
		
	Иначе
		Предупреждение("Аппарат не поддерживает функцию фотоснимков.", 30);
	КонецЕсли;
	
КонецПроцедуры

&НаСервере
Процедура СохранитьФотоНаСервере(СтруктураНовогоФайла)  
	
	Константы.ПоследнееФото.Установить(Новый ХранилищеЗначения(СтруктураНовогоФайла, Новый СжатиеДанных(9)));
	
КонецПроцедуры // СохранитьФотоНаСервере

&НаКлиенте
Процедура ПоказатьПоследнееФото(Команда)
	
	СтруктураФайла = ПолучитьПоследнееФото();
	
	Если СтруктураФайла = Неопределено Или Не ТипЗнч(СтруктураФайла) = Тип("Структура") Тогда
		Предупреждение("Не удалось найти сохраненную фотографию.", 30);
		Возврат;
	КонецЕсли;
	
	
	ИмяВременногоФайла = ПолучитьИмяВременногоФайла(СтруктураФайла.Расширение);
	
	СтруктураФайла.Данные.Записать(ИмяВременногоФайла);
	
	ЗапуститьПриложение(ИмяВременногоФайла);
	
КонецПроцедуры

&НаСервере
Функция ПолучитьПоследнееФото()
	
	Возврат Константы.ПоследнееФото.Получить().Получить();
	
КонецФункции
Показать
7. spezc 782 06.08.14 18:21 Сейчас в теме
(4) dj_serega, спасибо за пример)
2. sssss_aaaaa_2011 06.08.14 15:54 Сейчас в теме
Кто сталкивался?
Составляете список столкнувшихся?
5. spezc 782 06.08.14 17:01 Сейчас в теме
Решилось!
АдресКартинки = ПоместитьВоВременноеХранилище(ДвоичныеДанные, УникальныйИдентификатор);
А на форме поле "АдресКартинки" с типом ПолеКартинки.
6. dj_serega 390 06.08.14 17:03 Сейчас в теме
(5) spezc, а если нужно фото отредактировать редактором мобильного аппарата то используй (4).
Оставьте свое сообщение
Вакансии
Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)

Программист 1С
Москва
зарплата от 250 000 руб.
Полный день

Программист 1C
Волгоград
зарплата от 200 000 руб.
Полный день

Аналитик
Санкт-Петербург
зарплата от 200 000 руб. до 250 000 руб.
Полный день