Диаграмма.ЦветФона

Свойства · BackColor

Тип: Цвет. Содержит цвет фона диаграммы.

Полное описание, параметры и ограничения

Диаграмма.ЦветФона (Chart.BackColor)

Диаграмма (Chart)

ЦветФона (BackColor)

Доступен, начиная с версии 8.0.

Использование:
Чтение и запись.
Описание:
Тип: Цвет.
Содержит цвет фона диаграммы.
Доступность:

Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.

Примечание:
Не используется, если свойство ПрозрачныйФон имеет значение Истина.
Использование в версии:

Доступен, начиная с версии 8.0.

Методическая информация

Практические примеры

Сделать подписи чисел читаемыми и запретить редактирование учебных показателей мышью

Настраиваем подписи, рамку, контраст и формат нуля. Эти изменения оформления не пересчитывают данные план/факт.

Где и как запускать

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

Подготовка

  1. В учебной базе создайте новую внешнюю обработку УчебнаяДиаграмма с пустой управляемой формой; назначьте форму основной.

  2. Не создавайте реквизит График и поле ДиаграммаТоваров вручную: код создаёт их в ПриСозданииНаСервере.

  3. В свойствах формы → События назначьте ПриСозданииНаСервере одноимённой процедуре. Сохраните EPF и откройте её в учебном тонком клиенте Windows.

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

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    НовыеРеквизиты = Новый Массив;
    НовыеРеквизиты.Добавить(Новый РеквизитФормы("График", Новый ОписаниеТипов("Диаграмма")));
    ЭтаФорма.ИзменитьРеквизиты(НовыеРеквизиты);
    Диаграмма = Новый Диаграмма;
    Диаграмма.ТипДиаграммы = ТипДиаграммы.Гистограмма;
    План = Диаграмма.УстановитьСерию("plan");
    План.Текст = "План, шт.";
    Факт = Диаграмма.УстановитьСерию("actual");
    Факт.Текст = "Факт, шт.";
    Месяцы = Новый Массив;
    Месяцы.Добавить(Новый Структура("Ключ,Название,План,Факт", "2026-01", "Январь", 10, 8));
    Месяцы.Добавить(Новый Структура("Ключ,Название,План,Факт", "2026-02", "Февраль", 12, 11));
    Месяцы.Добавить(Новый Структура("Ключ,Название,План,Факт", "2026-03", "Март", 15, 16));
    Для Каждого Месяц Из Месяцы Цикл
        Точка = Диаграмма.УстановитьТочку(Месяц.Ключ);
        Точка.Текст = Месяц.Название;
        Диаграмма.УстановитьЗначение(Точка, План, Месяц.План);
        Диаграмма.УстановитьЗначение(Точка, Факт, Месяц.Факт);
    КонецЦикла;
    Диаграмма.ВидПодписей = ВидПодписейКДиаграмме.Значение;
    Диаграмма.ПоложениеПодписей = ПоложениеПодписейКДиаграмме.КрайАвто;
    Диаграмма.РазделительПодписей = ": ";
    Диаграмма.ФорматЗначенийВПодписях = "ЧДЦ=0;ЧН=0";
    Диаграмма.ФорматПроцентовВПодписях = "ЧДЦ=1;ЧН=0";
    Диаграмма.ШрифтПодписей = Новый Шрифт("Arial", 10);
    Диаграмма.ЦветТекстаПодписей = Новый Цвет(25, 40, 60);
    Диаграмма.ПрозрачныйФонПодписей = Ложь;
    Диаграмма.ЦветФонаПодписей = Новый Цвет(255, 255, 255);
    Диаграмма.РамкаПодписей = Новый Рамка(ТипРамкиЭлементаУправления.Одинарная);
    Диаграмма.ЦветРамкиПодписей = Новый Цвет(190, 195, 205);
    Диаграмма.ПрозрачныйФон = Ложь;
    Диаграмма.ЦветФона = Новый Цвет(250, 251, 253);
    Диаграмма.Рамка = Новый Рамка(ТипРамкиЭлементаУправления.БезРамки);
    Диаграмма.ЦветРамки = Новый Цвет(190, 195, 205);
    Диаграмма.Анимация = АнимацияДиаграммы.НеИспользовать;
    Диаграмма.РежимВыделения = РежимВыделенияДиаграммы.ВыделениеЗначений;
    Диаграмма.РежимРедактированияЗначений = РежимРедактированияЗначенийДиаграммы.НеИспользовать;
    План.РежимРедактированияЗначений = РежимРедактированияЗначенийДиаграммы.НеИспользовать;
    Факт.РежимРедактированияЗначений = РежимРедактированияЗначенийДиаграммы.НеИспользовать;
    План.ФорматВТаблицеДанных = "ЧДЦ=0;ЧН=0";
    Факт.ФорматЗначенийВПодписях = "ЧДЦ=0;ЧН=0";
    Факт.ФорматПроцентовВПодписях = "ЧДЦ=1;ЧН=0";
    Сообщить(Диаграмма.ПолучитьЗначение(Диаграмма.Точки.Получить(2), Факт).Значение = 16);
    Сообщить(Диаграмма.РежимРедактированияЗначений = РежимРедактированияЗначенийДиаграммы.НеИспользовать);
    ЭтаФорма.График = Диаграмма;
    Поле = Элементы.Добавить("ДиаграммаТоваров", Тип("ПолеФормы"));
    Поле.Вид = ВидПоляФормы.ПолеДиаграммы;
    Поле.ПутьКДанным = "График";
    Поле.РастягиватьПоГоризонтали = Истина;
    Поле.РастягиватьПоВертикали = Истина;
КонецПроцедуры

Разбор по шагам

  1. ВидПодписей=Значение показывает число без лишнего повторения серии и месяца. Разделитель нужен лишь для составных видов подписей.

  2. Формат ЧДЦ=0;ЧН=0 показывает целые штуки и явный ноль. Формат процентов подготовлен отдельно, но текущий вид процентов не выводит.

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

  4. Отключаем анимацию для спокойного учебного сравнения и редактирование значений мышью для всей диаграммы и обеих серий.

  5. Выделение значения остаётся включённым. Числовой контроль мартовского факта подтверждает, что оформление не изменило 16.

Как проверить результат

  1. Два сравнения Истина. На форме читаются целые числовые подписи поверх светлых плашек.

  2. Попытка перетянуть показатель не должна редактировать значение; выделение отдельного значения допустимо.

  3. Для проверки нуля замените мартовский факт в собственной матрице на 0 и повторите урок.

Ожидаемый результат

Диаграмма стала читаемой без изменения числовой модели; редактирование явно отделено от выделения.

На что обратить внимание

  1. НеИспользовать ограничивает интерактивное редактирование, но не программный УстановитьЗначение и не права учётной базы.

  2. ЦветРамки при типе БезРамки не виден; это не поломка настройки.

  3. Форматирование округляет представление, а не исходное значение. Для дробных показателей выберите другие ЧДЦ.

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

Получить PNG диаграммы в памяти и проверить размер картинки

Задаём 640×360 пикселей и формат PNG явно. Получение картинки не равно сохранению отчёта на диск или подтверждению читаемости подписей.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Учебная база, серверный общий модуль УчебныеЗадачи, фрагмент внутри ВыполнитьПример() Экспорт.

  2. Числа вымышлены. Файлы, печать и запросы к данным конфигурации не используются.

  3. Для визуальной проверки в собственной управляемой обработке создайте реквизит КартинкаГрафика типа Картинка и поле картинки. Возвращайте Изображение из серверной функции и присваивайте реквизиту, не строке пути.

Диаграмма = Новый Диаграмма;
Диаграмма.ТипДиаграммы = ТипДиаграммы.Гистограмма;
План = Диаграмма.УстановитьСерию("plan");
План.Текст = "План, шт.";
Факт = Диаграмма.УстановитьСерию("actual");
Факт.Текст = "Факт, шт.";
Месяцы = Новый Массив;
Месяцы.Добавить(Новый Структура("Ключ,Название,План,Факт", "2026-01", "Январь", 10, 8));
Месяцы.Добавить(Новый Структура("Ключ,Название,План,Факт", "2026-02", "Февраль", 12, 11));
Месяцы.Добавить(Новый Структура("Ключ,Название,План,Факт", "2026-03", "Март", 15, 16));
Для Каждого Месяц Из Месяцы Цикл
    Точка = Диаграмма.УстановитьТочку(Месяц.Ключ);
    Точка.Текст = Месяц.Название;
    Диаграмма.УстановитьЗначение(Точка, План, Месяц.План);
    Диаграмма.УстановитьЗначение(Точка, Факт, Месяц.Факт);
КонецЦикла;
Диаграмма.ОбластьЗаголовка.Текст = "Учебный план/факт, шт.";
Диаграмма.ВидПодписей = ВидПодписейКДиаграмме.Значение;
Диаграмма.ФорматЗначенийВПодписях = "ЧДЦ=0;ЧН=0";
Диаграмма.ЦветФона = Новый Цвет(255, 255, 255);
Диаграмма.ПрозрачныйФон = Ложь;
Изображение = Диаграмма.ПолучитьКартинку(640, 360, ФорматКартинки.PNG);
Сообщить(Изображение.Ширина() = 640);
Сообщить(Изображение.Высота() = 360);
БайтыPNG = Изображение.ПолучитьДвоичныеДанные();
Если БайтыPNG = Неопределено Тогда
    ВызватьИсключение "Не получены двоичные данные собственного PNG";
КонецЕсли;
Сообщить(БайтыPNG.Размер() > 0);
Копия = Новый Картинка(БайтыPNG);
Сообщить(Копия.Ширина() = 640 И Копия.Высота() = 360);
Сообщить("PNG сформирован только в памяти, файл не записывался.");

Разбор по шагам

  1. Полная собственная матрица план/факт создаётся в памяти и оформляется до получения картинки.

  2. ПолучитьКартинку получает размеры и формат явно: нулевые размеры означают отдельное поведение текущего элемента или размеров по умолчанию.

  3. Ширина() и Высота() картинки — методы, не свойства. Проверяем заданные 640×360.

  4. ПолучитьДвоичныеДанные даёт PNG; проверяем наличие и размер, затем создаём отдельную Картинка из этих байтов.

  5. Записать не вызывается. Картинка в памяти может быть показана через собственный реквизит, но это отдельная визуальная проверка.

Как проверить результат

  1. Четыре булевых сообщения Истина: размеры исходной и повторно созданной картинки совпадают, байты не пустые.

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

Ожидаемый результат

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

На что обратить внимание

  1. Возможность получить картинку в серверном контексте не подтверждает установленный шрифт или идеальную верстку на любом клиенте.

  2. Не используйте размеры 0, если нужен предсказуемый размер внешнего изображения.

  3. При реальной выгрузке файл, доставка и права доступа требуют отдельного явного решения; здесь их нет.

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

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

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