Как отобразить картинки в табличной части управляемой формы 1С?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При разработке интерфейсов на управляемых формах часто возникает задача визуализировать состояние строки (например, пометка удаления, статус заказа или тип номенклатуры) с помощью иконок. Рассмотрим подробнее, как правильно реализовать этот механизм, используя стандартные файлы графических ресурсов (иконки, картинки) платформы 1С, разберем типичные ошибки и изучим несколько эффективных способов решения задачи.

Способ 1. Использование коллекции картинок и индексов

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

  1. Подготовка данных: В табличной части (ТЧ) объекта или в реквизитах формы (если это таблица значений) необходимо создать колонку (поможет вывод картинок и штрихкодов в таблицы 1С), например, с именем ИндексКартинки. Важно установить для неё тип Число.
  2. Настройка формы: Перенесем созданную колонку в элементы формы. Для этого элемента установим вид Поле картинки.
  3. Связь с коллекцией: В свойствах этого поля найдем пункт Картинка значений. Здесь нужно выбрать общую картинку из метаданных, которая является коллекцией. Если стандартных символов недостаточно, можно загрузить сторонние наборы иконок и значков для 1С.
  4. Программное заполнение: Теперь в коде нам достаточно присваивать этой колонке индекс иконки из коллекции (индексация начинается с 0).

Проанализируем пример кода для заполнения такой колонки:


Для Каждого Стр Из Объект.ТЧ Цикл
    Если Стр.Метка = Истина Тогда     
        // Устанавливаем индекс первой картинки из коллекции
        Стр.ИндексКартинки = 0; 
    Иначе
        // Устанавливаем индекс второй картинки
        Стр.ИндексКартинки = 1;
    КонецЕсли;
КонецЦикла;

Способ 2. Использование свойства «Картинка строк»

Если мы хотим сэкономить место в таблице и выводить иконку в самом начале строки (в служебной колонке), воспользуемся встроенным свойством самой таблицы. Выясним, как это работает:

В этом случае отдельная колонка с картинкой на форме не потребуется — иконка появится в левой части таблицы автоматически. Стоит отметить, что похожие механизмы вывода картинок часто применяются и для динамических списков, хотя и имеют свои нюансы реализации.

Способ 3. Условное оформление формы

Рассмотрим наиболее современный и декларативный метод, который позволяет избежать написания циклов. Условное оформление работает автоматически при изменении данных.

Процесс настройки выглядит следующим образом:

  1. Перейдем на закладку Условное оформление в редакторе формы.
  2. Добавим новый элемент оформления.
  3. В Оформлении выберем параметр Картинка и укажем нужную иконку из библиотеки.
  4. В Условии пропишем логику, например: Объект.ТЧ.Метка Равно Истина. По такой же логике часто реализуется визуальный флажок в динамическом списке.
  5. В Оформляемых полях выберем колонку, в которой должна отображаться картинка.

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

Способ 4. Динамическая загрузка через Временное хранилище

Если нам нужно отображать уникальные картинки (например, фото товаров), которые хранятся в базе как двоичные данные, алгоритм будет другим. Иногда задача усложняется, и требуется вывод картинок по внешним ссылкам, чтобы не хранить тяжелые файлы внутри базы данных. В общем случае схема работы такова:

Посмотрим на пример реализации динамической загрузки:


АдресКартинки = ПоместитьВоВременноеХранилище(ДанныеФайла, УникальныйИдентификатор);
НоваяСтрока.СсылкаНаКартинку = АдресКартинки;

Таким образом, выбор метода зависит от вашей задачи: для простых статусов идеально подходит Условное оформление или Индексы коллекций. Если же вы хотите максимально кастомизировать интерфейс, вы можете добавить дополнительную информацию и иконки в списки с помощью расширений, а для работы с файлами — использовать Временное хранилище.

← На главную