Диаграммы в 1С: от выбора типа до вывода на форму и в отчёт
Содержание
Диаграмму в 1С строят двумя путями: без программирования — через настройки отчёта в режиме «Предприятие», и в конфигураторе — элементом формы или средствами системы компоновки данных. Выбор типа графика (гистограмма, круговая, линия), заполнение точками и сериями, расшифровка по клику и выгрузка в Excel — всё это настраивается, и ниже разобран каждый способ.
Диаграмма в платформе 8.3 — это объект с тремя составляющими: точки (категории по горизонтали), серии (наборы сравниваемых значений) и само значение в пересечении точки и серии. Если держать эту модель в голове, настройка перестаёт быть загадкой: хоть на управляемой форме, хоть в компоновке данных логика одна.
Какой тип диаграммы подойдёт под ваши данные
Тип задаётся свойством ТипДиаграммы (перечисление ТипДиаграммы) и влияет только на отрисовку — данные остаются теми же. Выбирайте по задаче, а не по красоте.
- 📊 Гистограмма — сравнить величины между объектами: выручка по складам, остатки по номенклатуре. Горизонтальный вариант (линейчатая) удобен, когда у категорий длинные названия.
- 📈 График (линия) — показать динамику во времени: продажи по месяцам, движение остатков.
- 🥧 Круговая — доля каждой части в целом: структура затрат, разбивка выручки по группам. Работает, пока секторов немного — пять-семь, не больше.
- 📐 С областями — та же динамика, что и график, но с акцентом на накопленный объём.
- 🕸️ Радар (лепестковая) — сравнение по нескольким показателям сразу, например оценка поставщиков по цене, срокам и качеству.
- 📉 Биржевая — минимум/максимум/закрытие, узкоспециальная.
У большинства типов есть объёмный вариант (ГистограммаОбъемная, ГрафикОбъемный и т. д.). На практике объём почти всегда мешает читать значения — берите плоский вид.
Коротко, что под какую задачу:
| Задача | Тип | Сколько элементов тянет |
|---|---|---|
| Сравнить объекты между собой | Гистограмма / линейчатая | Десятки |
| Динамика по датам | График, с областями | Много точек, несколько серий |
| Доля в целом | Круговая, кольцевая | 5–7 секторов |
| Оценка по нескольким критериям | Радар | 3–8 осей |
| Котировки, диапазоны | Биржевая | Специальная |
Правило простое: сравниваете объекты — гистограмма, смотрите во времени — график, делите целое на части — круговая. Если не можете выбрать между графиком и гистограммой, а данные привязаны к датам — значит, график.
Подписи значений, легенду и заголовок включают в свойствах диаграммы. Для презентаций оставляют подписи прямо на точках, чтобы цифры читались без наведения мыши; для рабочих мониторов хватает осей и легенды.
Диаграмма в отчёте без программирования
Самый быстрый способ — настройки отчёта в режиме «Предприятие». Большинство типовых отчётов в БП 3.0, ЗУП 3.1 и УТ 11 построены на СКД и умеют выводить диаграмму без правок в конфигураторе.
- Откройте нужный отчёт и нажмите
Настройки(илиЕщё → Изменить вариант отчётадля расширенного режима). - Перейдите на вкладку со структурой отчёта.
- В командной панели структуры добавьте новый элемент и выберите Диаграмма вместо таблицы.
- В свойствах диаграммы разложите поля по трём областям: что сравниваем — в точки, по каким разрезам — в серии, числовой показатель (ресурс) попадёт в значение автоматически.
- Выберите тип диаграммы в её свойствах и сформируйте отчёт кнопкой
Сформировать.
У многих типовых отчётов уже есть готовый вариант с диаграммой — посмотрите список вариантов перед тем, как настраивать с нуля. Если вариант сохранить (Ещё → Сохранить вариант отчёта), он останется доступен и другим пользователям.
Пример из практики: отчёт по продажам в УТ 11 выводит таблицу по номенклатуре. Чтобы увидеть долю каждой группы товаров, добавляете в структуру диаграмму, в точки кладёте группу номенклатуры, типом ставите круговую — и структура продаж видна одним взглядом. Никакого конфигуратора для этого не нужно.
Ограничение режима «Предприятие» в том, что набор полей ограничен схемой отчёта: добавить в диаграмму показатель, которого нет в отчёте, нельзя. Если нужного разреза в типовом отчёте не хватает, придётся дорабатывать схему в конфигураторе или строить отдельный отчёт на СКД.
Если точки и серии перепутать местами, диаграмма формально построится, но окажется нечитаемой — например, месяцы уйдут в легенду, а показатели в ось. Проверяйте: по горизонтали должно стоять то, что вы перечисляете (товары, месяцы), в легенде — то, что сравниваете (склады, годы).
Настройка диаграммы на форме в конфигураторе
Когда диаграмма нужна в обработке, на форме документа или в собственном отчёте, её размещают как элемент управляемой формы. Этот путь даёт полный контроль: вы сами решаете, откуда берутся данные, когда диаграмма перерисовывается и что происходит по клику. Платформа интерфейса «Такси» рисует такую диаграмму одинаково в тонком и веб-клиенте.
- В конфигураторе откройте форму и добавьте реквизит формы с типом
Диаграмма. - Перетащите реквизит в дерево элементов формы — появится поле диаграммы.
- Заполнение пишут в модуле формы. Базовый шаблон такой:
Диаграмма.Очистить();
Диаграмма.ТипДиаграммы = ТипДиаграммы.Гистограмма;
ТочкаЯнварь = Диаграмма.Точки.Добавить("Январь");
ТочкаФевраль = Диаграмма.Точки.Добавить("Февраль");
СерияВыручка = Диаграмма.Серии.Добавить("Выручка");
Диаграмма.УстановитьЗначение(ТочкаЯнварь, СерияВыручка, 1500000);
Диаграмма.УстановитьЗначение(ТочкаФевраль, СерияВыручка, 1820000);
Метод Очистить() сбрасывает прежнее содержимое — вызывайте его перед каждым перезаполнением, иначе точки будут накапливаться. УстановитьЗначение принимает точку, серию и число в их пересечении.
Чтобы серий было несколько (сравнить выручку и затраты), добавьте вторую серию и задайте значения для тех же точек — на гистограмме они встанут рядом сгруппированными столбцами, на графике лягут отдельными линиями. Внешний вид — палитра, подписи значений, положение легенды — настраивается свойствами элемента в палитре свойств формы либо программно через свойства диаграммы.
Точки и серии можно добавлять в цикле по выборке запроса: на каждую строку результата — своя точка, значение ресурса передаётся в УстановитьЗначение. Текст точки (Январь, название склада) — это то, что увидит пользователь по горизонтали, поэтому берите в него понятное представление, а не код или ссылку.
Данные для диаграммы собирайте запросом на сервере, а заполнение выполняйте в серверной процедуре — обращение к базе из клиентского контекста формы работать не будет. Для управляемой формы это означает процедуру с директивой сервера, которую вызывают при открытии или по кнопке обновления.
Диаграммы через систему компоновки данных
СКД — основной инструмент, когда диаграмма строится на запросе и должна поддерживать расшифровку. Настройка идёт в конструкторе схемы компоновки.
- На вкладке Настройки в структуре отчёта добавьте элемент Диаграмма (через командную панель или контекстное меню структуры).
- В ветке диаграммы задайте группировки: по строкам пойдут точки, по столбцам — серии.
- Ресурс схемы (сумма, количество) станет значением. Если ресурсов несколько, каждый можно вывести отдельной серией.
- Тип диаграммы выбирается в параметрах вывода на той же вкладке.
Плюс СКД в том, что расшифровка работает сама: двойной клик по точке в готовом отчёте открывает детализацию по этому значению. Отдельно программировать её не нужно. Там же, в настройках, задаются отбор, сортировка точек и условное оформление.
Сортировка точек — частый вопрос. По умолчанию они идут в порядке группировки; если нужен рейтинг (от большего к меньшему), задайте сортировку по ресурсу в настройках диаграммы. Для динамики по времени, наоборот, сортировку ставят по дате, иначе линия графика будет скакать.
Для составных отчётов диаграмму и таблицу размещают рядом в одной структуре — пользователь видит и цифры, и график на одном листе. Это удобнее, чем две отдельные формы: при смене отбора обновляется и то, и другое синхронно.
Экспорт диаграммы в Excel и PDF
Результат отчёта или формы с диаграммой выводится в табличный документ, а он сохраняется в сторонние форматы.
В режиме «Предприятие»:
- Сформируйте отчёт.
- Откройте
Ещё → Сохранить(или главное меню →Файл → Сохранить как). - Выберите тип файла:
.xlsxдля Excel или.pdf.
Программно из кода — методом Записать табличного документа с указанием формата:
ТабДок.Записать("C:\Отчёты\Выручка.xlsx", ТипФайлаТабличногоДокумента.XLSX);
ТабДок.Записать("C:\Отчёты\Выручка.pdf", ТипФайлаТабличногоДокумента.PDF);
Важная особенность: при выгрузке в Excel диаграмма из 1С сохраняется как рисунок, а не как редактируемый график Excel. Менять в Excel её точки и тип уже не получится — это статичная картинка. PDF фиксирует вид один в один, его удобно отправлять на согласование.
Метод Записать пригодится и для автоматизации: отчёт с диаграммой формируют по расписанию регламентным заданием и сохраняют в PDF на сетевую папку или отправляют письмом. Тогда руководитель получает готовую сводку с графиком, не открывая 1С. Путь к файлу и формат в таком задании задают параметрами, а не хардкодят.
Если нужен именно «живой» график Excel с возможностью редактирования, выгружайте в Excel не диаграмму, а таблицу данных, и стройте график уже средствами Excel. Диаграмму 1С для этого не используют.
Интерактивность и обновление данных на лету
Диаграмма на форме может реагировать на действия пользователя и обновляться без переоткрытия формы.
Обработка выбора. У поля диаграммы на форме есть событие выбора: когда пользователь кликает по точке, в обработчике приходит её идентификатор. По нему открывают связанный документ, список или отдельную форму с детализацией — так делают собственную расшифровку там, где СКД не используется.
Обновление по таймеру. Для диаграмм, которые должны отражать меняющиеся данные (монитор остатков, загрузка касс), заполнение вешают на обработчик ожидания:
ПодключитьОбработчикОжидания("ОбновитьДиаграмму", 60);
Процедура ОбновитьДиаграмму раз в 60 секунд перечитывает данные и заново заполняет точки и серии после Очистить(). Интервал меньше 10–15 секунд ставить не стоит — частые запросы к базе нагружают сервер без пользы для восприятия.
Переключение типа. Тип диаграммы можно менять в реальном времени: добавьте на форму поле выбора
, а в его обработчике присвойте Диаграмма.ТипДиаграммы новое значение. Пользователь сам переключится между гистограммой и графиком, не выходя из формы.
Когда интерактив оправдан. Для отчёта, который смотрят раз в месяц, расшифровку и таймер городить не нужно — хватит статичной диаграммы в СКД. Интерактив окупается на рабочих местах, где к одной картинке возвращаются по многу раз за день: мониторы остатков, панель руководителя, оперативная сводка по кассам. Там переключение разреза и обновление без переоткрытия экономят клики.
Типичные ошибки при работе с диаграммами
Большинство проблем — не баги платформы, а недочёты в настройке данных.
Очистить(). Добавьте его в начало процедуры заполнения.Отдельно про производительность: диаграмма на тысячи точек не информативна и тормозит отрисовку. Ограничивайте выборку отбором и группировкой — глаз всё равно не читает больше нескольких десятков столбцов.
Частые вопросы
Чем диаграмма отличается от диаграммы Ганта?
Диаграмма) строит гистограммы, графики и круговые по точкам и сериям. Диаграмма Ганта (ДиаграммаГанта) показывает интервалы во времени — её применяют для план-графиков и загрузки ресурсов, настройка у неё своя.