HelpF.pro

Вывод картинки (изображения) на печать, в макет (табличный документ)

Код 1C v 8.х
 // 1-й вариант
//Как вывести картинку в табличный документ?

ТабДок = Новый ТабличныйДокумент; 
Макет = ОбработкаОбъект.ПолучитьМакет("Макет"); 
ОбластьКартинки = Макет.ПолучитьОбласть("ОбластьСКартинкой"); 
Картинка = Новый Картинка(ПутьККартинке); 

// Элемент управления "Логотип" входит в коллекцию картинок области. 
ОбластьКартинки.Рисунки.Логотип.Картинка = Картинка; 
ТабДок.Вывести(ОбластьКартинки); 

ТабДок.Показать(); 

// 2-й вариант
//Как вывести картинку в табличный документ без изменения макета?

Область = Макет.ПолучитьОбласть("Шапка"); 
Рисунок = Область.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка); 
Рисунок.Верх = 5; 
Рисунок.Высота = 10; 
Рисунок.Ширина = 10; 
Рисунок.Лево = 5; 
Рисунок.Картинка = Новый Картинка(ПутьККартинке); 
Рисунок.РазмерКартинки = РазмерКартинки.РеальныйРазмер; 

ТабДок.Вывести(Область); 

//3-й вариант
//ПечатьОрганизации , добавляем в макет картинку с именем Картинка1 в самую нижнюю
//область с именем ОбластьПечатьОрганизации
ОбластьПечатьОрганизации = Макет.ПолучитьОбласть("ПечатьОрганизации");
Картинка= Новый Картинка("C:\files\img\печатьОрганизации.gif") ;
ОбластьПечатьОрганизации.Рисунки.Картинка1.Картинка = картинка;
ТабДок.Вывести(ОбластьПечатьОрганизации);

// 4-й вариант динамически
ОбластьПечатьОрганизации = Макет.ПолучитьОбласть("ПечатьОрганизации");
КартинкаПечатьОрганизации = ОбластьПечатьОрганизации.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
КартинкаПечатьОрганизации.Картинка = БиблиотекаКартинок.ОбщаяКартинка1;
КартинкаПечатьОрганизации.Верх = 0;
КартинкаПечатьОрганизации.Высота = 80;
КартинкаПечатьОрганизации.Ширина = 80;
КартинкаПечатьОрганизации.Лево = 50;
КартинкаПечатьОрганизации.ГраницаСверху = Ложь;
КартинкаПечатьОрганизации.ГраницаСлева = Ложь;
КартинкаПечатьОрганизации.ГраницаСправа = Ложь;
КартинкаПечатьОрганизации.ГраницаСнизу = Ложь;
КартинкаПечатьОрганизации.РазмерКартинки = РазмерКартинки.АвтоРазмер;
ТабДок.Вывести(ОбластьПечатьОрганизации);

//5-й вариант получение картинки из хранилища значений
// Выборка.Изображение - выборка из запроса, Изображение реквизит -хранил. значений  
Попытка
    Путь = КаталогВременныхФайлов()+ "\1С_Картинка_"+Формат(ТекущаяДата(),"ДФ=yyyyMMddЧЧммсс")+".bmp";
    КартинкаВПамяти = Выборка.Изображение.Получить();
    КартинкаВПамяти.Записать(Путь);
    ОбластьСостав.Рисунки.D1.Картинка = Новый Картинка(Путь);
Исключение
    ОбластьСостав.Рисунки.D1.Картинка = Новый Картинка;
КонецПопытки;
   


Для 7.7 пример обработки, которая выводит все картинки (.jpg) из выбранного каталога (и подкаталогов) в печатную форму Скачивать файлы может только зарегистрированный пользователь!
Вот ее код:
Код 1C v 7.x
 Перем Картинка, ТЗКаталога, ПутьКаталогаРисунков;
//******************************************************************************
Процедура Сформировать1()
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Сформировать");
    Картинка = СоздатьОбъект("Картинка");
    т=1;
    ТЗКаталога.ВыбратьСтроки();
    Пока ТЗКаталога.ПолучитьСтроку() = 1 Цикл
        Картинка.Загрузить(ТЗКаталога.Путь);
        Сформировать = т; 
        Таб.ВывестиСекцию("Заголовок");
        т = т+1;
    КонецЦикла;
    Таб.Опции(0,0,0,0);
    Таб.Показать("Сформировать","");
    ТЗКаталога = "";
КонецПроцедуры  
//******************************************************************************
Процедура карт(карт)     //Вызывается из объекта картинка на печатной форме
    карт.РежимРисования(3);
    карт.УстановитьКартинку(Картинка);
КонецПроцедуры      //карт(карт)     Вызывается из объекта картинка на печатной форме
//******************************************************************************
Процедура СканироватьКаталог(Каталог)    
    Перем А;
    ФСО=СоздатьОбъект("ФС");
    Ф=ФСО.НайтиПервыйФайл(Каталог+"*");
    Пока Ф<>"" Цикл
        Если (Ф<>".")И(Ф<>"..") Тогда
            ФС.АтрибутыФайла(Каталог+Ф,,А);
            Если Сред(А,4,1)="1" Тогда 
                СканироватьКаталог(Каталог+Ф+"\");
            Иначе 
                Если (Прав(Ф,4)=".jpg") или (Прав(Ф,4)=".wmf") или (Прав(Ф,4)=".emf") или (Прав(Ф,4)=".ico") или (Прав(Ф,4)=".bmp") или (Прав(Ф,4)=".dib") или (Прав(Ф,4)=".rle") Тогда
                    ТЗКаталога.НоваяСтрока();
                    ТЗКаталога.Путь = Каталог+Ф;
                    ТЗКаталога.Файл = Ф;        //Для поиска файла по имени (исп в другой обработке)
                КонецЕсли;
            КонецЕсли;
        КонецЕсли;
        //Сообщить(Каталог+Ф);
        Ф=ФСО.НайтиСледующийФайл();
    КонецЦикла;
КонецПроцедуры  //СканироватьКаталог(Каталог)   
//******************************************************************************
Процедура Сформировать()  
    Если ФС.ВыбратьКаталог(ПутьКаталогаРисунков,"Выберете папку с рисунками .jpg...",60) <> 1 Тогда
        Предупреждение("Рисунки не покажу!"); 
        Возврат;
    Иначе 
        ТЗКаталога = СоздатьОбъект("ТаблицаЗначений");
        ТЗКаталога.НоваяКолонка("Путь",,,,,,,);
        ТЗКаталога.НоваяКолонка("Файл",,,,,,,);
        СканироватьКаталог(ПутьКаталогаРисунков+"\");
    КонецЕсли;
    Сформировать1(); 
КонецПроцедуры    

Опубликовано на сайте: https://HelpF.pro
Прямая ссылка: https://HelpF.pro/faq/view/486.html