Как программно изменить цвет ячеек в табличном документе 1С?

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

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

Метод раскраски при выводе данных в табличный документ

Наиболее правильным и интуитивно понятным подходом является изменение оформления ячеек непосредственно в момент формирования табличного документа. В этот момент мы имеем доступ к объекту ОбластьЯчеекТабличногоДокумента, который позволяет динамически настраивать стилевые параметры.

Для реализации логики сравнения значений используем следующий алгоритм. Допустим, у нас есть область ОбластьДетальныхЗаписей, в которую выводятся данные из Выборка. Мы проверяем условие и применяем свойства ЦветФона и ЦветТекста:


Если Выборка.ЗначениеБазы1 <> Выборка.ЗначениеБазы2 Тогда
    ОбластьДетльныхЗаписей.Область(имяОбласти).ЦветФона = WebЦвета.Красный;
    ОбластьДетльныхЗаписей.Область(имяОбласти).ЦветТекста = WebЦвета.Белый;
Иначе
    ОбластьДетльныхЗаписей.Область(имяОбласти).ЦветФона = WebЦвета.Белый;
    ОбластьДетльныхЗаписей.Область(имяОбласти).ЦветТекста = WebЦвета.Черный;
КонецЕсли;

Обратите внимание на параметр имяОбласти. Если вы предварительно задали имена ячеек в макете через свойства (вкладка «Имя» в свойствах ячейки), вы можете обращаться к ним напрямую. Если же имена не заданы, можно воспользоваться адресацией по координатам: "R1C5:R2C5", где R — строка (row), а C — колонка (column).

Использование предварительной подготовки данных

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

  1. Выгрузите все данные в ТаблицаЗначений.
  2. Добавьте дополнительную колонку, например, НужноПодсветить типа Булево.
  3. Заполните эту колонку в цикле обработки ТаблицаЗначений, проверяя все необходимые условия.
  4. При выводе макета в цикле обхода ТаблицаЗначений просто считывайте флаг из этой колонки и применяйте цвет.

Использование условного оформления для гибкости

Если вы разрабатываете отчет на базе КомпоновкаДанных, не стоит забывать про встроенную функциональность Условного оформления. Это более архитектурно верный путь. В настройках отчета (на вкладке «Условное оформление») можно задать правило: если значение ячейки А не равно значению ячейки Б, то применить оформление (фон, шрифт). Это позволяет избежать написания сложного программного кода в модуле объекта и делает логику настройки доступной для изменения в режиме «Предприятие».

Практические рекомендации

Работая с табличными документами, помните о следующих нюансах:

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

← На главную