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