Добавление изображения номенклатуры по ссылке 1С
Помогите, пожалуйста, 2 дня уже сижу пытаюсь сделать. Задача такая: есть ссылка на изображение, например https://static.techspot.com/images/products/2018/loudspeakers/org/2019-02-13-product-9.jpg Необходимо задать это изображение номенклатуре через ВременноеХранилище. Что только не пытался делать. Последнее что есть:
АдресИзображения = СтруктураЭлемента.Изображение;
hh = Новый HTTPЗапрос(АдресИзображения);
дд = hh.ПолучитьТелоКакДвоичныеДанные();
АдресВременногоХранилища = ПоместитьВоВременноеХранилище(дд);
ФайлКартинки = Новый Файл (АдресВременногоХранилища);
ПараметрыФайла = Новый Структура("Автор,ВладелецФайлов,ИмяБезРасширения,РасширениеБезТочки,ВремяИзмененияУниверсальное");
ПараметрыФайла.Автор = Пользователи.АвторизованныйПользователь();
ПараметрыФайла.ВладелецФайлов = Элемент.Ссылка;
ПараметрыФайла.ИмяБезРасширения = ФайлКартинки.ИмяБезРасширения ;
ПараметрыФайла.РасширениеБезТочки = СтрЗаменить (ФайлКартинки.Расширение, ".", "");
ПараметрыФайла.ВремяИзмененияУниверсальное = ТекущаяДата();
Попытка
СсылкаНаКартинку = РаботаСФайлами.ДобавитьФайл(ПараметрыФайла,АдресВременногоХранилища);
Исключение
Сообщить ("Ошибка добавления файла: " + ОписаниеОшибки());
КонецПопытки;
Попытка
Элемент.ФайлКартинки = СсылкаНаКартинку;
Элемент.Записать();
Исключение
Сообщить ("Картинка не добавлена: " + ОписаниеОшибки());
КонецПопытки;
Не работает, выдает "Ошибка добавления файла: {ОбщийМодуль.РаботаСФайлами.Модуль(541)}: Значение не является значением объектного типа (Размер)"
Ответы (1 шт):
Автор решения: mickey.dev
→ Ссылка
Допустим, на управляемой форме задан реквизит ФайлКартинки с типом Строка, вынесен на форму как ПолеКартинки. Так же созданы две команды. Как то так:
&НаКлиенте
Процедура Команда1(Команда)
// чтение локального файла
Д = Новый ДвоичныеДанные("C:\Temp\2019-02-13-product-9.jpg");
ФайлКартинки = ПоместитьВоВременноеХранилище(Д);
КонецПроцедуры
&НаКлиенте
Процедура Команда2(Команда)
// чтение из интеренета
Соединение = Новый HTTPСоединение("static.techspot.com", 443,,,,, Новый ЗащищенноеСоединениеOpenSSL());
hh = Новый HTTPЗапрос("images/products/2018/loudspeakers/org/2019-02-13-product-9.jpg");
Ответ = Соединение.Получить(hh);
дд = Ответ.ПолучитьТелоКакДвоичныеДанные();
ФайлКартинки = ПоместитьВоВременноеХранилище(дд);
КонецПроцедуры