Имя: Пароль:
1C
1С v8
Как через WEB сервис перебросить картинку - какой тип в XDTO ставить?
0 oleg_prg
 
27.05.13
19:37
Добрый день!
Задача сделать в WEB сервисе выгрузку фото
Фото находятся в Справочник.КаталогИнтернетМагазина.Фото (таблица) тип ХранилищеЗначения
Как через WEB сервис перебросить картинку - какой тип в XDTO ставить и если можно киньте пример.

Вот мой код


Функция GetCatalog()
   
   Запрос = новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
                  |    КаталогИнтернетМагазина.НаименованиеДляМагазина,
                  |    КаталогИнтернетМагазина.КраткоеОписаниеТовара,
                  |    КаталогИнтернетМагазина.ПолноеОписание,
                  |    КаталогИнтернетМагазина.Ссылка
                  |ИЗ
                  |    Справочник.КаталогИнтернетМагазина КАК КаталогИнтернетМагазина";
                 
   ТЗ = Запрос.Выполнить().Выгрузить();                  
   КолЭл = ТЗ.Количество()-1;
   
   СтрокаТип              = ФабрикаXDTO.Тип("http://www.w3.org/2001/XMLSchema", "string");
   МассивКаталогаТип     = ФабрикаXDTO.Тип("http://www.sample-package.org", "ArrTovar");
   ЭлементКаталогаТип      = ФабрикаXDTO.Тип("http://www.sample-package.org", "Tovar");    
   
   МассивКаталогаДляВозврата = ФабрикаXDTO.Создать(МассивКаталогаТип);
   
   Для А = 0 По КолЭл-1 Цикл
       Элемент = ФабрикаXDTO.Создать(ЭлементКаталогаТип);
       Элемент.MyGUID         = СокрЛП(ТЗ[А].Ссылка.УникальныйИдентификатор());        
       Элемент.Name         = СокрЛП(ТЗ[А].НаименованиеДляМагазина);
       Элемент.ShortComment = СокрЛП(ТЗ[А].КраткоеОписаниеТовара);
       Элемент.FULLComment     = СокрЛП(ТЗ[А].ПолноеОписание);
       Элемент.image1         = КаталогИнтернетМагазина.Фото[0];  //Что сюда поставить??? !!!!!!!!!!!!!!
       МассивКаталогаДляВозврата.tovar.Добавить(Элемент);
   КонецЦикла;


   Возврат МассивКаталогаДляВозврата;
       
КонецФункции

Заранее спасибо!
1 zmaximka
 
27.05.13
20:22
а прошлый вопрос уже решил, че было то?
2 John D
 
28.05.13
05:48
Используй ДвоичныеДанные - картинку во временный файл, двоичные данные из файла и их уже передавать. А на стороне приема наоборот - данные в файл, картинку из файла.
3 oleg_prg
 
28.05.13
20:39
Кому интересно сделал так

base64                  = ФабрикаXDTO.Тип("http://www.w3.org/2001/XMLSchema", "base64Binary");
       Если ТЗ[А].Ссылка.Картинки.Количество()> 0 Тогда
           Элемент.image1         = ТЗ[А].Ссылка.Картинки[0].Фото.Получить().ПолучитьДвоичныеДанные();
       Иначе
           Элемент.image1         = ФабрикаXDTO.Создать(base64);
       КонецЕсли;
4 Asmody
 
28.05.13
23:13
(3) а чего в хранилище значения не завернул? тип у него StorageValue в пространстве v81/core