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