Диаграммы в 1С: визуализация данных отчёта

· 10 мин

Содержание

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

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

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

С чего начать: данные и подходящий отчёт

Диаграмма не рисуется «с нуля» — она строит картинку по уже готовым данным. Поэтому первый шаг всегда один: получить набор строк с числами, которые есть что сравнивать.

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

Что проверить до начала:

  • 📊 В отчёте есть хотя бы один числовой показатель (ресурс) — сумма, количество, остаток.
  • 🧩 Есть поле-разрез, по которому данные делятся на части — номенклатура, месяц, контрагент, склад.
  • 🔢 Разрезов не слишком много. Сто категорий на круговой диаграмме превратятся в кашу.

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

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

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

Это основной способ без программирования. Диаграмма добавляется в структуру варианта отчёта.

Порядок действий в типовой конфигурации на управляемых формах («Такси»):

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

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

Разберёмся с «Точками» и «Сериями», потому что их путают чаще всего:

  • Точки — это категории, которые идут вдоль оси. Если в точки положить Месяц, на оси появятся месяцы.
  • Серии — это отдельные линии или группы столбцов одного цвета. Положите в серии Склад — и для каждого склада будет свой цвет.
  • Если серия не нужна (сравниваем один показатель по одному разрезу), поле серий оставляют пустым — получится одноцветная диаграмма.

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

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

Какой тип графика выбрать и как работают оси

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

Тип диаграммы выбирают не по вкусу, а по задаче:

ЗадачаПодходящий типПочему
Доля частей в целомКруговаяСразу видно, что занимает большую часть
Сравнить величины по объектамГистограмма / линейчатаяСтолбцы легко сопоставить по высоте
Показать динамику во времениГрафикЛиния подчёркивает рост и спад
Оценить один показатель против нормыИзмерительная«Спидометр» с зонами план/факт
Какой тип диаграммы выбрать под вашу задачу?

По осям важно понимать распределение:

  • 📈 Горизонтальная ось (ось категорий) — это точки. По ней раскладываются разрезы.
  • 📉 Вертикальная ось (ось значений) — это числа. Её шкала по умолчанию строится автоматически от нуля.
  • 🥧 У круговой и измерительной диаграмм привычных осей X/Y нет — там работают доли и шкала.

Шкалу значений в большинстве случаев оставляют автоматической. Фиксировать минимум и максимум вручную стоит, только если нужно сравнивать несколько одинаковых диаграмм между собой — тогда у них должна быть общая шкала.

Вывод диаграммы из формы: объект и код

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

Шаги в конфигураторе:

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

Заполнение сводится к трём действиям: задать тип, создать точки и серии, проставить значения. Диаграмма сначала очищается, чтобы при повторном построении не накладывались старые данные:

Диаграмма.Очистить();
Диаграмма.ТипДиаграммы = ТипДиаграммы.Гистограмма;

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

Для Каждого Строка Из ТаблицаДанных Цикл
    Точка = Диаграмма.УстановитьТочку(Строка.Месяц);
    Диаграмма.УстановитьЗначение(Точка, Серия, Строка.Сумма);
КонецЦикла;

Здесь ТаблицаДанных — заранее собранный запросом или вручную набор строк с полями Месяц и Сумма. Методы УстановитьТочку и УстановитьСерию находят элемент по идентификатору или создают новый, поэтому их безопасно вызывать в цикле. УстановитьЗначение ставит число на пересечении.

Чтобы вывести несколько линий, добавьте вторую серию и проставьте значения отдельно для неё. Серий может быть сколько угодно, но на экране больше пяти-шести линий читаются плохо.

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

Чтобы диаграмма стала интерактивной, у метода УстановитьЗначение есть дополнительный параметр — расшифровка. Передайте в него ссылку или структуру с ключами отбора, и по щелчку на столбце пользователь сможет провалиться в детальные данные. Обработку щелчка пишут в событии выбора диаграммы на форме:

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

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

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

Оформление: цвета, легенда и подписи

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

Что обычно правят:

  • 🎨 Цвета серий — задаются в палитре диаграммы. Для фирменного стиля удобно закрепить цвет за каждой серией, чтобы один и тот же склад везде был одного оттенка.
  • 🏷️ Подписи значений — включите отображение значений у точек, если чисел немного. На плотной гистограмме подписи лучше убрать, оставив их во всплывающей подсказке.
  • 📋 Легенда — её можно показать сбоку, снизу или скрыть. Если серия одна, легенда не нужна.
  • 🔤 Подписи оси категорий — при длинных названиях разверните их под углом или перейдите на линейчатый тип, где подписи идут горизонтально.

Не раскрашивайте диаграмму в десять ярких цветов. Для деловой визуализации достаточно одного-двух основных оттенков и серого для второстепенных данных — так взгляд цепляется за главное.

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

Печать, сохранение и перенос в Excel

Отчёт с диаграммой — это табличный документ. Поэтому к нему применимы все стандартные действия с табличным документом.

Что можно сделать с готовой диаграммой:

  • 🖨️ Напечатать. Команда Печать в меню Ещё формы отчёта или сочетание Ctrl+P. Перед печатью проверьте предпросмотр: диаграмма должна целиком помещаться на лист.
  • 💾 Сохранить в файл. Через Ещё → Сохранить (или Файл → Сохранить копию…) выберите формат: табличный документ .mxl, книга Excel .xlsx, документ .pdf.
  • 📎 Перенести в Excel. При сохранении в .xlsx диаграмма переносится в файл изображением, а не как «живой» график Excel. Если нужна интерактивная диаграмма Excel, выгружайте в файл сами данные (таблицу), а график стройте уже средствами Excel.

Для регулярной выгрузки картинки диаграммы её сохраняют программно — метод записи у объекта-диаграммы позволяет выгрузить изображение в файл заданного формата. Это удобно для автоматической вставки графика в письма или дашборды.

Если диаграмма нужна не на бумаге, а в системе мониторинга, помните: 1С умеет отдавать данные, а не только картинки. Для внешней аналитики надёжнее выгружать числовой ряд, а визуализацию строить на принимающей стороне.

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

Чаще всего проблема не в платформе, а в данных или в настройке точек и серий.

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

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

Когда диаграмму лучше не строить

График — не всегда улучшение. Иногда он скрывает данные вместо того, чтобы их показать.

Диаграмма не нужна или вредит, когда:

  • 🔢 Строк всего две-три. Таблица из трёх чисел читается быстрее любой картинки, а место на экране экономится.
  • 🎯 Важны точные суммы, а не тренд. Для сверки оборотов или подготовки данных в учёт нужны цифры до копейки — диаграмма их округляет в восприятии.
  • ⚖️ Показатели разнородные. Рубли и штуки на одной оси несопоставимы: шкала подстроится под крупные числа и раздавит мелкие.
  • 📄 Отчёт идёт на согласование или в архив. В таких документах ценят таблицу с итогами, а не визуальный акцент.

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

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

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