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