Отчеты и Аналитика · 10 мин
Что такое серии и точки в диаграмме 1С
Разбираем, что такое серии и точки диаграммы в 1С, как задать их в конфигураторе и программно, типичные ошибки и способы проверки результата.
Диаграмма в 1С — это объект визуализации данных, который строится по двум осям смысла: категории (что сравниваем) и значения (сколько). Чтобы эти данные разложить правильно, платформа использует два ключевых понятия — серии и точки. Точка отвечает за ось категорий (например, месяцы, склады, контрагенты), а серия — за набор значений, которые сравниваются между собой (например, план и факт продаж).
Простая аналогия: точки — это столбцы подписей внизу графика, а серии — это «линии» или «стопки» значений, каждая со своим цветом и названием в легенде. Если вы строите график «Продажи по месяцам», то месяцы — это точки, а сам показатель «Продажи» — одна серия. Если добавить «Продажи прошлого года», появится вторая серия, и на каждой точке-месяце будет уже два значения.
Непонимание этой пары — главная причина «пустых» и «перевёрнутых» диаграмм у начинающих разработчиков: данные в запросе есть, а на графике либо ничего не отображается, либо серии и точки перепутаны местами. Ниже разберём устройство диаграммы, настройку в конфигураторе, программное заполнение и типичные ошибки.
Что такое точка диаграммы и за что она отвечает
Точка — это элемент оси категорий. В гистограмме точки идут по горизонтали, в графике — тоже по оси X, в круговой диаграмме каждая точка становится отдельным сектором. Набор точек определяет «скелет» диаграммы: сколько делений будет на оси и как они подписаны.
У точки есть значение (сама категория, например дата или ссылка на справочник) и текст подписи, который можно переопределить. Точки можно добавлять, удалять, менять местами и получать по индексу или по значению через методы объекта «Диаграмма».
Важно понимать: количество точек не связано с количеством показателей. Если у вас 12 месяцев и 3 показателя, точек будет 12, а серий — 3. Каждая ячейка этой «сетки» 12×3 — отдельное значение диаграммы.
Что такое серия диаграммы и когда их несколько
Серия — это именованный ряд значений, который отображается единым цветом и попадает в легенду. Серии нужны, когда на одной диаграмме сравниваются несколько показателей: план и факт, текущий и прошлый период, несколько складов или менеджеров.
Каждая серия хранит собственный набор значений по всем точкам. Если для какой-то точки значение серии не задано, платформа отобразит пропуск (разрыв линии на графике или отсутствие столбца), а не ноль — это частый источник путаницы при сравнении с отчётами, где пустое значение показывается как 0.
Как устроены значения: пересечение серии и точки
Конкретное число на диаграмме — это значение, заданное для пары «серия + точка». В встроенном языке оно устанавливается методом УстановитьЗначение, куда передаются точка, серия и число. Получить значение обратно можно методом ПолучитьЗначение — он возвращает структуру с самим значением и расшифровкой, если она была задана.
Расшифровка — полезный механизм: вместе со значением можно сохранить произвольные данные (например, ссылку на документ или набор отборов), а потом в обработчике события диаграммы открыть по клику связанный отчёт или объект. Это стандартный способ сделать диаграмму интерактивной без доработки платформы.
Настройка серий и точек в конфигураторе без кода
Если диаграмма размещена в отчёте на СКД или в форме с источником данных, серии и точки часто настраиваются декларативно. В схеме компоновки данных роль серий и точек определяется настройками диаграммы: вы указываете, какое поле ресурса станет значением, какое поле — точками, а какое — сериями.
Платформа при этом сама обходит результат запроса и заполняет серии и точки. Ваша задача — правильно выбрать поля и убедиться, что поле серий имеет ограниченное число различных значений: если случайно назначить сериями поле с сотнями уникальных значений (например, номенклатуру), диаграмма превратится в нечитаемую «радугу» и будет строиться заметно дольше.
Что назначить сериями, а что точками
Программное заполнение диаграммы на встроенном языке
Когда диаграмма заполняется из кода (например, на управляемой форме), типовая последовательность такая: очистить диаграмму, задать количество серий и точек, установить их значения, затем в цикле по выборке запроса проставить значения. Методы УстановитьТочку и УстановитьСерию возвращают объекты точки и серии, которые удобно сохранить в соответствие для быстрого доступа.
Диаграмма.Очистить();
Диаграмма.КоличествоСерий = 1;
Диаграмма.КоличествоТочек = 0; // точки добавим по мере обхода
Серия = Диаграмма.УстановитьСерию("Продажи");
СоответствиеТочек = Новый Соответствие;
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Точка = СоответствиеТочек[Выборка.Период];
Если Точка = Неопределено Тогда
Точка = Диаграмма.УстановитьТочку(Выборка.Период);
СоответствиеТочек.Вставить(Выборка.Период, Точка);
КонецЕсли;
Диаграмма.УстановитьЗначение(Точка, Серия, Выборка.Сумма);
КонецЦикла;
Обратите внимание на вызов Очистить() перед заполнением: без него при повторном построении старые точки и серии останутся, и диаграмма «удвоится». Это одна из самых частых ошибок при динамическом обновлении диаграмм на форме.
- 1Вызовите Очистить() у объекта диаграммы
- 2Подготовьте запрос с полями: категория, показатель, значение
- 3Задайте серии через УстановитьСерию и сохраните их в соответствие
- 4В цикле по выборке создавайте точки через УстановитьТочку
- 5Установите значения методом УстановитьЗначение(Точка, Серия, Значение)
- 6Проверьте диаграмму на форме: легенда, подписи осей, отсутствие дублей
Типичные ошибки и как их диагностировать
Первая группа ошибок — структурные: серии и точки перепутаны местами. Признак — диаграмма «лежит на боку»: вместо 12 месяцев по оси X вы видите 2 точки и 12 серий. Лечится переназначением полей в настройках СКД или местами вызовов УстановитьТочку/УстановитьСерию в коде.
Вторая группа — данные с дублями категорий. Если запрос возвращает один и тот же период в разном представлении (например, дата с временем вместо начала месяца), каждое значение станет отдельной точкой, и вместо 12 столбцов появятся сотни. Приводите периоды к единой гранулярности функциями запроса НАЧАЛОПЕРИОДА.
Третья группа — пропуски значений. Если для пары «точка + серия» значение не установлено, на графике будет разрыв. Проверьте, что запрос возвращает строки для всех комбинаций, либо явно проставляйте 0 там, где отсутствие данных означает именно ноль.
Как проверить, что диаграмма построена правильно
Сверьте диаграмму с исходными данными: количество точек должно совпадать с числом различных категорий в запросе, количество серий — с числом показателей. Проще всего вывести результат того же запроса в таблицу и сравнить «сетку» значений с графиком.
Проверьте легенду и подписи: каждая серия должна иметь осмысленное имя, точки — читаемые подписи без дублей. Кликните по значению, если настроена расшифровка, — должна открыться связанная информация, а не пустая форма.
Как проверить результат
Равно числу различных категорий в запросе
Точек намного больше — вероятны дубли из-за разного представления периода
Равно числу сравниваемых показателей, легенда читаема
Десятки серий — поле серий выбрано неверно
Совпадают с итогами запроса по каждой паре точка/серия
Разрывы или нули там, где в данных есть значения
Диаграмма перестраивается без дублей
Старые серии и точки остаются — не вызван Очистить()
Часто задаваемые вопросы
Чем серия отличается от точки простыми словами?
Точка — это «где» на оси категорий стоит значение (месяц, склад, товар). Серия — это «что именно» измеряется в этой точке (план, факт, прошлый год). Одна диаграмма всегда состоит из сетки: точки по горизонтали, серии как отдельные ряды значений.
Почему диаграмма пустая, хотя запрос возвращает данные?
Чаще всего не установлены значения для пар «точка + серия» или в настройках СКД не назначены поля точек, серий и ресурса. Проверьте также, что диаграмма не очищена после заполнения и что тип диаграммы поддерживает выбранную структуру данных.
Сколько серий можно добавить на одну диаграмму?
Жёсткого практического ограничения для разумных объёмов нет, но с ростом числа серий диаграмма становится нечитаемой: цвета повторяются, легенда раздувается. Практический ориентир — до 5–7 серий; при большем количестве лучше группировать данные или использовать несколько диаграмм.
Как сделать подпись точки отличной от её значения?
У объекта точки есть свойство текста подписи, которое можно задать отдельно от значения. Это удобно, когда значением является ссылка или дата, а на оси нужно показать короткое представление, например «Янв» вместо полной даты.
Можно ли по клику на столбец диаграммы открыть расшифровку?
Да. При установке значения передайте расшифровку (произвольные данные, например структуру отборов), а в обработчике события диаграммы получите её через ПолучитьЗначение и откройте нужный отчёт или объект. Это штатный механизм интерактивности.
Почему на графике разрывы линий вместо нулей?
Потому что для соответствующих пар «точка + серия» значение не задано вовсе, а пропуск отображается как разрыв. Если отсутствие данных означает ноль, явно устанавливайте значение 0 при заполнении диаграммы.
Что важно запомнить
Точка — категория на оси, серия — сравниваемый ряд значений, а каждое число диаграммы живёт на их пересечении. Перед заполнением очищайте диаграмму, не назначайте сериями поля с множеством уникальных значений и сверяйте результат с исходным запросом по числу точек, серий и итогам.