|
Как загрузить картинку с сайта не храня в базе и явно не сохраняя на диск
| ☑ |
0
Klesk666
14.08.16
✎
18:26
|
УФ. При открытии формы, там есть реквизит объекта АдресКартинки типа "Поле картинки"
Нашел пример для ОФ, пытаюсь переделать ругается:
&НаКлиенте
Процедура ПриОткрытии(Отказ)
Если ЗначениеЗаполнено(Объект.Артикул) Тогда
ДвоичныеДанныеКартинки = ПолучитьДвоичныеДанныеКартинки(";);
Картинка = Новый Картинка(ДвоичныеДанныеКартинки);
ЭтаФорма.АдресКартинки.Картинка = Картинка; // ругается {Справочник.Номенклатура.Форма.ФормаЭлемента.Форма(1086)}: Значение не является значением объектного типа (Картинка) ЭтаФорма.АдресКартинки.Картинка = Картинка;
КонецЕсли;
КонецПроцедуры
Функция ПолучитьДвоичныеДанныеКартинки(Путь)
СтруктураАдреса = РазобратьАдресСайта(Путь);
Соединение = Новый HTTPСоединение(СтруктураАдреса.HTTPСервер);
Запрос = Новый HTTPЗапрос(СтруктураАдреса.HTTPАдресСкрипта);
Ответ = Соединение.Получить(Запрос);
Возврат Ответ.ПолучитьТелоКакДвоичныеДанные();
КонецФункции
Как правильно сделать?
|
|
1
Klesk666
14.08.16
✎
18:56
|
точнее АдресКартинки это реквизит формы с типом строка, а на самой форме АдресКартинки с типом "Поле картинки", путь к данным АдресКартинки
|
|
2
Klesk666
14.08.16
✎
19:27
|
получилось так
Ответ = Соединение.Получить(Запрос).ПолучитьТелоКакДвоичныеДанные();
Возврат ПоместитьВоВременноеХранилище(Ответ,Новый УникальныйИдентификатор);
Скажите а чистить надо из временного хранилища, а то память будет наверно переполняться?
|
|
3
Jija Grenkov
14.08.16
✎
20:04
|
На сколкьо помню, по умолчанию время жизни объекта во временном хранилище 20 минут, еще можно привязать к времени жинзни формы. Но в вашем случае лучше удалять явно
|
|
4
Klesk666
14.08.16
✎
21:46
|
(3) вот из справки
Если передан УникальныйИдентификатор, не являющийся уникальным идентификатором формы, то значение будет удалено после завершения сеанса пользователя.
Если параметр не указан, помещенное значение будет удалено после очередного запроса сервера из общего модуля, при контекстном и неконтекстном серверном вызове из формы, при серверном вызове из модуля команды или при получении формы.
т.е. правильно понимаю, что если не указан второй параметр, будет удален сам почти сразу?
|
|
5
Jija Grenkov
14.08.16
✎
22:07
|
(4) похоже, что правильно. И вам в таком случае не нужен дополнительный запрос на сервер, что бы удалить значение явно.
|
|