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