Имя: Пароль:
1C
1С v8
Картинки в отчете
0 antiteror91
 
22.03.13
18:49
Я хочу добавить картинки в отчет с хранилища. Шестнацетиричный код картинок я получил. Скажите могу ли я добавить картинку на форму отчета без создания макета или нет??? и как это реализовывается???
1 Gsoom2010
 
22.03.13
18:53
Функция ПолучитьЛоготипОрганизации(Организация = "") экспорт

   Если Организация = "" или Организация = Справочники.Организации.ПустаяСсылка() тогда  
       Организация = ПараметрыСеанса.Организация;
   КонецЕсли;
   
   Попытка
       ПутьКЛоготипу = КаталогВременныхФайлов()+ "1С_Логотип_" + Организация.Код;
       Логотип = Организация.Логотип.Получить();
       Логотип.Записать(ПутьКЛоготипу);
       Картинка = Новый Картинка(ПутьКЛоготипу);
       УдалитьФайлы(ПутьКЛоготипу);
   Исключение
       Картинка = Новый Картинка;
   КонецПопытки;
   
   Возврат Картинка;
КонецФункции
2 antiteror91
 
22.03.13
18:56
(1) это можно делать сразу на форму без макета???
3 Gsoom2010
 
22.03.13
18:56
ТабДок = Новый ТабличныйДокумент;
           
Макет = Документы.Накладная.ПолучитьМакет("Макет");
           
Область = Макет.ПолучитьОбласть("ПерваяСекция");
               
                       Область.Рисунки.Логотип.Картинка = ПолучитьЛоготипОрганизации(Организация);
4 antiteror91
 
22.03.13
18:58
(3) спасибо значит иду макет делать)
5 Gsoom2010
 
22.03.13
18:58
У меня так сделано, если тебе нельзя менять макет, то я думаю можно программно закинуть туда объект картинка, но я не не делал так.
6 antiteror91
 
24.03.13
23:16
я вновь вернулся к задаче с картинкой пытаюсь вывести ее на макет:

ДвоичныеДанные=    НайденнаяСтрока.Фото.Получить();
           ОбластьТовар = Макет.ПолучитьОбласть("ОбластьТовар");
           
           Фото = Новый Картинка(ДвоичныеДанные,Истина);
           
           //сформируем ТЗ соотвествия области Табличного поля и выодимой в нем картинки                    
           
           //НовСтрока.Область = ОбластьВыводаКартинки;
           
           ОбластьТовар.Параметры.Номенклатура = Строка.Номенклатура;
           ОбластьТовар.Параметры.ЕдиницаИзмерения =Строка.ЕдиницаИзмерения;
           ОбластьТовар.Параметры.Фото = Фото ;
           ОбластьТовар.Параметры.Цена =  Строка.Цена;
           ЭтотОбъект.ТабличныйДокумент.Вывести(ОбластьТовар);
Но у меня почему то выводится поле а в нем написано "Картинка". Почему я не получаю изображение картинки???
7 Лодырь
 
25.03.13
06:45
НовыйРисунок = Таб.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
МакетКартинки = ПолучитьМакет("ТестоваяКартинка");
НовыйРисунок.Картинка = Новый Картинка(МакетКартинки,Истина);
НовыйРисунок.РазмерКартинки = РазмерКартинки.Пропорционально;
НовыйРисунок.Расположить(ОбластьКартинки);
8 mih_io
 
25.03.13
06:56
ВОт так можно без правки макета

Путь = КаталогВременныхФайлов()+ "\1С_Картинка_"+Формат(ТекущаяДата(),"ДФ=yyyyMMddЧЧммсс")+Стр.Номенклатура.ОсновноеИзображение.ИмяФайла;
КартинкаВПамяти = Стр.Номенклатура.ОсновноеИзображение.Хранилище.Получить();
КартинкаВПамяти.Записать(Путь);
               //*****
ОбластьПечатьОрганизации = ТабПечать.Область(НачалоОбластиДляРисунков,9,НачалоОбластиДляРисунков+ВсегоСтрок-2,14);
               Рис=ТабПечать.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
               Индекс=ТабПечать.Рисунки.Индекс(Рис);
               ТабПечать.Рисунки[Индекс].Картинка = Новый Картинка(Путь);
               ТабПечать.Рисунки[Индекс].Верх = 0;
               ТабПечать.Рисунки[Индекс].Высота = 80;
               ТабПечать.Рисунки[Индекс].Ширина = 80;
               ТабПечать.Рисунки[Индекс].Лево = 50;
               ТабПечать.Рисунки[Индекс].ГраницаСверху = Ложь;
               ТабПечать.Рисунки[Индекс].ГраницаСлева = Ложь;
               ТабПечать.Рисунки[Индекс].ГраницаСправа = Истина;
               ТабПечать.Рисунки[Индекс].ГраницаСнизу = Ложь;
               ТабПечать.Рисунки[Индекс].РазмерКартинки = РазмерКартинки.Пропорционально;
               ТабПечать.Рисунки[Индекс].Расположить(ОбластьПечатьОрганизации);