Версия для печати темы (https://pro1c.org.ua/index.php?s=d12ca25c9622c4077077795a07b9fa3d&showtopic=67371)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Печать присоединенного файла из справочника

Автор: kostya77 31.10.23, 13:56

Добрый день. В справочнике НоменклатураПрисоедененныеФайлы хранится картинка в фомате jpg. Подскажите, как получить ссылку на этот файл для дальнейшей печати?

Автор: Slon747 31.10.23, 14:10

kostya77 @ Сегодня, 13:56 * ,

Если нужно сначала сохранить файл на диск, то можно так (работает на УНФ):

Картинка = Новый Картинка(ПолучитьДвоичнаяКартинка(СсылкаЭлемента));
Картинка.Записать(ИмяФайла);

&НаСервере
Функция ПолучитьДвоичнаяКартинка(Ссылка)
    Возврат ПрисоединенныеФайлы.ПолучитьДвоичныеДанныеФайла(Ссылка);
КонецФункции

Автор: kostya77 31.10.23, 14:16

Разбрался.

Функция ПолучитьИзображение(Присоединенныйфайл)
КартинкаПоумолчанию = Неопределено;

Если ТипЗнч(Присоединенныйфайл) = Тип("СправочникСсылка.НоменклатураПрисоединенныеФайлы") Тогда
    Запрос = Новый Запрос;
    Запрос.Текст ="ВЫБРАТЬ
        | Присоединенныефайлы.Хранимыйфайл
        |ИЗ
        | РегистрСведений.Присоединенныефайлы КАК Присоединенныефайлы
        |ГДЕ
        | Присоединенныефайлы.Присоединенныйфайл = &Присоединенныйфайл";
    Запрос.УстановитьПараметр("Присоединенныйфайл", Присоединенныйфайл);
    Результат = Запрос.Выполнить();
    Если НЕ Результат.Пустой() Тогда
        Выборка = Результат.Выбрать();
        Выборка.Следующий(); // Получаем двоичные данные катинки
        Возврат Новый Картинка(Выборка.Хранимыйфайл.Получить(), Истина);
    Иначе // Если.панные отсутствуют, получаем стандартное изображение из
        // дополнительного макета внешнего отчета
        Возврат Новый Картинка(ПолучитьМакет("НетКартинки"));
    КонецЕсли;
КонецЕсли;

Возврат КартинкаПоумолчанию;
КонецФункции

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua