При формировании печатных форм, каталогов товаров или прайс-листов с иллюстрациями в 1С:Предприятие 7.7 часто возникает необходимость выводить различные графические файлы из папки на жестком диске в зависимости от реквизитов текущей строки. Разберем, как реализовать такую загрузку штатными средствами платформы без использования внешней библиотеки картинок конфигурации.
Платформа 1С 7.7 позволяет загружать файлы с диска прямо в момент вывода секции таблицы. Для этого используется встроенный графический объект в макете и обращение к контексту выводимого объекта через свойство ТекущийОбъект.
Разберем пошаговый алгоритм настройки макета и программного кода:
Строка).Таб.ТекущийОбъект.Загрузить(ПолныйПутьКФайлу) или пользовательскую функцию ВставитьКартинку(Таб.ТекущийОбъект, ПутьКФайлу).Посмотрим на пример кода формирования отчета с динамической подгрузкой файлов:
Функция ВывестиФото(ОбъектКартинка, ПолноеИмяФайла)
Если ФС.СуществуетФайл(ПолноеИмяФайла) = 1 Тогда
// 0 - реальный размер, 1 - растянуть, 2 - пропорционально
ОбъектКартинка.РежимРисования(2);
ОбъектКартинка.Загрузить(ПолноеИмяФайла);
Иначе
ОбъектКартинка.Очистить();
КонецЕсли;
Возврат "";
КонецФункции
Процедура Сформировать()
Перем Таб;
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Таблица");
КаталогФото = КаталогИБ() + "Images\";
ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл
ФайлИзображения = КаталогФото + СокрЛП(Артикул) + ".jpg";
Таб.ВывестиСекцию("Строка");
КонецЦикла;
Таб.Показать("Прайс-лист с фото");
КонецПроцедуры
В свойствах графической рамки в секции Строка в данном случае прописывается вызов функции:
ВывестиФото(Таб.ТекущийОбъект, ФайлИзображения)
Если при формировании отчета вместо ожидаемого изображения выводится белый прямоугольник или пустое поле, проанализируем частые причины:
.bmp, .jpg, .ico, .wmf, .emf. Файлы формата .png (особенно содержащие прозрачные слои) и анимированные .gif штатно платформой не поддерживаются и отображаются пустым белым фоном.ФС.СуществуетФайл() возвращает 0, метод Загрузить() не сможет найти файл. Всегда проверяйте корректность полного пути, включая каталог информационной базы и расширение файла.Рассмотрим вопрос программного изменения фонового изображения самой экранной диалоговой формы. В платформе 1С 7.7 свойство картинки фона формы настраивается исключительно статически на этапе конфигурирования. Штатного метода для динамической смены фона формы из встроенного языка не предусмотрено.
Если требуется динамически выводить изображения непосредственно на форму документа или обработки, применяют следующие подходы: