helpf.pro
Регистрация

v8.3: Как вытащить на табличную часть Картинку?

kat2504
09.05.2017 00:28Прочитано: 2500

Помогите вытащить Картинку из регистра Сведений ПрисоединенныеФайлы в табличную часть Документа, для дальнейшего вывода на печать

Есть документ КоммерческоеПредложение в нем табличная часть Оборудование в ней реквизиты Наименование(тип Справочники.Номенклатура), Фото (тип Справочники.НоменклатураПрисоединенныеФайлы) и т.д....

При заполнении строки Наименование происходит автоматическое заполнение всех остальных строк включая столбец Фото (но заполняется названием этого фото).

В справочнике Номенклатура есть реквизит ФайлКартинки (тип Справочники.НоменклатураПрисоединенныеФайлы) через него загружаются изображения

Все изображения хранятся в РегистрыСведений.ПрисоединенныеФайлы в котором есть Измерения ПрисоединенныйФайл и ресурс ХранимыйФайл (тип ХранилищеЗначения)

Мне нужно, чтобы при печати выводилось не название этого фото, а само изображение

Yandex
Возможно, вас также заинтересует
Реклама на портале
all4cf
14.05.2017 19:52Ответ № 1

Примерно так:

Код 1C v 8.х
 // Функция возвращает табличный документ с сертификатами, которые следует вложить в заказ
Функция СформироватьПечатнуюФормуСертификаты(МассивОбъектов, ОбъектыПечати, ПараметрыПечати)
    ТабличныйДокумент = Новый ТабличныйДокумент;    
    Макет = УправлениеПечатью.ПолучитьМакет("Обработка.ИПМ_ПечатьДополнительныхФорм.ПФ_MXL_Штрихкоды");
    ОбластьКартинкиСертификата = Макет.ПолучитьОбласть("ИзображениеСертификата");
    Сертификат = ОбластьКартинкиСертификата.Рисунки["Сертификат"];    
    
    ВидНоменклатуры = Справочники.ВидыНоменклатуры.НайтиПоНаименованию("Сертификат");
    СсылкаНаСборку = МассивОбъектов[0];
    
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |    ИПМ_СборЗаказовСписаниеНоменклатурыСЯчеек.Номенклатура,
        |    ИПМ_СборЗаказовСписаниеНоменклатурыСЯчеек.Номенклатура.ФайлКартинки КАК ФайлКартинки
        |ИЗ
        |    Документ.ИПМ_СборЗаказов.СписаниеНоменклатурыСЯчеек КАК ИПМ_СборЗаказовСписаниеНоменклатурыСЯчеек
        |ГДЕ
        |    ИПМ_СборЗаказовСписаниеНоменклатурыСЯчеек.Ссылка =Ссылка
        |    И ИПМ_СборЗаказовСписаниеНоменклатурыСЯчеек.Номенклатура.ВидНоменклатуры =ВидНоменклатуры";


    Запрос.УстановитьПараметр("ВидНоменклатуры", ВидНоменклатуры);
    Запрос.УстановитьПараметр("Ссылка", СсылкаНаСборку);


    Результат = Запрос.Выполнить();


    ВыборкаКартинки = Результат.Выбрать();


    Пока ВыборкаКартинки.Следующий() Цикл        
        Если ВыборкаКартинки.ФайлКартинки <> Справочники.НоменклатураПрисоединенныеФайлы.ПустаяСсылка() Тогда
            
            Сертификат.Картинка = Новый Картинка;
            СтруктураКартинки = ПрисоединенныеФайлы.ПолучитьДанныеФайла(ВыборкаКартинки.ФайлКартинки);
            ЗнКартинки = ПолучитьИзВременногоХранилища(СтруктураКартинки.СсылкаНаДвоичныеДАнныеФайла);
            Если ТипЗнч(ЗнКартинки) = Тип("Картинка") Тогда
                Сертификат.Картинка = ЗнКартинки;
            Иначе
                Сертификат.Картинка = Новый Картинка(ЗнКартинки);
            КонецЕсли;            
        Иначе
            Сообщить("У номенклатуры: "+ВыборкаКартинки.Номенклатура + " нет изображения!");                        
        КонецЕсли;        
        
        ТабличныйДокумент.Вывести(ОбластьКартинкиСертификата);
        ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
    КонецЦикла;
 
    Возврат ТабличныйДокумент;
КонецФункции    
Подсказка: Вы получили ответ на свой вопрос - закройте вопрос!
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.