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

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

Как вывести диаграмму в 1С: пошаговая инструкция

Как вывести диаграмму в 1С: вставка в отчёт через СКД, диаграмма Ганта, программное построение на управляемой форме и типичные ошибки при настройке.

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

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

Ниже разобраны все рабочие сценарии: от простого включения диаграммы в типовом отчёте до кода построения графика на форме. Инструкции применимы к управляемым формам, которые используются в актуальных конфигурациях (Бухгалтерия, Управление торговлей, ERP, ЗУП).

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

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

Выбор типа определяется структурой данных. Динамику во времени (продажи по месяцам) удобнее показывать графиком или гистограммой. Доли в целом (структура выручки по товарным группам) — круговой диаграммой. Сравнение нескольких показателей по периодам — гистограммой с сериями. План-график работ, отпусков или загрузки оборудования — диаграммой Ганта, где каждая строка содержит интервалы на шкале времени.

Сравнение способов вывода

Диаграмма в отчёте на СКД

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

Программный вывод на форме

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

Диаграмма Ганта

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

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

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

На закладке «Ресурсы» добавьте это числовое поле как ресурс с агрегатной функцией «Сумма». Без ресурса диаграмма не построится: платформе нечего отображать по вертикали. Затем перейдите на закладку «Настройки», выделите корневой элемент «Отчет» и через контекстное меню добавьте элемент «Диаграмма».

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

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

Настройка диаграммы в режиме «Предприятие»

Если отчёт типовой и доступа к конфигуратору нет, откройте настройки отчёта кнопкой «Настройки» → «Расширенные». В структуре отчёта добавьте диаграмму и распределите поля по точкам и сериям. Не все типовые отчёты позволяют менять структуру — это зависит от того, как разработчик ограничил настройки.

Программный вывод диаграммы на управляемой форме

Когда данные для графика формируются алгоритмом, а не запросом, диаграмму создают программно. Для этого в форму добавляют реквизит типа «Диаграмма» и выводят его элементом формы. Затем в коде заполняют точки, серии и значения.

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

1c
ДиаграммаОтчета.Очистить();
ДиаграммаОтчета.ТипДиаграммы = ТипДиаграммы.График;

Серия = ДиаграммаОтчета.Серии.Добавить("Продажи");

Пока Выборка.Следующий() Цикл
    Точка = ДиаграммаОтчета.Точки.Добавить(Формат(Выборка.Период, "ДЛФ=D"));
    ДиаграммаОтчета.УстановитьЗначение(Точка, Серия, Выборка.Сумма);
КонецЦикла;

Реквизит формы должен быть именно типа «Диаграмма», а не «ТабличныйДокумент». Частая ошибка — попытка вывести график в табличный документ на управляемой форме: там он не отрисуется интерактивно. Если нужна печатная форма с диаграммой, используют табличный документ с рисунком типа «Диаграмма», но это отдельный механизм для обычных форм и печати.

Вывод диаграммы Ганта для планов и графиков

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

Структура заполнения отличается от обычной диаграммы: добавляются точки (строки-ресурсы, например сотрудники), а внутри каждой точки создаются значения-интервалы с датой начала и датой окончания. Каждый интервал отображается как полоса на временной шкале.

1c
Ганта.Очистить();

Пока Выборка.Следующий() Цикл
    Точка = Ганта.Точки.Добавить(Выборка.Сотрудник);
    Значение = Ганта.УстановитьЗначение(Точка);
    Интервал = Значение.Добавить();
    Интервал.Начало = Выборка.ДатаНачала;
    Интервал.Конец = Выборка.ДатаОкончания;
КонецЦикла;

Чтобы интервалы одного сотрудника не накладывались, данные стоит заранее проверить на пересечения периодов. Платформа отрисует пересекающиеся интервалы, но читать такой график будет сложно.

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

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

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

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

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

График виден, значения соответствуют ресурсу

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

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

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

Каждая категория подписана (месяц, контрагент)

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

Одна общая точка — группировка не перенесена в «Точки»

Суммы на графике
Норма

Совпадают с табличной частью отчёта

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

Завышены в разы — ресурс суммируется дважды из-за лишней группировки

Типичные ошибки
01
Не добавлен ресурс на закладке «Ресурсы» — диаграмма строится пустой, потому что нечего считать
02
Группировка оставлена в корне отчёта вместо переноса в «Точки» — получается одна суммарная колонка вместо разбивки
03
Программное заполнение без вызова Очистить() — при повторном формировании данные дублируются
04
Вывод диаграммы в табличный документ на управляемой форме — график не отображается, нужен реквизит типа «Диаграмма»
05
В диаграмме Ганта даты начала и конца перепутаны местами — интервалы не отрисовываются

Ограничения и безопасные границы самостоятельной настройки

Пользовательская настройка диаграммы в режиме «Предприятие» безопасна: она меняет только вариант отчёта и не затрагивает данные. Худшее, что может случиться, — отчёт перестанет формироваться корректно; тогда настройки сбрасывают кнопкой «Стандартные настройки».

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

Часто задаваемые вопросы

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

Чаще всего не добавлен числовой ресурс на закладке «Ресурсы» СКД или группировки не перенесены в «Точки» диаграммы. Проверьте также, что у ресурса указана агрегатная функция, например «Сумма».

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

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

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

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

Диаграмма Ганта не показывает интервалы, в чём причина?

Проверьте, что у каждого интервала заполнены обе даты — начало и конец, и что начало раньше конца. Также убедитесь, что значение для точки создано методом УстановитьЗначение, а интервал добавлен в это значение.

Как вывести диаграмму на печать вместе с отчётом?

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

Итог

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

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