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

Отчеты и Аналитика · 9 мин

Как изменить цвет диаграммы в 1С

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

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

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

Где в 1С хранятся настройки цвета диаграммы

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

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

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

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

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

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

Как программно изменить цвет серии диаграммы

Программный способ даёт полный контроль. После заполнения диаграммы данными обратитесь к коллекции серий и установите нужный цвет. Свойство Цвет принимает значение типа «Цвет», который создаётся тремя способами: через web-цвета, через абсолютные значения RGB и через элементы стиля.

Диаграмма.Серии[0].Цвет = WebЦвета.Красный;

Диаграмма.Серии[1].Цвет = Новый Цвет(46, 139, 87);

Диаграмма.Серии[2].Цвет = ЦветаСтиля.ЦветАкцента;

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

bsl
// Перекрасить все серии диаграммы в заданные цвета
МассивЦветов = Новый Массив;
МассивЦветов.Добавить(Новый Цвет(41, 128, 185));
МассивЦветов.Добавить(Новый Цвет(39, 174, 96));
МассивЦветов.Добавить(Новый Цвет(192, 57, 43));

Для Индекс = 0 По Диаграмма.Серии.Количество() - 1 Цикл
    Если Индекс < МассивЦветов.Количество() Тогда
        Диаграмма.Серии[Индекс].Цвет = МассивЦветов[Индекс];
    КонецЕсли;
КонецЦикла;

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

Как выделить цветом отдельную точку

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

// Подсветить третью точку первой серии

Диаграмма.Серии[0].Значения[2].ЦветТочки = WebЦвета.Оранжевый;

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

Как изменить цвет диаграммы в отчёте на СКД

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

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

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

Маршрут решения

Как выбрать способ настройки

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

Проверка результата и типичные ошибки

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

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

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

Итог

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

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

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

Почему заданные цвета сбрасываются после обновления диаграммы?

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

Можно ли задать цвет в формате HEX, например #2E8B57?

Напрямую шестнадцатеричную строку конструктор цвета не принимает. Переведите HEX в три десятичных компонента RGB и создайте цвет через Новый Цвет(Красный, Зелёный, Синий): для #2E8B57 это Новый Цвет(46, 139, 87).

Как изменить цвет фона области диаграммы?

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

Работает ли настройка цветов в тонком и веб-клиенте?

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

Как вернуть цвета по умолчанию после экспериментов?

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