К статье
Практический материал

Отчеты и Аналитика · 11 мин

Как создать диаграмму в 1С

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

Диаграмма в 1С — это способ визуализировать данные учёта: продажи по месяцам, структуру задолженности, загрузку сотрудников, динамику остатков. Платформа «1С:Предприятие» поддерживает несколько десятков типов диаграмм — от простых гистограмм и круговых графиков до графиков Ганта и изометрических вариантов. При этом создать диаграмму можно тремя разными способами: в отчёте на СКД без программирования, в табличном документе и программно через встроенный язык.

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

Какие виды диаграмм доступны в 1С и когда их использовать

Платформа «1С:Предприятие» поддерживает типы диаграмм, объединённые в перечисление ТипДиаграммы: гистограмма (обычная, объёмная, нормированная), график (по точкам, с накоплением, ступенчатый), круговая (обычная и объёмная), изометрическая, поверхность, радар, а также специализированные — диаграмма Ганта и график Тарского. Полный список доступен в палитре свойств элемента диаграммы.

Практический принцип выбора простой. Для сравнения значений по категориям (продажи по менеджерам) подходит гистограмма. Для динамики во времени (выручка по месяцам) — график. Для долей в целом (структура расходов) — круговая диаграмма, но только если категорий немного: при более чем 6–8 секторах она становится нечитаемой. Ганта применяют для планов и графиков работ, где важны интервалы, а не точечные значения.

Сравнение способов создания диаграммы

Отчёт на СКД

Не требует программирования, настраивается пользователем. Подходит для аналитических отчётов. Ограничение — данные должны выбираться запросом.

Диаграмма в табличном документе

Рисунок типа «Диаграмма» в макете. Подходит для печатных форм. Требует программного заполнения серий и точек.

Элемент формы «Диаграмма»

Интерактивная диаграмма на рабочем месте. Требует работы в конфигураторе и кода заполнения.

Создание диаграммы в отчёте на СКД без программирования

Самый доступный способ — построить диаграмму в отчёте на системе компоновки данных. Способ работает как в конфигураторе при разработке собственного отчёта, так и в пользовательском режиме в типовых конфигурациях, где доступна настройка вариантов отчётов (например, через «Ещё — Изменить вариант отчёта»).

Общая логика такова: запрос отчёта должен вернуть данные, а настройки СКД определяют, какие поля станут точками (ось категорий), какие — сериями (легенда), а какие — значениями. Значением может быть только числовое поле, выбранное как ресурс.

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

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

Настройка типа диаграммы, серий и точек

После добавления диаграммы в структуру отчёта основная работа идёт в её свойствах. В СКД тип диаграммы задаётся через параметр вывода «Тип диаграммы» — его можно изменить в настройках отчёта, не трогая запрос. Там же настраиваются состав серий, отображение легенды, подписи и максимальное количество точек.

Важно понимать разницу между точками и сериями. Точки — это значения по горизонтальной оси (категории), серии — наборы данных, которые сравниваются между собой в каждой точке. Если в отчёте по продажам точки — месяцы, а серии — менеджеры, то для каждого месяца будет построено по одному столбцу или линии на каждого менеджера. Перепутав точки и серии, вы получите «зеркальную» диаграмму, которая формально работает, но читается хуже.

Диаграмма в табличном документе и печатной форме

Когда диаграмма должна попасть в печатную форму — например, в аналитическую справку к отчёту руководителю, — используют макет табличного документа. В макете добавляют рисунок с типом «Диаграмма» через меню «Таблица — Рисунки — Диаграмма» в конфигураторе. Рисунок получает имя, по которому к нему обращаются из кода.

Заполнение выполняется программно: сначала очищают диаграмму методом Очистить(), затем задают количество серий и точек, присваивают точкам подписи, а значения записывают через метод УстановитьЗначение(Точка, Серия, Значение). После заполнения область макета выводится в результирующий табличный документ обычным способом.

bsl
Диаграмма = Макет.Рисунки.ДиаграммаПродаж.Объект;
Диаграмма.Очистить();
Диаграмма.ТипДиаграммы = ТипДиаграммы.График;
Диаграмма.КоличествоСерий = 1;
Диаграмма.Серии[0].Текст = "Продажи";
Диаграмма.КоличествоТочек = Выборка.Количество();
НомерТочки = 0;
Пока Выборка.Следующий() Цикл
    Диаграмма.Точки[НомерТочки].Текст = Формат(Выборка.Период, "ДФ=MM.yy");
    Диаграмма.УстановитьЗначение(НомерТочки, 0, Выборка.Сумма);
    НомерТочки = НомерТочки + 1;
КонецЦикла;

Учтите, что размер диаграммы в макете фиксирован размерами рисунка. Если точек много, подписи на оси начнут накладываться друг на друга — в этом случае либо увеличивайте ширину рисунка, либо сокращайте подписи (например, выводите только месяц и год в коротком формате).

Программное создание диаграммы на форме

Для интерактивных рабочих мест диаграмму размещают непосредственно на форме. В конфигураторе в форму добавляют реквизит типа «Диаграмма» (или «ДиаграммаГанта» для графиков работ) и выносят его в дерево элементов формы. Дальше элемент заполняется кодом — обычно в обработчике команды «Сформировать» или при открытии формы.

Объект Диаграмма во встроенном языке предоставляет свойства: ТипДиаграммы, ОтображатьЛегенду, МаксимумСерий, коллекции Серии и Точки, а также настройки осей через ОбластьПостроения. Принцип заполнения тот же, что и для табличного документа: очистка, задание серий и точек, установка значений.

Для диаграммы Ганта логика иная: значения строятся из интервалов, каждый интервал задаётся датой начала и окончания через коллекцию Значение.Интервалы. Это удобно для визуализации графиков отпусков, занятости оборудования или этапов проекта, где важна длительность, а не величина.

Перед заполнением диаграммы всегда вызывайте Очистить(). Без этого при повторном формировании старые серии и точки останутся, и на графике появятся дублирующиеся данные, которые сложно отличить от реальных.
ПЗ
Практическое замечание

Проверка результата и типичные ошибки

После построения диаграммы проверьте не только её наличие, но и корректность данных. Самая частая ситуация — пустая диаграмма при корректном запросе: причина почти всегда в том, что числовое поле не добавлено в ресурсы СКД или группировки в точках и сериях не содержат выбранных полей. Вторая по частоте проблема — диаграмма показывает единственное значение: значит, итоги посчитаны по общему итогу, а не по группировкам.

Контрольные точки

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

Диаграмма отображается в отчёте
Норма

График построен, значения соответствуют данным таблицы отчёта

Тревожный признак

Пустая область — ресурс не задан или поле нечисловое

Подписи точек
Норма

Каждая категория подписана, подписи не накладываются

Тревожный признак

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

Легенда и серии
Норма

Каждой серии соответствует понятное название из данных

Тревожный признак

Серии без названий или одна серия вместо нескольких

Повторное формирование
Норма

Диаграмма перестраивается с новыми данными без дублей

Тревожный признак

Старые данные остаются — пропущен вызов Очистить()

Типичные ошибки
01
Поле показателя не добавлено в ресурсы СКД — диаграмма пустая, хотя таблица отчёта заполнена.
02
Точки и серии перепутаны местами — диаграмма читается неудобно, сравнение категорий затруднено.
03
Отсутствует Очистить() перед заполнением — при повторном формировании данные дублируются.
04
Круговая диаграмма с десятками точек — сектора сливаются, подписи нечитаемы; лучше ограничить число точек или сменить тип на гистограмму.
05
Нечисловой тип значения (строка, дата) передан в УстановитьЗначение — значение игнорируется или вызывает ошибку.

Ограничения и когда нужен разработчик

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

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

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

Итог

Что важно запомнить

Для аналитических отчётов используйте диаграмму в СКД: запрос, ресурс, точки, серии, тип — и готово без кода. Для печатных форм и рабочих мест диаграмма заполняется программно через объект Диаграмма с обязательной очисткой перед заполнением. Числовой ресурс и корректные группировки — главные условия, при которых диаграмма вообще построится.

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

Можно ли создать диаграмму в 1С без доступа к конфигуратору?

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

Почему диаграмма в отчёте на СКД пустая, хотя таблица с данными есть?

Почти всегда причина в том, что числовое поле не добавлено на закладку «Ресурсы» схемы компоновки. Диаграмма строится только по ресурсам. Вторая возможная причина — в точках или сериях указаны группировки без выбранных полей, либо поле показателя имеет нечисловой тип.

Как изменить тип диаграммы с гистограммы на график?

В отчёте на СКД выделите элемент «Диаграмма» в структуре настроек и в параметрах вывода найдите «Тип диаграммы» — там доступен весь список: график, круговая, изометрическая и другие. При программном построении тип задаётся свойством ТипДиаграммы объекта диаграммы, например ТипДиаграммы.График.

Как построить диаграмму Ганта для графика отпусков?

Используйте объект «ДиаграммаГанта» на форме. Сериями сделайте сотрудников, точками — периоды или самих сотрудников в зависимости от раскладки, а значения задайте интервалами: для каждой точки добавьте интервал с датой начала и датой окончания отпуска. Данные для интервалов берутся запросом из регистра сведений или документов отпусков.

Можно ли вывести диаграмму в печатную форму документа?

Да. В макет табличного документа добавьте рисунок типа «Диаграмма», а в коде формирования печатной формы заполните его: очистите, задайте серии и точки, установите значения. После этого область макета выводится в итоговый табличный документ вместе с остальными данными печатной формы.

Что делать, если подписи на диаграмме накладываются друг на друга?

Сократите количество точек — например, группируйте данные по месяцам вместо дней. Увеличьте ширину области диаграммы в макете или на форме. Для длинных подписей используйте короткие форматы дат или сокращённые наименования. В крайнем случае смените тип диаграммы: график с наклонными подписями часто читается лучше плотной гистограммы.