Имя: Пароль:
1C
1С v8
Как загрузить картинку в хранилище по url-у
0 егаис
 
08.09.12
14:22
выслали каталог с товарами в xls с ссылками на изображения. Как подгрузить картинки программно в хранилище, реально?
Код = ПрочитатьСтроку(ActiveSheet,НомерСтроки,1);
       ТоварПоКоду = Справочники.Номенклатура.НайтиПоКоду(Код);
       Если ТоварПоКоду = Справочники.Номенклатура.ПустаяСсылка() Тогда
           Продолжить;
       КонецЕсли;    
       Товар = ТоварПоКоду.ПолучитьОбъект();
       
       обФайл = Справочники.ХранилищеДополнительнойИнформации.СоздатьЭлемент();
       обФайл.Наименование = "Картинка";
       обФайл.Объект = Товар.Ссылка;
       обФайл.ВидДанных = Перечисления.ВидыДополнительнойИнформацииОбъектов.Изображение;
       обФайл.ИмяФайла = "Картинка"+НомерСтроки;
       обФайл.Хранилище = Новый ХранилищеЗначения(Новый Картинка(ПрочитатьСтроку(ActiveSheet,НомерСтроки,8))); //здесь URL

       обФайл.Записать();        
       
       Товар.ОсновноеИзображение = обФайл.Ссылка
1 егаис
 
08.09.12
14:26
интерактивно можно открыть, думаю можно и программно как-то реализовать
2 Rie
 
08.09.12
14:27
(1) Получил URL - считай в файл картинку - загрузи из этого файла картинку.
3 егаис
 
08.09.12
14:27
(2) подскажи как, плиз
4 Wobland
 
08.09.12
14:28
Процедура КнопкаВыполнитьНажатие(Кнопка)
   мАдрес=СтрЗаменить(Адрес, "http://", "");
   поз=0;
   Для й=0 По СтрДлина(мАдрес) Цикл
       Если Сред(мАдрес, й, 1)="/" Тогда
           поз=й;
       КонецЕсли;
   КонецЦикла;
   
   ИмяФайлаТам=Сред(мАдрес, поз+1);
   Ресурс=Лев(мАдрес, Найти(мАдрес, "/")-1);
   мАдрес=Сред(мАдрес, Найти(мАдрес, "/")+1);
   Попытка
       Если Константы.ИспользоватьПрокси.Получить() Тогда
           Прокси=Новый ИнтернетПрокси;
           Прокси.Пользователь=Константы.ЛогинПрокси.Получить();
           Прокси.Пароль=Константы.ПарольПрокси.Получить();
           http=Новый HTTPСоединение(Ресурс, , , , Прокси);
       Иначе
           http=Новый HTTPСоединение(Ресурс);
       КонецЕсли;
   Исключение
       Предупреждение("Ошибка соединения"+Символы.ПС+ОписаниеОшибки());
       Возврат;
   КонецПопытки;
   
   ИмяФайлаТут=ПолучитьИмяВременногоФайла("jpg");
   Попытка
       http.Получить(мАдрес, ИмяФайлаТут);
   Исключение
       Предупреждение("Ошибка получения файла"+Символы.ПС+ОписаниеОшибки());
   КонецПопытки;
   
   ф=Новый Файл(ИмяФайлаТут);
   ВыбраннаяКартинка=Новый Картинка(ИмяФайлаТут);        
   спр=Справочники.Картинки.СоздатьЭлемент();
   спр.Наименование=ПолучитьУникальноеНаименование(Лев(ИмяФайлаТам, СтрДлина(ИмяФайлаТам)-4));
   спр.Родитель=Справочники.Картинки.ИзИнтернета;
   спр.Комментарий=Адрес;
   спр.Картинка=Новый ХранилищеЗначения(ВыбраннаяКартинка);
   спр.Записать();
КонецПроцедуры
5 егаис
 
08.09.12
14:29
спасибо!