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

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

Как построить диаграмму в 1С: практическое руководство

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

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

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

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

Что нужно подготовить перед построением диаграммы

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

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

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

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

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

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

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

Как вывести диаграмму на управляемую форму

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

Заполнение выполняется в три шага: очистить диаграмму, установить точки и серии, задать значения. Ниже пример типового кода, который выводит продажи по месяцам в разрезе двух менеджеров.

Диаграмма.Очистить();

Диаграмма.ТипДиаграммы = ТипДиаграммы.Гистограмма;

ТочкаЯнв = Диаграмма.УстановитьТочку("Январь");

ТочкаФев = Диаграмма.УстановитьТочку("Февраль");

Серия1 = Диаграмма.УстановитьСерию("Иванов");

Серия2 = Диаграмма.УстановитьСерию("Петров");

Диаграмма.УстановитьЗначение(ТочкаЯнв, Серия1, 150000);

Диаграмма.УстановитьЗначение(ТочкаЯнв, Серия2, 120000);

Диаграмма.УстановитьЗначение(ТочкаФев, Серия1, 180000);

Диаграмма.УстановитьЗначение(ТочкаФев, Серия2, 165000);

В реальной задаче точки и значения берутся из запроса: обходите выборку в цикле и для каждой строки устанавливаете точку, серию и значение. Метод УстановитьТочку с одинаковым именем возвращает уже существующую точку, поэтому дубли не создаются.

Выбор типа диаграммы под задачу

Платформа 1С поддерживает несколько десятков типов диаграмм, но на практике используются пять-шесть. Выбор зависит от того, что должен увидеть пользователь: динамику, структуру или сравнение.

Тип диаграммыКогда применятьОграничение
ГистограммаСравнение значений по категориям или периодамПлохо читается при большом числе серий
ГрафикДинамика показателя во времениНе подходит для несвязанных категорий
КруговаяДоли в общей сумме (структура выручки, расходов)Теряет смысл при большом количестве мелких долей
ИзометрическаяОбъёмное представление гистограммы для презентацийИскажает восприятие значений, хуже для анализа
ТочечнаяКорреляция двух числовых показателейТребует понимания от пользователя

Где строить диаграмму

Отчёт на СКД

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

Диаграмма на форме

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

Сводная диаграмма в динамическом списке

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

Настройка внешнего вида и читаемости

После того как данные выведены, диаграмму стоит привести в читаемый вид. Полезные свойства: «Отображать легенду» (показывает расшифровку серий), «Подписи» у значений (выводит числа прямо на столбцах), «Максимум серий» (ограничивает число серий, остальные сворачиваются в «Прочие»).

Для графиков с периодами проверьте сортировку точек. Если периоды в запросе не упорядочены, месяцы на оси X могут идти вразнобой. В СКД сортировка задаётся на закладке «Настройки» — «Сортировка», в программном заполнении — предложением УПОРЯДОЧИТЬ ПО в запросе.

Типичные ошибки и как их исправить

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

Вторая частая проблема — перепутанные точки и серии. Если по оси X оказались товары, а сериями стали месяцы, график выглядит бессмысленно. Поменяйте поля местами в настройках диаграммы или в коде.

Типичные ошибки
01
Числовое поле не добавлено в ресурсы СКД — диаграмма пустая
02
Передача строки вместо числа в УстановитьЗначение — значения не отображаются
03
Отсутствие сортировки периодов — месяцы на оси идут вразнобой
04
Слишком много серий без ограничения — график нечитаем, включите «Максимум серий»
05
Очистка диаграммы забыта — при обновлении данные дублируются поверх старых
Контрольные точки

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

Данные на диаграмме
Норма

Значения совпадают с итогами запроса или табличного отчёта

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

Суммы на графике не сходятся с данными источника

Ось точек
Норма

Периоды или категории идут в правильном порядке

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

Перепутан порядок или пропущены значения

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

Каждая серия подписана и различима цветом

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

Серии слиплись в «Прочие» или не подписаны

Когда стоит привлечь разработчика

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

Итог

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

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

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

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

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

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

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

Как вывести подписи значений на столбцах гистограммы?

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

Как обновить диаграмму на форме при изменении периода?

Поместите заполнение диаграммы в отдельную процедуру и вызывайте её в обработчике изменения поля периода. В начале процедуры обязательно выполните Очистить() — иначе новые точки и серии добавятся к старым, и данные задвоятся.

Можно ли сохранить диаграмму из 1С как картинку?

Да. Диаграмма, размещённая в табличном документе, сохраняется вместе с ним в PDF, Excel или HTML через стандартное сохранение табличного документа. Для программной работы у объекта диаграммы есть метод получения картинки, который возвращает изображение в выбранном формате.

Чем диаграмма отличается от сводной диаграммы?

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