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