Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
03 дек 2022, 17:00

Вывести картинку в печатную форму документа

Автор xdto, 14 июл 2022, 17:12

0 Пользователей и 1 гость просматривают эту тему.

xdto

Добрый день. Коллеги программисты подскажите направьте как вывести на печатный макет из документа, картинку номенклатуры хранившейся в НоменклатуреПрисоеденныеФайлы ?  конф УТ 11

alexandr_ll

xdto, https://helpf.pro/faq/view/486.html

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

+31

Распечатать

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

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

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

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

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

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

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

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

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

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


Для 7.7 пример обработки, которая выводит все картинки (.jpg) из выбранного каталога (и подкаталогов) в печатную форму Скачивать файлы может только зарегистрированный пользователь! download.png
Вот ее код:

Код 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();
КонецПроцедуры


xdto

Да конечно это работает если саму картинку добавить в макет. Но я не совсем это имел ввиду имел ввиду картинка товара  которое храниться в номенклатуреприсоединнейфайл.

alexandr_ll

xdto, https://infostart.ru/public/807403/

Отображение картинок товаров в типовом прайс-листе УТ 11

Простое расширение конфигурации, которое позволяет отображать картинки товаров в типовом прайс-листе.

Почему-то в типовых конфигурациях 1С до сих пор не реализован вывод прайс-листа товаров с картинками. Данное расширение позволяет решить этот вопрос.

Для добавления расширения заходим "НСИ и администрирование" - "Печатные формы, отчеты и обработки" - "Расширения"

Добавляем наше расширение, снимаем галочку "Безопасный режим" (т.к. необходимо обращение к контексту сервера)

Теперь необходимо настроить отчет "Прайс-лист".

Заходим "Еще" - "Прочее" - "Изменить вариант отчета"

Выделяем в группировках уровень номенклатуры, выбираем вкладку "Поля"

Слева раскрываем поле "Номенклатура"

Ищем поле "Файл картинки". Двойным кликом добавляем его в "Выбранные поля"

Переходим на вкладку "Условное оформление", нажимаем "Добавить"

Указываем значение параметра "Максимальная высота" (измеряется в экранных точках, можно менять по своему усмотрению), чтобы большие картинки сжимались по высоте, и прайс получался красивым

Нажимаем "Завершить редактирование". Теперь при формировании отчета выходит картинка товара (если она заполнена).

Теперь нужно еще сохранить созданный вариант отчета. Заходим опять "Еще" - "Варианты отчета" - "Сохранить вариант отчета"

Выбираем имя варианта, и сохраняем

Теперь этот вариант отчета сразу доступен в списке отчетов

Работа расширения протестирована на релизе УТ 11.4.12.61.

Более богатый функционал прайс-листов можно найти в публикациях:

Прайс лист с картинками для УТ11

Прайс лист, прайс заказ с картинками, с выгрузкой в Excel

УТ 11 Прайс-лист с картинками на СКД

Прайс-заказ с картинками + выгрузка в Excel и загрузка обратно в 1С


Теги: УТ 11 

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск