Оформление данных и форм в 1С 8.3: способы задать стиль

· 9 мин

Содержание

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

Ниже разбираю каждый способ: где он находится, что им можно, а что нельзя, и как не превратить базу в радугу, которая мешает работать. Примеры даю для платформы 8.3 с интерфейсом «Такси».

С чего начать: какой механизм выбрать

Прежде чем менять цвета, определитесь, что именно вы оформляете. От этого зависит инструмент — универсального «добавить стиль» в 1С нет.

  • 🎨 Строки списка или ячейки отчёта по условию (просроченные — красным, проведённые — серым) → условное оформление.
  • 🧩 Отдельное поле или надпись на форме из кода → свойства ЦветТекста, ЦветФона, Шрифт элемента формы.
  • 🖨️ Печатная форма, счёт, акт → оформление ячеек в макете.
  • 🌈 Единая палитра и шрифты на всю конфигурацию → элементы стиля в ветке «Стили».
Что нужно оформить?

Дальше — каждый механизм подробно.

Условное оформление списков и динамических таблиц

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

В режиме 1С:Предприятие откройте список (например, журнал документов ), затем команду Ещё → Настроить список в командной панели. В открывшемся окне перейдите на закладку Условное оформление и нажмите Добавить. Элемент оформления состоит из трёх частей:

  1. Оформление — что меняем: цвет текста, цвет фона, шрифт, обводку.
  2. Условие — когда применяем: отбор по значению поля (Проведён = Нет, СуммаДокумента > 100000).
  3. Оформляемые поля — к каким колонкам применяем. Если список пуст — оформление ляжет на всю строку.

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

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

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

Иногда условие нельзя выразить простым отбором — тогда оформление собирают в коде, в обработчике ПриСозданииНаСервере модуля формы. Коллекция УсловноеОформление есть у динамического списка:

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

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

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

// Оформление
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.СерыйВеб);

Здесь WebЦвета — встроенная коллекция веб-цветов, из неё удобно брать готовые оттенки. Такой код выполняется один раз при открытии формы и далее работает сам.

Оформление отчётов на системе компоновки данных

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

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

Типичные задачи по оформлению отчёта:

  • Выделить итоговые строки — условие по полю группировки или Уровень() = 0, оформление: жирный шрифт, серый фон.
  • Покрасить отрицательные суммы красным — условие Остаток < 0, оформление: цвет текста красный.
  • Скрыть служебную колонку в готовом отчёте — параметр «Видимость».

Если пользователь настроил свой вариант отчёта, он может переопределить ваше оформление в пользовательских настройках. Чтобы правило нельзя было отключить, в конфигураторе снимите у него флажок «Пользовательская настройка» (режим использования — «Недоступно»).

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

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

Программное управление цветом и шрифтом в модулях

Когда вид поля должен меняться динамически — в ответ на выбор пользователя или данные, — цвет и шрифт задают прямо из модуля формы. У элементов формы для этого есть свойства.

Основные свойства элемента формы (поля, надписи, группы):

СвойствоЧто задаётПример значения
ЦветТекстацвет символовWebЦвета.Синий
ЦветФоназаливку поляЦветаСтиля.ПолеФонаЦвет
Шрифтгарнитуру, размер, жирностьНовый Шрифт(, , Истина)
РамкаобводкуНовый Линия(ТипЛинииРамки.Сплошная)

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

&НаКлиенте
Процедура СуммаПриИзменении(Элемент)
    Если Объект.Сумма > 100000 Тогда
        Элементы.Сумма.ЦветТекста = WebЦвета.Красный;
    Иначе
        Элементы.Сумма.ЦветТекста = Новый Цвет; // сброс к цвету по умолчанию
    КонецЕсли;
КонецПроцедуры

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

Для цветов берите не «сырые» RGB, а ЦветаСтиля — коллекцию цветов текущего стиля платформы. Тогда поле будет выглядеть одинаково уместно и в светлом, и в другом варианте интерфейса, и вы не получите ядовитый оттенок, выбивающийся из общего вида.

Задавать цвет лучше в обработчиках, которые уже выполняются при открытии и изменении (ПриСозданииНаСервере, ...ПриИзменении), а не создавать ради этого отдельную команду.

Стилизация печатных форм и макетов

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

Откройте макет документа (в дереве объекта — ветка Макеты), выделите ячейку или именованную область и в палитре свойств задайте:

  • Шрифт — гарнитура, размер, жирность, подчёркивание.
  • Цвет текста и Цвет фона — заливку шапки, выделение итогов.
  • Границы — тип и толщину линий, по сторонам ячейки.
  • Горизонтальное/вертикальное положение — выравнивание содержимого.

Если нужно, чтобы шапка счёта была серой, а строка «Итого» — жирной, достаточно один раз оформить эти области в макете — при печати оформление подставится автоматически.

Пара приёмов, которые экономят время:

  • Оформляйте не отдельные ячейки, а именованные области (строка шапки, строка таблицы, подвал). Так проще менять вид и переиспользовать блок при выводе.
  • Чтобы границы таблицы были одинаковыми, задайте их у области-образца строки, а не рисуйте вручную в каждой ячейке.
  • Параметры и расшифровку (переход по двойному щелчку из печатной формы в документ) настраивают там же, в свойствах ячейки, на закладках «Макет» и «Расшифровка».

Когда оформление должно зависеть от данных (например, аннулированный документ печатать с водяным знаком или перечёркнутым), его досоздают в коде при выводе:

Область = ТабДок.Область("СтрокаИтого");
Область.ЦветФона = WebЦвета.СветлоСерый;
Область.Шрифт    = Новый Шрифт(Область.Шрифт, , , Истина); // жирный

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

Единая палитра: элементы стиля и вариант интерфейса

Чтобы не прописывать один и тот же синий в десятках форм, в 1С есть общие элементы стиля. Это ответ на запрос «сделать единое оформление» — он же цветовая схема уровня конфигурации.

В конфигураторе откройте ветку Общие → Стили и создайте объект «Стиль». Внутри него описываются элементы трёх видов:

  1. Цвет — именованный оттенок (например, «ЦветПредупреждения»).
  2. Шрифт — гарнитура и размер под конкретную роль (заголовок, примечание).
  3. Рамка — тип линии.

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

Элементы.Статус.ЦветТекста = ЦветаСтиля.ЦветПредупреждения;

Поменяли оттенок в одном месте, в ветке «Стили», — он обновился везде, где на него сослались. Это главный приём, если оформление должно быть системным, а не точечным: не два десятка захардкоженных RGB по формам, а одна правка в палитре.

Отдельно стоит вариант интерфейса — он задаёт общий вид окон. В 1С 8.3 это «Такси», «Такси с панелью разделов слева» и «Формы в закладках». Пользователь переключает вариант в настройках программы, а разработчик задаёт его по умолчанию в свойствах конфигурации (свойство «Вариант интерфейса»). Полноценной смены «тёмной/светлой темы», как в браузере, штатная платформа 8.3 не даёт — цветовую гамму определяет выбранный вариант интерфейса и описанные вами элементы стиля.

Перед внедрением оформления проверьте
Выполнено: 0 / 5

Частые ошибки при оформлении

Собрал промахи, которые встречаются чаще всего и которых нет в шагах выше.

  • Путают условное оформление списка и СКД. Это два разных механизма. Настройка в журнале документов не влияет на отчёт, и наоборот.
  • Правят типовую печатную форму напрямую. При обновлении конфигурации изменения слетают. Решение — расширение конфигурации .
  • Жёстко прописывают RGB-цвет в коде. Форма выбивается из общего вида и плохо смотрится в другом варианте интерфейса. Берите ЦветаСтиля.
  • Забывают закрыть условному оформлению пользовательскую настройку. Пользователь отключает ваше правило галочкой — и «фирменное» выделение исчезает.
  • Перебор с цветом. Пять цветов в одном списке мешают читать данные. Оформление должно выделять исключения (просрочку, ошибки), а не раскрашивать всё.

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

Можно ли покрасить строки списка без программирования?
Да. В режиме 1С:Предприятие откройте список, затем «Ещё → Настроить список → Условное оформление» и задайте условие и цвет мышью. Код не нужен.
Чем условное оформление списка отличается от оформления в СКД?
Это разные механизмы. Список оформляется в настройках динамического списка, отчёт — на закладке «Условное оформление» схемы компоновки данных. Настройки не пересекаются, задавать нужно там, где выводятся данные.
Как вернуть полю цвет по умолчанию после подсветки?
Присвойте свойству пустое значение: Элементы.Поле.ЦветТекста = Новый Цвет;. Платформа подставит штатный цвет текущего стиля. Прописывать чёрный вручную не нужно.
Можно ли сделать тёмную тему в 1С 8.3?
Полноценного переключателя светлой и тёмной темы штатная платформа не даёт. Общий вид определяет вариант интерфейса («Такси», «Формы в закладках») и элементы стиля, которые вы опишете в конфигурации.
Как оформить печатную форму, чтобы правки не слетели при обновлении?
Вносите изменения не в саму типовую конфигурацию, а через расширение конфигурации. Оформление макета в расширении сохраняется при обновлении основной конфигурации.