К статье
Практический материал

Разработка и Конфигурация · 9 мин

Как обратиться к стилю в 1С: цвета, шрифты и элементы стиля

Как обратиться к стилю в 1С: ЦветаСтиля, ШрифтыСтиля, ЭлементыСтиля. Примеры кода, настройка стиля в конфигураторе, типичные ошибки и проверка результата.

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

Основной способ обращения — глобальные свойства ЦветаСтиля, ШрифтыСтиля и ЭлементыСтиля. Например, ЦветаСтиля.ЦветТекстаПоля вернёт цвет, назначенный соответствующему элементу стиля в конфигурации. Это работает как на клиенте, так и на сервере, и не требует создания объектов.

Важно понимать различие двух подходов: абсолютные значения (объект Цвет, Шрифт с явными параметрами) и ссылки на стиль. Первые фиксируют оформление навсегда, вторые подхватывают изменения стиля автоматически. Ниже разобраны оба способа, синтаксис для разных контекстов и типичные ошибки.

Где хранится стиль и как его посмотреть в конфигураторе

Стиль конфигурации находится в дереве метаданных: Общие → Стили. В типовых конфигурациях обычно есть основной стиль (например, «Основной»), внутри которого собраны элементы стиля — именованные цвета, шрифты и рамки: «Цвет текста поля», «Цвет фона кнопки», «Шрифт заголовка» и т.д.

Чтобы узнать точное имя элемента стиля, откройте стиль в конфигураторе и посмотрите колонку «Имя» — именно оно используется в коде после точки: ЦветаСтиля.ЦветТекстаПоля. Отображаемое представление («Цвет текста поля») в коде не используется.

Кроме стилей конфигурации, платформа предоставляет системные элементы стиля, доступные даже если в конфигурации стиль не определён. Имена системных элементов приведены в синтакс-помощнике в описании коллекций ЦветаСтиля и ШрифтыСтиля.

Обращение к цветам стиля

Коллекция ЦветаСтиля возвращает объект типа Цвет. Типичное применение — программное изменение цвета текста или фона элемента формы:

Элементы.СуммаДолга.ЦветТекста = ЦветаСтиля.ЦветОтрицательногоЧисла;

Элементы.НадписьСтатус.ЦветФона = ЦветаСтиля.ЦветФонаПоля;

Если имя элемента стиля известно только в строковой переменной (например, хранится в настройках), используйте обращение через квадратные скобки:

ИмяЭлемента = "ЦветТекстаПоля";

НужныйЦвет = ЦветаСтиля[ИмяЭлемента];

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

Обращение к шрифтам стиля

Аналогично работает коллекция ШрифтыСтиля — она возвращает объект типа Шрифт. Чаще всего это нужно для выделения важных надписей или заголовков:

Элементы.НадписьИтог.Шрифт = ШрифтыСтиля.КрупныйШрифтТекста;

Элементы.ДекорацияВажно.Шрифт = ШрифтыСтиля.ШрифтТекстаПоля;

Обратите внимание: шрифт из стиля — это готовый объект. Если нужно изменить только начертание (например, сделать жирным), не изменяйте полученный объект стиля, а создайте новый шрифт на его основе или задайте абсолютный шрифт:

НовыйШрифт = Новый Шрифт(, , 12, Истина); // размер 12, полужирный

Элементы.Заголовок.Шрифт = НовыйШрифт;

Коллекция ЭлементыСтиля и обращение по имени

Коллекция ЭлементыСтиля — универсальный способ получить любой элемент стиля (цвет, шрифт, рамку) по его имени. Она возвращает значение соответствующего типа:

ЦветОсобогоТекста = ЭлементыСтиля.ЦветОсобогоТекста;

ШрифтЗаголовка = ЭлементыСтиля["ШрифтЗаголовка"];

На практике чаще используют специализированные коллекции ЦветаСтиля и ШрифтыСтиля — они нагляднее и лучше поддерживаются подсказкой в редакторе кода. ЭлементыСтиля полезна, когда тип элемента заранее неизвестен или код строится универсально.

Способы обращения к стилю

ЦветаСтиля.ИмяЭлемента

Самый читаемый вариант для цветов; поддерживается автоподстановка и проверка имени.

ЦветаСтиля[СтроковаяПеременная]

Подходит, когда имя элемента хранится в данных; имя не проверяется конфигуратором, опечатки дают неопределённое значение.

ЭлементыСтиля.ИмяЭлемента

Универсальный доступ к цветам, шрифтам и рамкам; удобен в обобщённом коде.

Новый Цвет(255,0,0)

Абсолютное значение без связи со стилем; при смене стиля конфигурации такой цвет не изменится.

Стиль в условном оформлении и табличных документах

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

В табличном документе цвета и шрифты задаются через свойства области:

Область = ТабДок.Область("R2C3");

Область.ЦветТекста = ЦветаСтиля.ЦветТекстаПоля;

Область.Шрифт = ШрифтыСтиля.КрупныйШрифтТекста;

Учтите, что при выводе табличного документа в файл (например, в Excel) ссылки на стиль будут материализованы в конкретные значения на момент записи — динамическая связь со стилем в файле не сохраняется.

Как добавить свой элемент стиля и обратиться к нему
  1. 1
    В конфигураторе откройте Общие → Стили и нужный стиль.
  2. 2
    Добавьте новый элемент стиля, задайте имя (латиницей, без пробелов) и значение цвета или шрифта.
  3. 3
    Обновите конфигурацию базы данных.
  4. 4
    В коде обратитесь: ЦветаСтиля.ИмяВашегоЭлемента.
  5. 5
    Проверьте результат на форме в режиме предприятия.

Абсолютные значения вместо стиля: когда это оправдано

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

Красный = Новый Цвет(255, 0, 0);

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

Также доступны предопределённые значения через WebЦвета и WindowsЦвета: WebЦвета.Красный, WindowsЦвета.ЦветТекста. Они удобны, но не связаны со стилем конфигурации.

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

Типичные ошибки
01
Использование представления элемента стиля («Цвет текста поля») вместо имени (ЦветТекстаПоля) — код не выполнится или вернёт пустое значение.
02
Обращение по строковому имени без проверки результата — опечатка проявляется только визуально, без ошибки.
03
Попытка изменить объект, полученный из стиля, вместо создания нового Шрифта или Цвета.
04
Жёсткое задание абсолютных цветов там, где оформление должно следовать за стилем конфигурации — при смене стиля такие элементы выбиваются из общего вида.
05
Ожидание, что стиль в выгруженном файле Excel будет обновляться — в файле сохраняются только конкретные значения на момент выгрузки.

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

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

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

Итог

Что важно запомнить

Обращение к стилю выполняется через ЦветаСтиля, ШрифтыСтиля и ЭлементыСтиля по имени элемента из конфигуратора. Используйте стиль для оформления, которое должно меняться централизованно, и абсолютные значения — для фиксированной логики. После переименования элементов стиля проверяйте все строковые обращения в коде.

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

Как узнать, какие элементы стиля доступны в моей конфигурации?

Откройте в конфигураторе Общие → Стили и нужный стиль — там перечислены все элементы с именами и значениями. Дополнительно список системных элементов есть в синтакс-помощнике в описании коллекций ЦветаСтиля и ШрифтыСтиля.

Можно ли обратиться к стилю по имени, хранящемуся в строке?

Да, через квадратные скобки: ЦветаСтиля[ИмяСтрокой]. Учтите, что такое обращение не проверяется конфигуратором, поэтому при опечатке вы получите пустое значение без сообщения об ошибке — добавляйте проверку результата.

Почему заданный в коде цвет не применяется к элементу формы?

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

Как сделать шрифт из стиля жирным, не меняя сам стиль?

Создайте новый объект Шрифт с нужными параметрами, например Новый Шрифт(, , , Истина) — четвёртый параметр задаёт полужирное начертание. Изменять объект, полученный из ШрифтыСтиля, для локальной настройки не следует.

Чем отличаются ЦветаСтиля, WebЦвета и WindowsЦвета?

ЦветаСтиля ссылается на элементы стиля конфигурации и меняется вместе с ними. WebЦвета — фиксированный набор именованных веб-цветов. WindowsЦвета — системные цвета операционной системы пользователя. Выбор зависит от того, должно ли оформление следовать за стилем конфигурации, быть фиксированным или соответствовать системным настройкам.

Сохранится ли цвет из стиля при выгрузке табличного документа в Excel?

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