Вывод картинки в строках отчета на СКД В этом примере показан метод вывода в строку отчета картинки, вид которой завист от значения другого поля.
Ради примера, в отчет выведем справоник «Банки» - реквизит «Ссылка» и картинку возле этого реквизита. Вид картинки зависит от значения реквизита «ЭтоГруппа»
Создаем новый
отчет - Основная схема компоновки данных:
В
Вычисляемые поля добавлено поле «ПолеКартинка». В выражение добавлено значение «%Картинка%», поэтому выражению будем искать область ячеек куда необходимо вставить нашу картинку:
В это поле будет выводится картинка.
В настройках указываем:
В модуле объекта пишем код:
Код 1C v 8.х Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь ;
ДокументРезультат. Очистить( ) ;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
Макет = КомпоновщикМакета. Выполнить( СхемаКомпоновкиДанных, КомпоновщикНастроек. Настройки, ДанныеРасшифровки) ;
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки. Инициализировать( Макет, , ДанныеРасшифровки) ;
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода. УстановитьДокумент( ДокументРезультат) ;
ПолеПоКоторомуНеобходимоПолучитьЗначение = "Ссылка" ;
ПроцессорВывода. НачатьВывод( ) ;
Пока истина Цикл
ЭлементРезультата = ПроцессорКомпоновки. Следующий( ) ;
Если ЭлементРезультата = Неопределено Тогда
прервать ;
КонецЕсли ;
ПроцессорВывода. ВывестиЭлемент( ЭлементРезультата) ;
Если ЭлементРезультата. ЗначенияПараметров. Количество( ) > 0 Тогда
ЗначениеВыводимыхДанных = Неопределено ;
Для каждого ЗначениеПараметра из ЭлементРезультата. ЗначенияПараметров Цикл
Если ТипЗнч( ЗначениеПараметра. Значение) = Тип( "ИдентификаторРасшифровкиКомпоновкиДанных" ) Тогда
ПоляРасшифровки = ДанныеРасшифровки. Элементы[ЗначениеПараметра. Значение]. ПолучитьПоля( ) ;
Для Каждого ПолеРасшифровки из ПоляРасшифровки Цикл
Если ПолеРасшифровки. Поле = ПолеПоКоторомуНеобходимоПолучитьЗначение Тогда
ЗначениеВыводимыхДанных = ПолеРасшифровки. Значение;
Прервать ;
КонецЕсли ;
КонецЦикла ;
КонецЕсли ;
КонецЦикла ;
Если ЗначениеЗаполнено( ЗначениеВыводимыхДанных) Тогда
Рис = ДокументРезультат. Рисунки. Добавить( ТипРисункаТабличногоДокумента. Картинка) ;
Рис. РазмерКартинки = РазмерКартинки. РеальныйРазмер;
Индекс = ДокументРезультат. Рисунки. Индекс( Рис) ;
Если ЗначениеВыводимыхДанных. ЭтоГруппа Тогда
ДокументРезультат. Рисунки[Индекс]. Картинка = БиблиотекаКартинок. ГруппаИЭлемент;
Иначе
ДокументРезультат. Рисунки[Индекс]. Картинка = БиблиотекаКартинок. Сформировать;
КонецЕсли ;
ВысотаТабДок = ДокументРезультат. ВысотаТаблицы;
ОбластьДляКартинки = ДокументРезультат. НайтиТекст( "%Картинка%" ) ;
Если ОбластьДляКартинки < > Неопределено Тогда
ДокументРезультат. Рисунки[Индекс]. Расположить( ОбластьДляКартинки) ;
ОбластьДляКартинки. Текст = "%КартинкаДобавлена%"
КонецЕсли ;
КонецЕсли ;
КонецЕсли ;
КонецЦикла ;
ПроцессорВывода. ЗакончитьВывод( ) ;
КонецПроцедуры
В результате:
Скачать пример этого отчета(Работает в любой конфишурации где есть справочник Банки):
Скачивать файлы может только зарегистрированный пользователь! Категория:
Схема Компоновки Данных