Не отображается картинка, загруженная из двоичных данных

1. Ukubaeva 26.07.16 12:40 Сейчас в теме
Делаю все стандартно - в Регистре храню картинки в хранилище значения, при создании формы на сервере читаю эти данные, пишу в адрес картинки
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	ПолучитьДанныеФото();
	АдресКартинки = ПоместитьВоВременноеХранилище(ДДФайла,УникальныйИдентификатор);
	//Элементы.Картинка.РазмерКартинки = РазмерКартинки.Пропорционально;
КонецПроцедуры

&НаСервере
Процедура ПолучитьДанныеФото()
	Рег = РегистрыСведений.Вложения.СоздатьНаборЗаписей();
	Рег.Отбор.УникальныйКод.Установить(Запись.УникальныйКод);
	Рег.Прочитать();
	Если Рег.Количество() = 0 Тогда Возврат КонецЕсли;
	ДДФайла = Рег[0].Данные.Получить();
КонецПроцедуры
Показать

На форме Поле картинки, путь к данным - АдресКартинки. На мобильном устройсвте какие то картинки отображаются корректно, какие то нет. В тонком клиенте все картинки отображаются нормально.
Причем, у меня при нажатии на картинку отрабатывают команды по редактировании фото, так вот программы для обрезания или редактирования фото открывают картинку нормально, а берут они данные картинки из того же реквизита формы ДДФайла. Помогите понять, почему не отображается картинка в Поле картинки на форме то? Спасибо!
+
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. dj_serega 391 26.07.16 13:40 Сейчас в теме
(1) Ukubaeva, Мне кажется что картинки слишком хорошего качества и мобильное устройство не справляется с вырисовыванием.
Предлагаю, для проверки, уменьшить качество картинок либо реализовать через страницы (режим перелистывания).
Ukubaeva; +1
3. Ukubaeva 26.07.16 14:36 Сейчас в теме
(2) dj_serega,
Мне кажется что картинки слишком хорошего качества и мобильное устройство не справляется с вырисовыванием
Да, я тоже так думаю, потому что если я эти же сканы сохраняю и уменьшаю размер и креплю заново, отображаются они нормально. Но дело в том, что в мобильное приложение эти рисунки попадают из Центральной базы, где собираются самые разномастные файлы - как сделанные на мобильном приложении, так и отсканированные и прикрепленные к документам на стационарном компьютере, тут я уже не могу контролировать все файлы. В общем, решила помимо функций редактирования и обрезания фото добавить просмотр и открываю проблемный скан в просмотрщике. Спасибо!
+
4. ipoloskov 162 26.07.16 14:39 Сейчас в теме
Может, обрезать картинки при передаче на мобильное устройство? Заодно и трафик уменьшится.
+
5. Ukubaeva 26.07.16 14:47 Сейчас в теме
(4) ipoloskov, да, это тоже вариант. Но тогда, пожалуй, надо опытным путем выяснять, с какого качества начиная перестают грузиться сканы, и для таких выполнять процедуру обрезания. В общем, пока тестируем так с командой открытия проблемного скана, потом посмотрим.
+
6. dj_serega 391 26.07.16 15:19 Сейчас в теме
(5) Ukubaeva,
Но тогда, пожалуй, надо опытным путем выяснять, с какого качества начиная перестают грузиться сканы

В первую очередь я бы выяснил какое качество нужно в МП.

В пример: разрешение моб. устройства "1280 x 800" (10'' tab4) то удобо-читаемыми картинками можно считать 640*480. Ну и не bmp а jpeg или даже png.

Это первые мысли какие пришли. У меня были случаи когда видяшки (avi) грузили с разрешением годными для просмотра в кинотеатре :))) Естественно я ограничил размер в 20мб :) В итоге юзеры конвертировали видео в 640*480 и все работало как часы.
+
7. Ukubaeva 26.07.16 15:30 Сейчас в теме
(6) dj_serega, да, я согласна, что надо бы изначально ограничить возможности пользователей грузить высокого качества изображения, но дело в том, что в базу эти изображения попадают самыми различными способами. И хорошего качества попадают следующим образом: Пользователь сканирует свой документ, пишет на определенный ящик письмо, прикрепляет туда скан, отправляет письмо. Письмо обрабатывается триггером событий в 1С, создается док, который грузится в МП, где с ним работают другие пользователи. И им надо просматривать сканы. То есть, тут довольно сложно заставить их крепить надлежащего качества сканы.
+
8. dj_serega 391 26.07.16 19:49 Сейчас в теме
(7) Ukubaeva, Я, походу, не совсем ясно передал суть :)
Допустим есть док "ДанныеДляМП". У него реквизиты: "Сканы - Тип ХЗ" и "СканыДляМП - Тип ХЗ". Так вот на МП выгружайте "СканыДляМП". Сконвертить скан можно в обработчике "ПерезЗаписью". Не думаю что будет трудно найти обработку/сайт/программу через которые можно будет это выполнить (будь-то встроенные механизмы или api или COM).

Вообщем направление, я думаю, есть :) А вот о результатах очень прошу отписаться :) Интересно как решите этот вопрос.
Ukubaeva; +1
9. DitriX 2093 26.07.16 21:13 Сейчас в теме
Если уж таки надо такого качества выводить - юзайто поле хтмл, и выводите через него.
И вообще - все картинки надо через него выводить, иначе рискуете утечками памяти. И после открытия 10 картинок - 1с просто упадет.
Ukubaeva; dj_serega; +2
11. Xershi 1484 06.03.17 23:26 Сейчас в теме
(9) просто замена поле картинки на Поле HTML документа результата не дало.
+
10. Xershi 1484 06.03.17 22:52 Сейчас в теме
Поставил 8.3.9 МП и андроид 4.4 у меня.
Вместо картинки крестик.
Картинка 42 957 байт 400 на 400 примерно.
А вот картинку в 21кб отобразило.
Ранее возможно на 8.3.7 и андроиде 4.2 картинки грузились нормально.
//Код до
//СсылкаНаКартинку = ПолучитьНавигационнуюСсылку(Объект.Ссылка,"Иллюстрация");
//Код после тоже не работает
СсылкаНаКартинку = ПоместитьВоВременноеХранилище(Новый Картинка(ДвоичныеДанныеИллюстрации), УникальныйИдентификатор);
		
+
12. Xershi 1484 07.03.17 00:03 Сейчас в теме
СсылкаНаКартинку = ПолучитьНавигационнуюСсылку(Объект.Ссылка,"Иллюстрация");
		//СсылкаНаКартинку = ПоместитьВоВременноеХранилище(Новый Картинка(ДвоичныеДанныеИллюстрации), УникальныйИдентификатор);
		СсылкаНаКартинку = "
		|<ht ml>
		|<head>
		|</head>
		|<body>
		|<div> <img src='"+СсылкаНаКартинку+"'/></div>
		|</body>
		|</html>";
Показать
+
13. Xershi 1484 07.03.17 00:36 Сейчас в теме
(12) только с картинкой уже ничего сделать нельзя, она есть но на мобилке поле мизерное. Наверное надо выводить отдельным окном...
+
14. kaa_ 09.03.17 17:38 Сейчас в теме
Такая же проблема. Пересохранил в png. Показало. Поэкспериментирую еще с другими форматами, т.к. png уж больно тяжелый.
Xershi; +1
15. Xershi 1484 09.03.17 21:01 Сейчас в теме
(14) спасибо за наводку! Протестирую этот метод и напишу как прошло!
+
16. Xershi 1484 09.03.17 21:48 Сейчас в теме
(14) похоже на текущий момент это решение!
Требуется пересохранить картинки из JPEG (.jpg) в PNG (.png). Тогда картинка отобразится корректно, но и объем у меня увеличился почти в 3 раза картинки!
+
17. Xershi 1484 04.04.17 00:08 Сейчас в теме
Поставил мобильную платформу 8.3.10 и кажись работа с JPEG (.jpg) пошла!
+
18. johny1987 30.11.17 12:36 Сейчас в теме
Нихрена не выводится - пишет "Не удается найти элемент" и открывает галерею картинок на мобильном устройстве. МП 8.3.10.74. Что я не так делаю?
&НаСервере
Процедура ВывестиКартинку(Гуид)
	ИмяТемпФайла  = ПолучитьИмяВременногоФайла(".jpg");
	Попытка	
		ДвоичныеДанные = ПолучитьФайлИзХранилища(Гуид); 
		Если ДвоичныеДанные <> Неопределено Тогда
			ДвоичныеДанные.Записать(ИмяТемпФайла);//Файл);
			ЗапуститьПриложение(ИмяТемпФайла);//Файл);		
		КонецЕсли;
	Исключение
		Сообщить(ОписаниеОшибки());
	КонецПопытки;
КонецПроцедуры

&НаСервере
Функция ПолучитьФайлИзХранилища(ГуидФайла)
	Возврат ВернутьОбъектСправочникаПоГуиду(ГуидФайла);
КонецФункции

&НаСервере
Функция ВернутьОбъектСправочникаПоГуиду(Гуид)
	
	Запрос = Новый Запрос;
	Запрос.Текст = 

	 "ВЫБРАТЬ
	 |	ПрикрепленныеДанные.Данные КАК ХранилищеФайла
	 |ИЗ
	 |	РегистрСведений.ПрикрепленныеДанные КАК ПрикрепленныеДанные
	 |ГДЕ
	 |	ПрикрепленныеДанные.ГУИД = &ГУИД";
	
	Запрос.УстановитьПараметр("ГУИД", Гуид);
	
	РезультатЗапроса = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("ХранилищеФайла");
	Если РезультатЗапроса.Количество() > 0 Тогда  
		Возврат РезультатЗапроса[0].Получить();
	Иначе  
		Возврат Неопределено;  
	КонецЕсли;
КонецФункции 
Показать
+
Внимание! Тема сдана в архив

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот