Выделение ячеек цветом: условное оформление в 1С 8.3
Содержание
Выделить ячейку цветом в 1С можно по-разному, и первая развилка — разовая это правка или правило «подсвечивать по условию». Часто пытаются раскрасить готовый отчёт вручную, а на следующем формировании цвет пропадает: ручная заливка не сохраняется в алгоритме. Для повторяемой подсветки нужно либо условное оформление, либо код.
Коротко по всем способам: вручную красят заливкой в панели форматирования табличного документа; в отчёте на СКД — через вкладку Условное оформление; в журналах и списках — через Настроить список; из своего кода — через свойство ЦветФона области и объект Новый Цвет(R, G, B). Ниже разберём каждый путь с точными шагами и примерами.
Настроить список → вкладка Условное оформление.Область.ЦветФона на встроенном языке через Новый Цвет(R, G, B).Чем отличается ручная заливка от правила по условию
Разница принципиальная, и она определяет выбор способа.
- 🖌️ Ручная заливка — это свойство конкретной ячейки в конкретном табличном документе. Пока документ открыт, цвет виден; пересформировали отчёт — цвет исчез, потому что документ построился заново.
- 🎯 Условное оформление — это правило: «если значение удовлетворяет условию, применить такой-то цвет». Правило хранится в настройках отчёта или списка и срабатывает каждый раз автоматически.
- ⚙️ Программное выделение — вы сами в коде присваиваете цвет области. Нужно, когда условие сложное или документ собирается обработкой, а не стандартным механизмом.
Для цвета в 1С используется объект Цвет. Задать его можно тремя способами — выбор зависит от того, нужен точный оттенок или совместимость с темой оформления:
| Способ | Пример | Когда применять |
|---|---|---|
Новый Цвет(R, G, B) | Новый Цвет(255, 199, 206) | нужен конкретный оттенок, значения 0–255 |
WebЦвета | WebЦвета.Красный | хватает базового набора именованных цветов |
ЦветаСтиля | ЦветаСтиля.ЦветФонаПоляВвода | цвет должен подстраиваться под тему платформы |
Для подсветки «отрицательное — красным» удобнее Новый Цвет: подбираете мягкий оттенок, который не режет глаза в большой таблице. Яркий чистый красный Новый Цвет(255, 0, 0) на половину отчёта смотрится агрессивно.
Ручная заливка ячеек в табличном документе
Подходит, когда нужно подкрасить ячейки в макете печатной формы при разработке или в уже сформированном документе «для себя».
- Выделите мышью нужную ячейку или диапазон (зажав
Ctrl, можно выбрать несколько несмежных областей). - На панели форматирования над документом нажмите стрелку рядом с кнопкой заливки (значок ведёрка с краской) и выберите цвет из палитры либо откройте полный выбор через
Другие цвета. - Там же рядом настраивается цвет текста (буква с цветной полосой) и рамка ячеек.
Если панели форматирования не видно, в конфигураторе при редактировании макета она включается через меню Таблица, а свойства выделенной ячейки (в том числе ЦветФона) доступны в палитре свойств.
Для макета печатной формы цвет, заданный в конфигураторе, становится частью шаблона: он появится при каждой печати документа. А вот заливка, сделанная в уже готовом результате отчёта в режиме 1С:Предприятие, живёт только до следующего формирования.
У ручной заливки всё же есть своя ниша. Если нужно разово пометить несколько строк перед тем, как отправить отчёт коллеге или в банк, — выделили, залили, сохранили результат в файл. Цвет сохранится и в формате табличного документа (.mxl), и при сохранении в Excel: получатель увидит ровно то, что вы подкрасили. Для постоянной же подсветки по значению этот путь не годится — придётся повторять заливку после каждого пересчёта.
Если задача — чтобы ячейка подсвечивалась по значению (например, отрицательные суммы красным), ручная заливка не подходит в принципе. Нужно условное оформление — о нём ниже.
Условное оформление в отчёте на СКД
Это основной способ для отчётов. Система компоновки данных (СКД) умеет красить ячейки по условию без единой строки кода.
Где настраивается. Откройте отчёт, нажмите Настройки и переключите форму настроек в расширенный (полный) вид — тогда станут видны все вкладки, включая Условное оформление.
Дальше добавляете элемент оформления:
- На вкладке
Условное оформлениенажмитеДобавить— появится новая строка с тремя колонками. - В колонке Оформление выберите, что менять: откройте форму и поставьте цвет в поле
Цвет фона(илиЦвет текста,Шрифт— можно сразу несколько свойств). - В колонке Условие задайте правило: поле, вид сравнения и значение. Например, поле
Остаток, сравнениеМеньше, значение0. - В колонке Оформляемые поля укажите, к каким колонкам применить цвет. Оставите пустым — оформление применится ко всей строке.
Готово: при каждом формировании отчёта строки или ячейки, подходящие под условие, окрасятся сами.
Разбор на примере. Нужно в отчёте по взаиморасчётам подсветить долги красным. Порядок такой:
- Открыли отчёт, нажали
Настройки, переключили в расширенный вид. - Вкладка
Условное оформление→Добавить. - В
ОформлениепоставилиЦвет фона= светло-красный. - В
Условиевыбрали полеДолг покупателя(или аналогичное поле вашего отчёта), сравнениеБольше, значение0. - В
Оформляемые поляуказали только колонку с суммой долга — тогда подсветится ячейка, а не вся строка.
Сформировали отчёт — ячейки с положительным долгом стали красными. В колонке Представление можно задать своё название правила, чтобы в длинном списке условий было понятно, что оно делает.
Несколько условий. Чтобы «отрицательные — красным, нулевые — серым, крупные — зелёным», добавьте три отдельных элемента оформления. Порядок имеет значение: если две строки правил подходят под одну ячейку, применится та, что выше.
Диапазон значений. Для условия «от и до» добавьте в одном элементе сразу два отбора через И: Сумма Больше или равно 100000 и Сумма Меньше 500000.
Если отчёт типовой и настройки хочется сохранить для коллег — сохраните их как вариант отчёта через Ещё → Сохранить вариант.
Подсветка строк в журналах и списках
Динамические списки — журналы документов, списки справочников, формы со списком — поддерживают то же условное оформление. Классика: подсветить просроченные заказы или непроведённые документы.
- В форме списка нажмите
Ещё→Настроить список(в некоторых формах команда называетсяНастроить списоксразу в менюЕщё). - Перейдите на вкладку
Условное оформление. - Добавьте элемент так же, как в отчёте: оформление (цвет фона), условие (например,
Проведён Равно Нет) и при необходимости оформляемые поля.
После закрытия настройки список перекрасится сразу. Настройка привязана к конкретной форме у конкретного пользователя — у других она не появится, если не включена на уровне конфигурации.
Частые сценарии подсветки в списках:
- 🔴 непроведённые документы — условие
Проведён Равно Нет; - 🟡 документы на крупную сумму — условие
Сумма документа Больше или равнои порог; - 🔵 заказы за конкретного ответственного — условие по полю
Ответственный.
Условие можно строить по реквизитам документа, которые есть в списке. Если нужного поля в условии нет, добавьте его в состав колонок списка — тогда оно станет доступно и для отбора, и для оформления.
Программное выделение цвета на встроенном языке
Когда документ собирается обработкой или условие слишком хитрое для СКД, цвет задают в коде. Работаем со свойством ЦветФона области табличного документа.
Адресовать область можно по имени или по номерам строки и колонки:
Макет = ПолучитьМакет("Макет");
// по имени области
Область = Макет.Область("Шапка");
// по координатам: ячейка в строке 2, колонке 3
ЯчейкаR2C3 = Макет.Область(2, 3, 2, 3);
ЯчейкаR2C3.ЦветФона = Новый Цвет(255, 255, 153); // мягкий жёлтый
ЯчейкаR2C3.ЦветТекста = Новый Цвет(192, 0, 0); // тёмно-красный
Подсветка по условию при выводе строк выглядит так:
Для Каждого СтрокаДанных Из ТаблицаЗначений Цикл
ОбластьСтроки = Макет.ПолучитьОбласть("Строка");
ОбластьСтроки.Параметры.Заполнить(СтрокаДанных);
Если СтрокаДанных.Остаток < 0 Тогда
ОбластьСтроки.Область("Остаток").ЦветФона = Новый Цвет(255, 199, 206);
КонецЕсли;
ТабДок.Вывести(ОбластьСтроки);
КонецЦикла;
Новый Цвет принимает три числа от 0 до 255 — доли красного, зелёного и синего. Значение больше 255 вызовет ошибку. Если лень подбирать числа, берите готовые имена из WebЦвета или цвета, зависящие от темы платформы, из ЦветаСтиля.
Вместе с фоном у области меняются и другие свойства оформления: ЦветТекста для цвета шрифта и Шрифт — чтобы, например, сделать подсвеченные цифры жирными. Так подсветка становится заметнее даже при чёрно-белой печати.
Тот же приём работает и для динамического списка на форме: в обработчике ПриПолученииДанныхНаСервере можно добавлять элементы условного оформления к настройкам списка программно. Но для простых правил это избыточно — быстрее настроить вручную через Настроить список.
Правьте цвет в коде только у области, которую сами создали или получили из макета. Менять оформление ячеек произвольного чужого табличного документа «на лету» — путь к трудноуловимым расхождениям между тем, что на экране, и тем, что уходит в печать.
Где подсветка работает без доработок
Условное оформление доступно пользователю в любой типовой конфигурации на управляемых формах — БП 3.0, ЗУП 3.1, УТ 11, ERP, Комплексная автоматизация. Отдельно включать ничего не нужно: отчёты построены на СКД, а списки — динамические, и оба механизма уже умеют красить по условию.
- 📊 В отчётах —
Настройки→ расширенный вид → вкладкаУсловное оформление. Работает в оборотно-сальдовой ведомости, анализе счёта, ведомостях по взаиморасчётам. - 🧰 В универсальном отчёте раскраска особенно удобна: вы сами выбираете таблицу, поля и условие, а затем подсвечиваете нужные значения — хоть остатки на складе, хоть расхождения в учёте.
- 📋 В списках —
Настроить списокв любом журнале документов или списке справочника.
Исключение одно: если отчёт сделан на старом макете, а не на СКД (такое встречается в нетиповых разработках), вкладки условного оформления в его настройках не будет. Там останется только ручная заливка готового результата или доработка отчёта программистом.
Частые ошибки при выделении цветом
❌ Раскрасили готовый отчёт вручную — цвет пропал. Ручная заливка не сохраняется в алгоритме. Для повторяемой подсветки нужно условное оформление или код.
❌ Оформление применяется ко всей строке, а нужна одна колонка. Заполните колонку Оформляемые поля — без неё СКД красит всю строку целиком.
❌ Условие не срабатывает. Чаще всего сравнивают поле не с тем типом значения: число сравнивают с пустой строкой, дату — с числом. Проверьте, что в правой части условия значение того же типа, что и поле.
❌ Цвет виден на экране, но не печатается или не выгружается в Excel. Обычно дело в том, что печатается другой макет или другой вариант отчёта. Условное оформление отчёта выгружается в Excel вместе с документом — проверьте, что печатаете именно тот результат, который видите.
❌ Новый Цвет с числом больше 255. Составляющие цвета — строго 0–255. Новый Цвет(300, 0, 0) даст ошибку при выполнении.
❌ Два правила спорят за одну ячейку. Если ячейка подходит под несколько элементов условного оформления, применяется верхний в списке. Переставьте элементы в нужном порядке.
Может ли обычный пользователь выделить ячейку цветом без программирования?
Настройки в отчёте или Настроить список в форме списка, вкладка Условное оформление. Код не нужен.Выгружается ли цвет в Excel и на печать?
Как покрасить только одну колонку, а не всю строку?
Оформляемые поля — укажите в нём конкретную колонку. Если оставить пусто, оформление применится ко всей строке.Как убрать условное оформление?
Условное оформление (в настройках отчёта или через Настроить список), выделите лишний элемент и нажмите Удалить. Для отчёта можно сбросить настройки к стандартным через Ещё → Установить стандартные настройки.