Как реализовать просмотр картинок формата PNG в 1С:Предприятие 7.7?

Программист 1С v7.7 IT и автоматизация бизнеса
← На главную

В процессе разработки часто возникает потребность в отображении графических файлов различных форматов, включая PNG, в интерфейсе 1С:Предприятие 7.7. Стандартный элемент формы Картинка в данной версии платформы имеет ограничения по работе с форматами, что вызывает сложности при попытке вывести PNG-файлы напрямую. Рассмотрим, как можно решить эту задачу, применяя различные технические подходы.

Использование элемента управления Web Browser Control

Одним из самых эффективных и простых способов отображения современных форматов изображений, включая PNG с прозрачным фоном, является использование элемента ActiveX Shell.Explorer.2 (браузерный движок Internet Explorer). Этот метод позволяет избежать трудоемкой конвертации файлов.

Для реализации данного подхода выполните следующие шаги:

  1. Добавьте на форму обработки объект типа OLE (элемент управления Microsoft Web Browser).
  2. Присвойте ему идентификатор, например WebBrowser.
  3. В коде 1С при открытии или смене записи используйте метод Navigate для загрузки пути к файлу.

Пример программной реализации:


// Предположим, что на форме есть элемент WebBrowser
ПутьКФайлу = "file:///C:/Pictures/Goods/image.png";
Форма.WebBrowser.Navigate(ПутьКФайлу);

Этот метод позволяет корректно отображать изображения без потери качества и необходимости изменения исходного формата файла.

Конвертация изображений через библиотеку WIA (Windows Image Acquisition)

Если по каким-либо причинам требуется хранить или использовать только формат JPG, можно автоматизировать процесс конвертации PNG в JPG средствами Windows. Библиотека WIA позволяет программно обрабатывать изображения. Разберем пример реализации такой конвертации через создание COM-объекта:


// Инициализация объектов WIA
sFormatID = "{B96B3CAF-0728-11D3-9D7B-0000F81EF32E}";
oWIA = CreateObject("WIA.ImageFile");
oIP = CreateObject("WIA.ImageProcess");

// Настройка фильтра конвертации
oIP.Filters.Add(oIP.FilterInfos("Convert").FilterID);
oIP.Filters(1).Properties("FormatID").Value = sFormatID;
oIP.Filters(1).Properties("Quality").Value = 100;

// Загрузка и сохранение
oWIA.LoadFile("D:\1с\input.png");
oWIA = oIP.Apply(oWIA);
oWIA.SaveFile("D:\1с\output.jpg");

Важное замечание: При работе с WIA на 64-битных серверных операционных системах убедитесь, что библиотека зарегистрирована в системе. Также учитывайте, что для работы WIA могут потребоваться дополнительные службы или права доступа, так как изначально это интерфейс для взаимодействия со сканерами и камерами.

Использование библиотеки GFLAx

Для более гибкой работы с изображениями, включая не только конвертацию, но и масштабирование, можно использовать библиотеку GFLAx (интерфейс к известному просмотрщику XnView). Этот инструмент позволяет управлять параметрами отображения непосредственно из кода 1С.

Для начала работы с GFLAx необходимо зарегистрировать соответствующий файл библиотеки в операционной системе через команду regsvr32. После успешной регистрации вы сможете создавать объект в 1С:


// Создание объекта GFLAx для манипуляций с изображениями
ОбъектGFLAx = СоздатьОбъект("GFLAx.GFLAx");
// Далее используются методы объекта для загрузки и преобразования

Рекомендации по организации работы с изображениями

Чтобы избежать «бардака» в файловой системе и трудностей при отображении, рекомендуем придерживаться следующих правил:

Проанализировав все вышеизложенные методы, вы сможете подобрать оптимальное решение для вашей конфигурации 1С:Предприятие 7.7, обеспечив удобный просмотр как старых, так и современных форматов графики.

← На главную