Перекрашиваем диаграмму в 1С: ряды, фон и легенда

· 9 мин

Содержание

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

Основа везде одна: цвет принадлежит не диаграмме целиком, а её ряду (серии) или точке. Фон, рамка, легенда и подписи настраиваются отдельно. Если ряд закрашен «не тем» цветом, ищите настройку именно ряда.

Из чего состоит диаграмма и что можно покрасить

Перед правками полезно понять устройство. Диаграмма в 1С строится из нескольких элементов, и у каждого свой цвет.

  • 📊 Серии — то, что сравнивается: «Выручка», «Расходы», «Прибыль». Каждой серии соответствует свой цвет столбца, линии или сектора.
  • 📍 Точки — значения по оси категорий: месяцы, контрагенты, склады. В круговой диаграмме цвет обычно привязан именно к точке: каждый сектор своего цвета.
  • 🖼 Область построения — поле, где рисуются столбцы и линии. У неё есть фон и рамка.
  • 🏷 Легенда и заголовок — подписи с собственным шрифтом, цветом текста и фоном.

Если диаграмма многосерийная (гистограмма, график), красят серии. Если одна серия и много точек (круговая, кольцевая), красят точки.

ЗадачаГде менятьКто делает
Перекрасить диаграмму в одном отчёте под себяНастройки отчёта, вкладка оформления диаграммыПользователь
Единые цвета для всехСвойства поля диаграммы в конфигуратореРазработчик
Цвет зависит от значения (красный минус, зелёный плюс)Код: цвет серии или точкиПрограммист
Сменить цвета всего интерфейсаСтили конфигурацииРазработчик

Меняем цвета в настройках отчёта

Если диаграмма выведена отчётом на системе компоновки данных (большинство типовых аналитических отчётов), ряды можно перекрасить без программирования.

  1. Откройте отчёт и сформируйте его, чтобы диаграмма появилась на экране.
  2. Нажмите кнопку настроек отчёта (обычно «Показать настройки» или значок шестерёнки в командной панели).
  3. Перейдите в режим расширенной настройки, если форма показывает упрощённый вид: там открываются структура отчёта и оформление.
  4. Найдите в структуре элемент «Диаграмма» и откройте его настройки: у него отдельно настраиваются тип диаграммы, расположение легенды и другие параметры вывода.
  5. Сформируйте отчёт заново и проверьте результат.

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

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

Свойства поля и код: что задаёт разработчик

Конструктор диаграммы в конфигураторе

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

Что обычно настраивают здесь:

  • тип диаграммы (гистограмма, график, круговая и другие);
  • видимость и расположение легенды;
  • фон области построения и рамка;
  • шрифт и цвет текста заголовка и подписей.

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

Программное изменение цвета серии и точки

Когда состав серий известен только в момент формирования отчёта, цвета ставят кодом. Основное свойство — Цвет у серии (и у точки в случаях, когда раскраска идёт по категориям).

Пример для формы с полем диаграммы Диаграмма: добавляем две серии и красим их.

Диаграмма.Очистить();
Диаграмма.ТипДиаграммы = ТипДиаграммы.Гистограмма;

СерияДоход = Диаграмма.УстановитьСерию("Доход");
СерияДоход.Цвет = Новый Цвет(46, 139, 87);

СерияРасход = Диаграмма.УстановитьСерию("Расход");
СерияРасход.Цвет = Новый Цвет(205, 55, 55);

Диаграмма.УстановитьЗначение("Январь", СерияДоход, 120000);
Диаграмма.УстановитьЗначение("Январь", СерияРасход, 95000);

Цвет задают через Новый Цвет(R, G, B) с компонентами от 0 до 255 либо берут готовые значения из наборов веб-цветов и цветов стиля. Для корпоративной палитры удобнее хранить три компонента в одном месте, например в общем модуле, чтобы не размазывать числа по формам.

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

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

Единая палитра: порядок действий

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

  1. Создайте в общем модуле функцию, которая возвращает массив цветов в нужном порядке: сначала основной фирменный, затем акцентные и нейтральные.
  2. Напишите процедуру, которая принимает диаграмму и обходит её серии по порядку, присваивая каждой цвет из массива.
  3. Вызовите процедуру в конце формирования каждой диаграммы, когда все серии уже добавлены.
  4. Для серий с постоянным смыслом («План», «Факт») держите отдельное соответствие «имя → цвет». Тогда факт всегда синий, а план серый, даже если порядок серий изменился.
  5. Проверьте результат на диаграмме с одной серией, с максимальным числом серий и без данных вообще: пустая диаграмма не должна вызывать ошибку.

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

Контраст и читаемость

Подбирая цвета, держите в голове три простых критерия.

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

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

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

Цвет в зависимости от значения

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

Схема простая:

  1. Получаете значения для каждой точки.
  2. Сравниваете с порогом (нулём, планом, прошлым периодом).
  3. Выбираете цвет и присваиваете его серии или точке.

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

Не опирайтесь на пару «красный и зелёный»: часть людей плохо различает эти цвета. Добавьте разницу по яркости или подпись значений на столбцах.

Палитры и темы оформления

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

Чтобы получить единую палитру, есть два пути.

  • Своя палитра в коде. Список цветов хранится массивом, а серии красятся по порядковому номеру: Цвета[НомерСерии % Цвета.Количество()]. Остаток от деления нужен, чтобы при большом числе серий цвета повторялись, а не вызывали ошибку выхода за границы.
  • Цвета стиля. Элементы стиля конфигурации (раздел «Стили» в дереве конфигурации) хранят именованные цвета. Цвет, взятый из стиля, меняется в одном месте для всех форм сразу.

Общее правило: 5–7 серий — предел, после которого различить цвета на глаз трудно. Если серий больше, объединяйте мелкие в «Прочие» или переходите на таблицу.

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

Как диаграмма выглядит на разных устройствах

Цвет, который хорошо виден на мониторе, может потеряться на другом носителе.

  • 🖥 Монитор. Тут проблем меньше всего, но проверьте контраст соседних серий.
  • 🖨 Чёрно-белая печать. Средне-серые оттенки сливаются. Если отчёт печатают на ч/б принтере, различайте серии не только цветом, но и штриховкой, маркерами или подписями значений.
  • 📱 Мобильный клиент и веб-клиент. Отрисовка зависит от клиента, и мелкие различия в оттенках могут сгладиться. Берите заметно разные цвета и крупные подписи.
  • 📄 Выгрузка в PDF и Excel. Цвета в PDF сохраняются, в Excel диаграмма уходит как картинка либо перестраивается средствами табличного процессора и может измениться.

Перед массовой рассылкой пробного отчёта выведите его на печать или в PDF и посмотрите глазами получателя.

Как сохранить и перенести настройки цвета

Настройки зависят от того, где они заданы.

Где заданы цветаКак сохранитьКак перенести
Пользовательская настройка отчётаСохранить вариант отчёта или настройкуЧерез общий вариант отчёта или сохранённую настройку, если права позволяют
Свойства поля формыСохраняются в конфигурацииОбновлением конфигурации, расширением
КодЖивут в модулеОбновлением конфигурации, расширением

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

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

Типичные проблемы

  • 🔴 Цвет не меняется после правки кода. Цвет серии нужно задавать после её создания, а не до, и до вывода значений. Проверьте также, что диаграмма не перезаписывается позже в процедуре.
  • 🔴 Все секторы круговой диаграммы одного оттенка. Вы покрасили серию, а нужно красить точки.
  • 🔴 Цвета «прыгают» между формированиями отчёта. Серии добавляются в разном порядке, а цвета берутся по порядковому номеру. Привяжите цвет к имени серии, а не к её месту.
  • 🔴 Легенда и столбцы разного цвета. Цвет и в легенде, и в графике идёт от одной серии; расхождение говорит о том, что где-то цвет переопределяется второй раз.

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

Можно ли перекрасить диаграмму в типовом отчёте без разработчика?
Частично. В расширенных настройках отчёта доступны параметры вывода диаграммы. Цвета отдельных серий, заданные в схеме компоновки, пользователь может не увидеть среди настроек.
Почему в моей версии нет нужного пункта в настройках?
Состав настроек зависит от конфигурации и релиза: часть отчётов собрана вручную и не использует стандартную панель настроек.
Сколько серий можно красить разными цветами?
Технически сколько угодно, но читаемо 5–7. Дальше цвета повторяются или сливаются.
Как покрасить столбцы по условию?
Разнесите данные по нескольким сериям в зависимости от условия и задайте каждой свой цвет. Для круговой диаграммы красьте точки по таблице соответствия.
Сохранятся ли цвета при выгрузке в Excel?
Не гарантированно. Диаграмма уходит как картинка или строится заново, поэтому для точного вида выгружайте в PDF.