![]() |
|
Как отобразить полученное фото на форме мобильного клиента? | ☑ | ||
---|---|---|---|---|
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) большое спасибо за помощь! Если есть на инфостарте - зайти, там будет такая же ветка - отдам вознаграждение) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |