Диаграммы в 1С: от выбора типа до вывода на форму и в отчёт

· 9 мин

Содержание

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

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

Какой тип диаграммы подойдёт под ваши данные

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

  • 📊 Гистограмма — сравнить величины между объектами: выручка по складам, остатки по номенклатуре. Горизонтальный вариант (линейчатая) удобен, когда у категорий длинные названия.
  • 📈 График (линия) — показать динамику во времени: продажи по месяцам, движение остатков.
  • 🥧 Круговая — доля каждой части в целом: структура затрат, разбивка выручки по группам. Работает, пока секторов немного — пять-семь, не больше.
  • 📐 С областями — та же динамика, что и график, но с акцентом на накопленный объём.
  • 🕸️ Радар (лепестковая) — сравнение по нескольким показателям сразу, например оценка поставщиков по цене, срокам и качеству.
  • 📉 Биржевая — минимум/максимум/закрытие, узкоспециальная.

У большинства типов есть объёмный вариант (ГистограммаОбъемная, ГрафикОбъемный и т. д.). На практике объём почти всегда мешает читать значения — берите плоский вид.

Коротко, что под какую задачу:

ЗадачаТипСколько элементов тянет
Сравнить объекты между собойГистограмма / линейчатаяДесятки
Динамика по датамГрафик, с областямиМного точек, несколько серий
Доля в целомКруговая, кольцевая5–7 секторов
Оценка по нескольким критериямРадар3–8 осей
Котировки, диапазоныБиржеваяСпециальная

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

Подписи значений, легенду и заголовок включают в свойствах диаграммы. Для презентаций оставляют подписи прямо на точках, чтобы цифры читались без наведения мыши; для рабочих мониторов хватает осей и легенды.

Диаграмма в отчёте без программирования

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

  1. Откройте нужный отчёт и нажмите Настройки (или Ещё → Изменить вариант отчёта для расширенного режима).
  2. Перейдите на вкладку со структурой отчёта.
  3. В командной панели структуры добавьте новый элемент и выберите Диаграмма вместо таблицы.
  4. В свойствах диаграммы разложите поля по трём областям: что сравниваем — в точки, по каким разрезам — в серии, числовой показатель (ресурс) попадёт в значение автоматически.
  5. Выберите тип диаграммы в её свойствах и сформируйте отчёт кнопкой Сформировать.

У многих типовых отчётов уже есть готовый вариант с диаграммой — посмотрите список вариантов перед тем, как настраивать с нуля. Если вариант сохранить (Ещё → Сохранить вариант отчёта), он останется доступен и другим пользователям.

Пример из практики: отчёт по продажам в УТ 11 выводит таблицу по номенклатуре. Чтобы увидеть долю каждой группы товаров, добавляете в структуру диаграмму, в точки кладёте группу номенклатуры, типом ставите круговую — и структура продаж видна одним взглядом. Никакого конфигуратора для этого не нужно.

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

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

Настройка диаграммы на форме в конфигураторе

Когда диаграмма нужна в обработке, на форме документа или в собственном отчёте, её размещают как элемент управляемой формы. Этот путь даёт полный контроль: вы сами решаете, откуда берутся данные, когда диаграмма перерисовывается и что происходит по клику. Платформа интерфейса «Такси» рисует такую диаграмму одинаково в тонком и веб-клиенте.

  1. В конфигураторе откройте форму и добавьте реквизит формы с типом Диаграмма.
  2. Перетащите реквизит в дерево элементов формы — появится поле диаграммы.
  3. Заполнение пишут в модуле формы. Базовый шаблон такой:
Диаграмма.Очистить();
Диаграмма.ТипДиаграммы = ТипДиаграммы.Гистограмма;

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

СерияВыручка = Диаграмма.Серии.Добавить("Выручка");

Диаграмма.УстановитьЗначение(ТочкаЯнварь, СерияВыручка, 1500000);
Диаграмма.УстановитьЗначение(ТочкаФевраль, СерияВыручка, 1820000);

Метод Очистить() сбрасывает прежнее содержимое — вызывайте его перед каждым перезаполнением, иначе точки будут накапливаться. УстановитьЗначение принимает точку, серию и число в их пересечении.

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

Точки и серии можно добавлять в цикле по выборке запроса: на каждую строку результата — своя точка, значение ресурса передаётся в УстановитьЗначение. Текст точки (Январь, название склада) — это то, что увидит пользователь по горизонтали, поэтому берите в него понятное представление, а не код или ссылку.

Данные для диаграммы собирайте запросом на сервере, а заполнение выполняйте в серверной процедуре — обращение к базе из клиентского контекста формы работать не будет. Для управляемой формы это означает процедуру с директивой сервера, которую вызывают при открытии или по кнопке обновления.

Диаграммы через систему компоновки данных

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

  • На вкладке Настройки в структуре отчёта добавьте элемент Диаграмма (через командную панель или контекстное меню структуры).
  • В ветке диаграммы задайте группировки: по строкам пойдут точки, по столбцам — серии.
  • Ресурс схемы (сумма, количество) станет значением. Если ресурсов несколько, каждый можно вывести отдельной серией.
  • Тип диаграммы выбирается в параметрах вывода на той же вкладке.

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

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

Для составных отчётов диаграмму и таблицу размещают рядом в одной структуре — пользователь видит и цифры, и график на одном листе. Это удобнее, чем две отдельные формы: при смене отбора обновляется и то, и другое синхронно.

Экспорт диаграммы в Excel и PDF

Результат отчёта или формы с диаграммой выводится в табличный документ, а он сохраняется в сторонние форматы.

В режиме «Предприятие»:

  1. Сформируйте отчёт.
  2. Откройте Ещё → Сохранить (или главное меню → Файл → Сохранить как).
  3. Выберите тип файла: .xlsx для Excel или .pdf.

Программно из кода — методом Записать табличного документа с указанием формата:

ТабДок.Записать("C:\Отчёты\Выручка.xlsx", ТипФайлаТабличногоДокумента.XLSX);
ТабДок.Записать("C:\Отчёты\Выручка.pdf", ТипФайлаТабличногоДокумента.PDF);

Важная особенность: при выгрузке в Excel диаграмма из 1С сохраняется как рисунок, а не как редактируемый график Excel. Менять в Excel её точки и тип уже не получится — это статичная картинка. PDF фиксирует вид один в один, его удобно отправлять на согласование.

Метод Записать пригодится и для автоматизации: отчёт с диаграммой формируют по расписанию регламентным заданием и сохраняют в PDF на сетевую папку или отправляют письмом. Тогда руководитель получает готовую сводку с графиком, не открывая 1С. Путь к файлу и формат в таком задании задают параметрами, а не хардкодят.

Если нужен именно «живой» график Excel с возможностью редактирования, выгружайте в Excel не диаграмму, а таблицу данных, и стройте график уже средствами Excel. Диаграмму 1С для этого не используют.

Интерактивность и обновление данных на лету

Диаграмма на форме может реагировать на действия пользователя и обновляться без переоткрытия формы.

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

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

ПодключитьОбработчикОжидания("ОбновитьДиаграмму", 60);

Процедура ОбновитьДиаграмму раз в 60 секунд перечитывает данные и заново заполняет точки и серии после Очистить(). Интервал меньше 10–15 секунд ставить не стоит — частые запросы к базе нагружают сервер без пользы для восприятия.

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

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

Типичные ошибки при работе с диаграммами

Большинство проблем — не баги платформы, а недочёты в настройке данных.

Диагностика: выберите симптом

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

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

Чем диаграмма отличается от диаграммы Ганта?
Это разные объекты. Обычная диаграмма (Диаграмма) строит гистограммы, графики и круговые по точкам и сериям. Диаграмма Ганта (ДиаграммаГанта) показывает интервалы во времени — её применяют для план-графиков и загрузки ресурсов, настройка у неё своя.
Можно ли построить диаграмму по динамическому списку?
Напрямую нет — динамический список выводится таблицей. Соберите данные запросом и заполните диаграмму на форме программно либо постройте отчёт на СКД с выводом в диаграмму.
Почему круговая диаграмма показывает только одну серию?
Так и задумано: круговая отображает доли одной серии. Если серий несколько, платформа берёт первую. Для сравнения нескольких наборов выбирайте гистограмму или график.
Как задать свои цвета серий?
Цвета берутся из палитры диаграммы. Поменять их можно в свойствах элемента на форме или программно через свойства оформления серий. В отчётах на СКД цвет задаётся условным оформлением.
Сохранится ли диаграмма при выгрузке в PDF?
Да, PDF фиксирует внешний вид полностью, включая диаграмму. В отличие от Excel, где график становится статичным рисунком, в PDF и так ничего не редактируется, поэтому вид передаётся точно.