Отчеты и Аналитика · 8 мин
Как выделить цветом ячейку в 1С
Как выделить цветом ячейку в 1С: условное оформление отчётов СКД, раскраска табличных документов и динамических списков. Пошаговые инструкции и примеры кода.
Выделение ячеек цветом в 1С помогает быстрее читать отчёты, замечать просроченные задолженности, отрицательные остатки и другие важные значения. Способ зависит от того, где находится ячейка: в отчёте на СКД, в табличном документе, в динамическом списке или в табличной части документа.
Для большинства типовых задач программирование не требуется: отчёты на системе компоновки данных раскрашиваются через условное оформление прямо в режиме пользователя. Для табличных документов и нестандартных форм понадобится код на встроенном языке.
Ниже разобраны все основные сценарии: от простой настройки в отчёте до программной раскраски ячеек при выводе печатной формы.
Как выделить ячейку цветом в отчёте на СКД через условное оформление
Большинство отчётов в типовых конфигурациях (1С:Бухгалтерия, Управление торговлей, ERP) построены на системе компоновки данных. В них цвет ячейки настраивается пользователем без изменения конфигурации.
Откройте отчёт, нажмите кнопку «Настройки» (или «Ещё → Изменить вариант»). Перейдите на вкладку «Условное оформление» и добавьте новый элемент. Заполните три части: условие отбора, оформление (цвет фона или шрифта) и список оформляемых полей.
Например, чтобы подсветить отрицательные остатки красным, задайте условие «Остаток меньше 0», выберите в оформлении параметр «Цвет фона» и укажите поле «Остаток». После нажатия «Завершить редактирование» и переформирования отчёта ячейки с подходящими значениями окрасятся автоматически.
- 1Сформируйте отчёт и откройте «Настройки»
- 2Перейдите на вкладку «Условное оформление» и нажмите «Добавить»
- 3Задайте условие отбора, например «Сумма меньше 0»
- 4В разделе «Оформление» выберите цвет фона или шрифта
- 5Укажите оформляемые поля — иначе раскрасится вся строка
- 6Сохраните настройки и переформируйте отчёт
Как раскрасить табличный документ программно
Если вы разрабатываете печатную форму или отчёт с выводом в табличный документ, цвет ячейки задаётся через свойство ЦветФона области. Это делается либо в макете заранее, либо динамически при выводе.
Для постоянной подсветки (например, шапки таблицы) откройте макет в конфигураторе, выделите ячейку и в палитре свойств установите «Цвет фона». Значение сохранится в макете и будет применяться при каждом выводе.
Для динамической раскраски после вывода области обратитесь к нужной ячейке табличного документа и установите цвет программно:
Область = ТабДок.Область("R" + НомерСтроки + "C4");
Если Сумма < 0 Тогда
Область.ЦветФона = WebЦвета.СветлоКрасный;
КонецЕсли;
Цвет можно задать через перечисление WebЦвета, WindowsЦвета или конструктором Новый Цвет(255, 200, 200) с компонентами RGB. Учтите, что обращение по адресу вида R1C1 работает только после того, как область реально выведена в табличный документ.
Область = ТабДок.Область("R5C3");
Область.ЦветФона = Новый Цвет(255, 230, 230);
Область.ЦветТекста = WebЦвета.ТемноКрасный;Как выделить цветом строки и ячейки в динамическом списке
Журналы документов и списки справочников в управляемых формах построены на динамических списках. Здесь раскраска выполняется через условное оформление формы — в конфигураторе или программно в модуле формы.
В конфигураторе откройте форму списка, в палитре свойств формы найдите «Условное оформление» и добавьте элемент: условие (например, «Проведен равно Нет»), оформление (цвет фона или текста) и поля, к которым оно применяется. Если поле не указать, подсветится вся строка таблицы.
В типовых конфигурациях пользователю часто доступна похожая настройка через «Ещё → Настроить список» — там можно добавить условное оформление без доработки конфигурации. Это удобно, чтобы выделять, например, непроведённые документы или контрагентов из конкретной группы.
Как подкрасить ячейки табличной части документа
Табличные части на управляемой форме тоже оформляются через условное оформление формы. Механика та же, что у динамического списка, но условие проверяется по полям строки табличной части, например «Объект.Товары.Цена больше 10000».
Программно это делается в обработчике ПриСозданииНаСервере: создаётся элемент УсловноеОформление формы, в него добавляются отбор, параметр оформления и поле. Такой подход используют, когда подсветка должна зависеть от нескольких условий или от данных, недоступных в конфигураторе напрямую.
Сравнение способов выделения цветом
Выбор метода зависит от объекта и от того, кто выполняет настройку — пользователь или разработчик. Таблица ниже помогает быстро определить подходящий вариант.
| Объект | Способ | Нужен код | Кому доступно |
|---|---|---|---|
| Отчёт на СКД | Условное оформление в настройках отчёта | Нет | Пользователю |
| Табличный документ | Макет или свойство ЦветФона | Да (для динамики) | Разработчику |
| Динамический список | Условное оформление формы или «Настроить список» | Нет / да | Пользователю или разработчику |
| Табличная часть документа | Условное оформление формы | Да | Разработчику |
Сравнение подходов
Подходит пользователю без прав разработчика; ограничение — работает только в отчётах на СКД
Подходит для статичной подсветки печатных форм; не реагирует на значения данных
Гибкая раскраска по любым условиям при выводе; требует доработки кода
Подсветка списков и табличных частей на экране; не переносится в печать и Excel
Как проверить результат и исправить типичные проблемы
После настройки переформируйте отчёт или переоткройте форму и проверьте ячейки, которые точно должны попасть под условие. Если подсветка не сработала, чаще всего причина в пустом списке оформляемых полей, неверном виде сравнения или несовпадении типа данных в отборе.
Отдельная частая ситуация — условие срабатывает, но цвет не виден из-за другого элемента условного оформления с более высоким приоритетом. Элементы применяются сверху вниз, поэтому порядок в списке имеет значение: более поздний элемент может перекрыть ранее заданный цвет.
При программной раскраске табличного документа проверьте, что обращение к области происходит после её вывода, а не до. Попытка установить цвет несуществующей области приведёт к ошибке исполнения.
Как проверить результат
Подсвечена заданным цветом
Цвет не изменился — проверьте условие и поля
Цвет виден при печати
Цвет есть только на экране — он задан оформлением формы, а не макетом
Красятся только строки, попадающие под условие
Подсвечено всё — условие пустое или неверное
Часто задаваемые вопросы
Можно ли раскрасить ячейки в отчёте без прав разработчика?
Да, если отчёт построен на СКД. Откройте «Настройки», вкладку «Условное оформление», задайте условие, цвет и поля. Настройку можно сохранить как личную или для всех пользователей при наличии соответствующих прав.
Почему красится вся строка, а не одна ячейка?
Потому что в элементе условного оформления не заполнен список оформляемых полей. Добавьте туда конкретную колонку — тогда цвет применится только к её ячейкам.
Перенесётся ли цвет при сохранении отчёта в Excel?
Цвета, заданные в макете или табличном документе, обычно сохраняются при выгрузке. Цвета условного оформления экранных форм списков и табличных частей в файл не переносятся.
Как задать произвольный оттенок, которого нет в палитре?
Программно — через конструктор Новый Цвет(Красный, Зелёный, Синий) со значениями от 0 до 255. В диалоговых настройках выбирайте ближайший доступный цвет из палитры.
Можно ли раскрасить ячейки по нескольким условиям одновременно?
Да. Создайте несколько элементов условного оформления — по одному на каждое условие. Учитывайте порядок: при пересечении условий приоритет имеет элемент, расположенный ниже в списке.
Работает ли условное оформление в обычных (неуправляемых) формах?
В обычных формах механизм условного оформления формы недоступен. Раскраска выполняется программно через обработчики вывода строк табличного поля, например ПриВыводеСтроки, где задаётся ОформлениеСтроки.ЦветФона.
Что важно запомнить
В отчётах СКД и динамических списках цвет ячейки задаётся условным оформлением без кода, в табличных документах — свойством ЦветФона области. Всегда указывайте оформляемые поля, проверяйте порядок элементов и помните, что экранная подсветка не переносится в печать.