Как вывести картинку или галочку в ячейку табличного документа 1С?

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

При разработке печатных форм и отчетов часто требуется вывести графическую отметку (например, флажок или плюс/минус в зависимости от значения типа Булево). Разберем, как устроена работа со свойством ячейки ПараметрКартинки, почему оно не нарезает картинки-коллекции по числовому индексу, и рассмотрим наиболее надежные способы вывода значков в ТабличныйДокумент.

Особенности работы свойства ПараметрКартинки

Выясним причину, по которой указание числа в параметре картинки не выбирает отдельный значок из коллекции. В платформе 1С свойство ячейки ПараметрКартинки предназначено исключительно для указания имени параметра области, через который в ячейку динамически передается готовый объект Картинка (или двоичные данные), а не числовой номер иконки.

Важное ограничение: механизм автоматической нарезки картинок-коллекций по числовому индексу (как это реализовано для таблиц управляемых форм через свойство ИндексКартинки) в ячейках объекта ТабличныйДокумент не поддерживается. Если в ячейку поместить составную картинку-коллекцию, платформа отобразит ее целиком как единый графический объект.

Проанализируем проверенные и удобные способы решения задачи вывода отметок.

Способ 1. Динамическая подстановка готовой картинки из библиотеки

Если макет требует именно графическое изображение, создадим в ветке конфигурации «Общие картинки» отдельные изображения для каждого состояния (например, для состояний «Истина» и «Ложь»).

Разберем порядок настройки по шагам:

  1. В макете выделим ячейку и в палитре свойств найдем поле ПараметрКартинки.
  2. Укажем имя параметра, например, ПечКартинка.
  3. В программном коде заполнения макета передадим нужное изображение из состава конфигурации:

Если Выборка.Отметка Тогда
    ОбластьСтрока.Параметры.ПечКартинка = БиблиотекаКартинок.ФлажокВключен;
Иначе
    ОбластьСтрока.Параметры.ПечКартинка = БиблиотекаКартинок.ФлажокВыключен;
КонецЕсли;

Если при ложном значении ячейка должна оставаться пустой, передадим пустой объект картинки:


ОбластьСтрока.Параметры.ПечКартинка = ?(Выборка.Отметка, БиблиотекаКартинок.ФлажокВключен, Новый Картинка());

Способ 2. Вывод символов Юникода (универсальный метод)

Для вывода простых флажков и галочек часто удобнее отказаться от хранения графических файлов и использовать встроенные символы Юникода через функцию платформы Символ(). Данный метод работает с базовыми системными шрифтами (Arial, Tahoma) и корректно сохраняется в PDF без использования специализированных шрифтов вроде Wingdings.

Посмотрим на распространенные коды символов:

  1. Символ(9745) — квадратик с галочкой (☑)
  2. Символ(9744) — пустой квадратик (☐)
  3. Символ(9746) — квадратик с крестиком (☒)
  4. Символ(10004) или Символ(10003) — галочка (✔ / ✓)

В ячейке макета установим тип заполнения Параметр (например, СимволОтметки) и заполним его в коде:


ОбластьСтрока.Параметры.СимволОтметки = ?(Выборка.Выполнено, Символ(9745), Символ(9744));

Способ 3. Использование встроенного элемента управления «Флажок»

Рассмотрим еще один встроенный механизм платформы — превращение ячейки в интерактивный или статический чекбокс:

  1. В макете выделим ячейку и откроем ее свойства.
  2. Установим флаг Содержит значение в значение Истина.
  3. В поле Тип значения укажем Булево.
  4. В свойстве Элемент управления выберем Флажок.

При формировании печатной формы достаточно присвоить значение ячейке через свойство Значение соответствующего параметра:

ОбластьСтрока.Параметры.ЯчейкаФлажка = Выборка.ПризнакАктивности;

Способ 4. Программное добавление через коллекцию Рисунки

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

Посмотрим на пример размещения картинки:


Рисунок = ТабличныйДокумент.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
Рисунок.Картинка = БиблиотекаКартинок.ОтметкаВыполнено;
Рисунок.Расположить(ТабличныйДокумент.Область("R5C2:R5C2"));

Таким образом, для вывода значков в табличный документ рекомендуется использовать либо передачу отдельных картинок через ПараметрКартинки, либо стандартные символы Юникода, не перегружающие макет лишними ресурсами.

← На главную