Цвет фона, текста и границ в таблицах 1С: где что настраивается

· 9 мин

Содержание

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

Если смешать эти инструменты, правки «не работают»: человек красит ячейки макета, а перед ним отчёт, который перерисовывается при каждом формировании. Сначала определите тип таблицы, потом берите нужный способ.

Что красимГде настраиваетсяКогда цвет меняется
Печатная форма, макетКонфигуратор, макет, свойства ячеекВсегда один и тот же
Отчёт на СКДНастройки варианта, условное оформлениеПо условию, при каждом формировании
Список, табличная часть в формеУсловное оформление формы или список в режиме пользователяПо условию, на лету
Любой табличный документ из кодаСвойства области: цвет фона, цвет текстаКак задано в процедуре

С чего начать: определите тип таблицы

Три быстрых признака.

  • 📄 Таблица открывается кнопкой «Печать», есть кнопки «Сохранить», «Отправить по почте»: это табличный документ, источник — макет.
  • 📊 Вверху кнопка «Сформировать», настройки отчёта, группировки: это отчёт, чаще всего на СКД.
  • 🗂 Строки можно выделять, добавлять, сортировать по колонкам: это таблица управляемой формы (список или табличная часть).

Раскрашивать «по просьбе пользователя» удобнее всего условным оформлением. Постоянный цвет без условий стоит оставлять только для шапок и итогов.

Цвет ячеек в макете печатной формы

Макеты печатных форм лежат в конфигураторе: у документа или обработки откройте ветку «Макеты», выберите нужный и дважды щёлкните. Откроется табличный редактор, похожий на электронную таблицу.

Заливка и цвет шрифта

  1. Выделите ячейки или целые строки: мышью, либо щелчком по номеру строки или заголовку колонки.
  2. Откройте палитру свойств (меню «Вид», пункт со свойствами, либо клавиша F4).
  3. В группе, отвечающей за внешний вид, найдите «Цвет фона» и «Цвет текста».
  4. Выберите значение из окна выбора цвета.

То же можно сделать кнопками на панели редактора макета: заливка и цвет шрифта выводятся рядом с выбором шрифта.

Границы

Границы настраивают отдельно от заливки: у ячеек есть свойства «Граница» (толщина и тип линии) и отдельные сторонние линии: слева, справа, сверху, снизу. Для сетки у всей таблицы выделите область и включите все четыре стороны. Для «зебры» заливайте через строку.

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

Пользовательский макет без конфигуратора

В большинстве типовых конфигураций есть «Конструктор печатных форм» и редактор макетов печати в режиме 1С:Предприятие: открывается из формы документа командой печати, где вы выбираете форму и жмёте на кнопку редактирования макета. Название пункта зависит от конфигурации, поэтому ищите его рядом с кнопкой печати.

Минус этого способа: цвет задан жёстко. Если нужно «красное, когда долг больше нуля», здесь не получится — только код или СКД.

Условное оформление в отчётах на СКД

В отчёте на компоновке данных цвет задают через условное оформление: правило из трёх частей. Что красим (поля), когда красим (условие) и как (цвет, шрифт).

Пошагово в пользовательском режиме

  1. Откройте отчёт и нажмите «Настройки» (в части конфигураций кнопка называется «Ещё» → «Изменить вариант»).
  2. Перейдите на закладку «Условное оформление».
  3. Добавьте элемент кнопкой «Добавить».
  4. В поле «Оформление» выберите параметры: «Цвет фона», «Цвет текста», «Шрифт».
  5. В поле «Отбор» задайте условие: например, «Остаток меньше 0».
  6. В поле «Поля» укажите, какие колонки красить. Если оставить пустым, закрасится вся строка.
  7. Сформируйте отчёт и проверьте результат.

Пример: подсветить склады, где остаток меньше минимального. Отбор: Остаток «меньше» Минимальный остаток. Оформление: цвет фона светло-красный, поля — «Остаток» и «Склад».

Пошагово в конфигураторе

В схеме компоновки данных условное оформление задают на закладке «Настройки», в варианте. Это значение по умолчанию для всех, кто откроет отчёт. Пользователь добавит свои правила поверх.

Если правило не срабатывает, смотрите по порядку:

  • ✅ Условие проверяется по полю, которое есть в отчёте. Поле, отключённое из выбранных, в условии не работает .
  • ✅ Правило стоит ниже конфликтующего: при совпадении побеждает то, что ниже, поэтому порядок элементов важен.
  • ✅ Для итогов и группировок условие нужно либо ограничить использованием, либо проверить отдельно: строка итога содержит агрегированные значения.

Раскраска списков и табличных частей в управляемой форме

В управляемых формах таблицы тоже красятся условным оформлением. Работает оно на уровне формы, не макета.

В конфигураторе

Откройте форму, в дереве элементов выберите форму целиком и найдите закладку «Условное оформление». Добавьте элемент: задайте поля (колонки), условие и параметры оформления. Правило подхватят все открытия формы.

В режиме 1С:Предприятие

В списках есть пункт настройки списка (кнопка «Ещё» над таблицей), в нём вкладка «Условное оформление». Пользователь может красить сам, и это сохраняется в его настройках. Остальным пользователям цвет не передаётся: ничего не ломается, но и не видно.

Из кода

Типовая задача: красить строки табличной части, где сумма превышает порог. Процедура добавляется в ПриСозданииНаСервере:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеОформления = Элемент.Поля.Элементы.Добавить();
	ПолеОформления.Поле = Новый ПолеКомпоновкиДанных("СписокСумма");

	Отбор = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	Отбор.ЛевоеЗначение  = Новый ПолеКомпоновкиДанных("Список.Сумма");
	Отбор.ВидСравнения   = ВидСравненияКомпоновкиДанных.Больше;
	Отбор.ПравоеЗначение = 100000;

	Элемент.Оформление.УстановитьЗначениеПараметра("ЦветФона", Новый Цвет(255, 230, 230));
	Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", Новый Цвет(160, 0, 0));

КонецПроцедуры

Здесь СписокСумма — имя поля формы (элемент «Сумма» таблицы «Список»), а Список.Сумма — имя поля в источнике данных. Для табличной части они будут другими, например ТоварыЦена и Объект.Товары.Цена.

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

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

Из кода: табличный документ и свойства области

Когда вы формируете печатную форму или любую выгрузку программно, цвет задают у области ячеек:

Область = ТабДок.Область("R5C2:R5C6");
Область.ЦветФона   = Новый Цвет(221, 235, 247);
Область.ЦветТекста = Новый Цвет(0, 0, 0);
Область.Шрифт      = Новый Шрифт(Область.Шрифт, , , Истина);

Адрес R5C2:R5C6 — пятая строка, колонки со второй по шестую. Для именованной области из макета проще обратиться к ней по имени после вывода: Область = ТабДок.Области.Шапка;.

Три практичных приёма:

  • 🎨 Красьте после вывода всех данных: так не потеряете цвет при перерисовке.
  • 🎨 Для чередования строк считайте остаток от деления номера строки на два и красьте нечётные.
  • 🎨 Границы задаются методом Обвести у области, параметры — линии для каждой стороны.

Палитра, свои оттенки и цвета стиля

В окне выбора цвета есть вкладки с цветами стиля, веб-цветами и цветами Windows, а свой оттенок задаётся значениями красного, зелёного и синего (от 0 до 255). Запишите числа удачных оттенков: в коде они понадобятся, а выбирать «на глаз» второй раз неудобно.

В коде цвет задают тремя способами.

СпособПримерКогда подходит
Из RGBНовый Цвет(255, 230, 230)Нужен точный оттенок
Веб-цветWebЦвета.КрасныйБыстро, стандартные цвета
Цвет стиляЦветаСтиля.ПоясняющийТекстЦвет должен подстроиться под оформление программы

Для форм лучше брать цвета стиля: они остаются читаемыми, если администратор или пользователь сменит оформление. Жёсткий RGB-цвет, подобранный под светлый фон, на тёмном стиле выглядит плохо.

Не красьте в яркий красный фон и красный текст одновременно. Фон делайте светлым, текст — тёмным оттенком того же цвета.

Печать и выгрузка в Excel

Что происходит с цветом, когда таблицу выводят из программы.

  • 🖨 Табличный документ (печатная форма, отчёт) печатается с заливкой, если принтер цветной. На чёрно-белом принтере цвет превращается в серый, и светло-жёлтый фон может пропасть. Для печати берите контрастные заливки.
  • 📥 При сохранении в Excel (xlsx) цвет фона и текста переносится вместе с ячейками.
  • 🗂 Форма списка, окрашенная условным оформлением, при выводе списка в табличный документ (команда «Вывести список ») цвет теряет: он существует только на экране формы.
  • 📊 Цвета отчёта на СКД при выгрузке остаются, если оформление задано в настройках отчёта, а не в форме.

Если заказчик просит «чтобы в Excel тоже было красным», красьте не форму, а программно в табличном документе. Для бумаги проверьте предпросмотр: на нём видно, как лягут заливки и границы.

Готовые рецепты раскраски

Три задачи, которые просят чаще всего.

Отрицательные числа красным

Условие: поле «меньше» 0. Оформление: цвет текста тёмно-красный. Фон не трогайте, иначе при печати на сером принтере число сольётся с заливкой. Правило полезно в отчётах по остаткам, оборотам и задолженности.

Просроченные строки

Условие: «Срок оплаты» «меньше» текущей даты и «Статус» «не равно» «Оплачено». Для сравнения с текущей датой в отчёте используют параметр компоновки, в который подставляют ТекущаяДата() при формировании. Прямо в условие функцию не пишут. Окрасьте всю строку в светло-оранжевый, а срок — дополнительно жирным шрифтом.

Зебра через одну строку

В отчётах СКД чередование строк даёт стиль оформления макета: в настройках варианта у группировки или таблицы есть выбор макета оформления, среди них есть варианты с чередованием. В табличном документе из кода заливайте нечётные строки в цикле, как описано выше. Для списка управляемой формы чередование включено в стиле оформления программы, отдельно его делать не нужно.

Не превращайте таблицу в светофор. Если в одной таблице три-четыре разных цвета, глаз перестаёт различать смысл. Один акцентный цвет для отклонений и один нейтральный для шапок читаются лучше.

Если цвет не меняется

Типичные причины, от частых к редким.

  1. Правило условного оформления ниже другого. Порядок элементов важен: у последнего совпавшего приоритет.
  2. Условие не выполняется. Проверьте на конкретной строке: сравнение «больше» не сработает на значении, равном порогу.
  3. Цвет перебит. Если у колонки задан цвет фона в свойствах, а правило красит текст, видно будет оба параметра. Если правило красит тот же параметр, побеждает условное оформление.
  4. Правило привязано не к тому полю. В форме поле — это элемент формы, в отчёте — поле компоновки. Имена отличаются.
  5. Изменили типовой макет. После обновления конфигурации правка пропала. Переносите в расширение.
  6. Старый кэш формы. Перезапустите клиент, если форма была открыта до изменений.

Частые вопросы

Можно ли покрасить строку целиком, а не одну ячейку?
Да. В условном оформлении оставьте поле «Поля» пустым, тогда цвет применится ко всей строке. В коде не добавляйте элементы в коллекцию полей оформления.
Почему цвет есть на экране, но пропал при печати списка?
Условное оформление форм существует только на экране. Печатная форма формируется из макета, поэтому цвет нужно задавать в нём или программно.
Как вернуть цвет по умолчанию?
В свойстве цвета выберите значение «Авто» (или очистите значение) либо удалите правило условного оформления.
Можно ли красить по значению ячейки, как в Excel?
Да. Условное оформление работает по той же идее: условие проверяется по значению поля, результат — цвет.
Цвет меняется только у меня, у коллег нет. Почему?
Скорее всего, правило создано в пользовательских настройках списка или отчёта. Чтобы оно было у всех, добавьте его в конфигураторе, в форму или в схему компоновки.