Диаграмма.ФорматЗначенийВПодписях

Свойства · ValueLabelFormat

Тип: Строка. Содержит формат компонента значений в подписях.

Доступность

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

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

Тип: Строка.
Содержит формат компонента значений в подписях.

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

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

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

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

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

Подготовка

  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. Форматирование округляет представление, а не исходное значение. Для дробных показателей выберите другие ЧДЦ.

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

Отличить нулевые продажи января от отсутствующего отчёта за февраль

В январе факт равен 0, в феврале неизвестен, в марте равен 16. Нечисловое значение пропускаем, а настоящий ноль сохраняем.

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

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

Подготовка

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

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

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

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

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    НовыеРеквизиты = Новый Массив;
    НовыеРеквизиты.Добавить(Новый РеквизитФормы("График", Новый ОписаниеТипов("Диаграмма")));
    ЭтаФорма.ИзменитьРеквизиты(НовыеРеквизиты);
    Диаграмма = Новый Диаграмма;
    Диаграмма.ТипДиаграммы = ТипДиаграммы.График;
    Факт = Диаграмма.УстановитьСерию("actual");
    Факт.Текст = "Факт, шт.; февраль — нет данных";
    Факт.Маркер = ТипМаркераДиаграммы.Круг;
    Январь = Диаграмма.УстановитьТочку("2026-01");
    Январь.Текст = "Январь";
    Февраль = Диаграмма.УстановитьТочку("2026-02");
    Февраль.Текст = "Февраль: нет данных";
    Март = Диаграмма.УстановитьТочку("2026-03");
    Март.Текст = "Март";
    Диаграмма.УстановитьЗначение(Январь, Факт, 0);
    Диаграмма.УстановитьЗначение(Февраль, Факт, Неопределено);
    Диаграмма.УстановитьЗначение(Март, Факт, 16);
    Диаграмма.ИспользованиеНечисловыхЗначений = ИспользованиеНечисловыхЗначенийДиаграммы.Пропускать;
    Диаграмма.БазовоеЗначение = 0;
    Диаграмма.ПропускатьБазовоеЗначение = Ложь;
    Диаграмма.СоединениеТочек = ТипСоединенияТочекДиаграммы.Соединять;
    Диаграмма.СоединениеТочекПриПропущенныхЗначениях = ТипСоединенияТочекПриПропущенныхЗначенияхДиаграммы.Нет;
    Диаграмма.ВидПодписей = ВидПодписейКДиаграмме.Значение;
    Диаграмма.ФорматЗначенийВПодписях = "ЧДЦ=0;ЧН=0";
    Диаграмма.ОбластьЗаголовка.Текст = "0 — известный факт, пропуск — данных нет";
    Сообщить(Диаграмма.ПолучитьЗначение(Январь, Факт).Значение = 0);
    Сообщить(Диаграмма.ПолучитьЗначение(Февраль, Факт).Значение = Неопределено);
    Сообщить(Диаграмма.ПолучитьЗначение(Март, Факт).Значение = 16);
    ЭтаФорма.График = Диаграмма;
    Поле = Элементы.Добавить("ДиаграммаТоваров", Тип("ПолеФормы"));
    Поле.Вид = ВидПоляФормы.ПолеДиаграммы;
    Поле.ПутьКДанным = "График";
    Поле.РастягиватьПоГоризонтали = Истина;
    Поле.РастягиватьПоВертикали = Истина;
КонецПроцедуры

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

  1. Создаём собственную серию и три точки с разным смыслом: известный ноль, неизвестное значение, известное число 16.

  2. УстановитьЗначение принимает произвольное значение. Для февраля явно передаём Неопределено, не строку «0».

  3. Пропускать нечисловые значения исключает неизвестный февраль из построения. ПропускатьБазовоеЗначение=Ложь сохраняет известный январский ноль.

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

  5. Проверяем исходные значения отдельно от изображения и дополняем подпись точки словами «нет данных».

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

  1. Три сравнения Истина: январь 0, февраль Неопределено, март 16.

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

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

Отсутствующий показатель не подменён нулём, и визуальная связь не приписывает ему значение.

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

  1. Не используйте КакНоль только ради непрерывного графика: это изменяет смысл отсутствующих данных.

  2. Неопределено в учебном источнике не объясняет причину отсутствия данных. Реальный отчёт должен отдельно сообщать состояние загрузки.

  3. В таблице данных пустая ячейка требует пояснения; в уроке оно задано текстом точки и заголовком.

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

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

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

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

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