К статье
Практический материал

Отчеты и Аналитика · 12 мин

Как в 1С построить график: от простой диаграммы до настройки в коде

Практическая инструкция: как в 1С построить график через СКД, диаграмму на форме и кодом. Настройка серий, точек, типов диаграмм, ошибки и проверка результата.

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

Выбор способа зависит от задачи. Если руководителю нужен отчёт «Продажи по месяцам» с графиком — достаточно СКД, и вся работа займёт 10–15 минут в конструкторе. Если график должен обновляться в реальном времени на рабочем столе или реагировать на действия пользователя нестандартным образом — потребуется программное заполнение диаграммы на форме.

Ниже разобраны оба подхода с конкретными шагами, типичными ошибками и способами проверки результата. Материал применим к конфигурациям на управляемых формах (1С:Бухгалтерия 8, Управление торговлей 11, ERP, ЗУП и самописные решения), а также к обычным формам с оговорками.

Какие инструменты 1С умеют рисовать графики

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

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

График в отчёте через СКД без программирования

Это самый быстрый путь. Откройте конфигуратор, создайте новый отчёт, добавьте схему компоновки данных и набор данных «Запрос». Напишите запрос, который возвращает минимум три поля: измерение для точек (период, контрагент, номенклатура), измерение для серий (при необходимости) и числовой ресурс (сумма, количество).

Далее перейдите на закладку «Настройки» схемы компоновки. В дереве настроек добавьте элемент «Диаграмма» — он появится в структуре рядом с группировками. Внутри диаграммы настройте закладки «Точки» и «Серии»: перетащите туда нужные поля. На закладке «Выбранные поля» верхнего уровня укажите числовой ресурс — именно он станет значением на графике.

Порядок действий в СКД
  1. 1
    Создайте отчёт и добавьте схему компоновки данных
  2. 2
    Напишите запрос: поле точек (период), поле серий (опционально), числовой ресурс
  3. 3
    На закладке «Ресурсы» отметьте ресурс для расчёта
  4. 4
    В настройках добавьте элемент «Диаграмма» в структуру отчёта
  5. 5
    Разложите поля по закладкам «Точки» и «Серии» диаграммы
  6. 6
    Сформируйте отчёт и проверьте, что график отображается
  7. 7
    При необходимости задайте тип диаграммы: «Другие настройки» → «Тип диаграммы»

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

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

Диаграмма на форме с программным заполнением

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

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

Диаграмма.Очистить();

Диаграмма.ТипДиаграммы = ТипДиаграммы.График;

Диаграмма.Обновление = Ложь;

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

Пока Выборка.Следующий() Цикл

Точка = Диаграмма.Точки.Добавить(Формат(Выборка.Период, "ДЛФ=D"));

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

КонецЦикла;

Диаграмма.Обновление = Истина;

bsl
Диаграмма.ТипДиаграммы = ТипДиаграммы.Гистограмма;
Серия = Диаграмма.Серии.Добавить("План");
Точка = Диаграмма.Точки.Добавить("Январь");
Диаграмма.УстановитьЗначение(Точка, Серия, 150000);

Отключение обновления (Обновление = Ложь) на время заполнения ускоряет работу при большом количестве точек — без этого диаграмма перерисовывается после каждого изменения. Не забудьте вернуть Истина в конце, иначе график останется пустым на экране.

Данные для графика удобно получать запросом с итогами по периодам. В запросе используйте функции НАЧАЛОПЕРИОДА или виртуальные таблицы оборотов с периодичностью «Месяц» — тогда точки будут идти в правильной хронологической последовательности без дополнительной сортировки.

Настройка внешнего вида графика

После того как данные выведены, график обычно требует доработки оформления. Основные свойства доступны и в палитре свойств элемента формы, и программно. Ключевые из них: АвтоТранспонирование (меняет местами серии и точки), МаксимумСерий, ОтображатьЛегенду, РежимСглаживания для линейных графиков.

Цвета серий платформа назначает автоматически из стандартной палитры, но их можно задать явно через свойство Цвет серии. Подписи точек форматируйте до добавления: например, преобразуйте дату в строку «Янв», «Фев» через функцию Формат(), иначе на оси появятся полные даты со временем и график станет нечитаемым.

Для диаграмм типа «График» полезно включить режим сглаживания и маркеры точек — так легче считывать значения. Для гистограмм с несколькими сериями проверьте параметр «Раздвижение»: значение «Нет» превратит столбцы в накопительные, что меняет смысл диаграммы.

Выбор типа диаграммы под задачу

Тип диаграммы определяет, насколько легко пользователь считает информацию. Линейный график лучше всего показывает динамику во времени. Гистограмма подходит для сравнения категорий между собой. Круговая диаграмма — только для долей от целого и при небольшом числе точек (до 5–7, иначе сектора сливаются).

Сравнение типов диаграмм

График (линейный)

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

Гистограмма

Сравнение значений по категориям или периодам. Ограничение: при более чем 15–20 точках столбцы сужаются до нечитаемости.

Круговая

Структура целого: доли расходов, состав выручки. Ограничение: не показывает динамику и плохо работает с близкими значениями.

С накоплением

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

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

Типичные ошибки и их устранение

Самая частая проблема — пустая диаграмма при корректном запросе. Причины: ресурс не отмечен на закладке «Ресурсы» в СКД, поле ресурса не добавлено в выбранные поля, либо запрос возвращает NULL в числовом поле. Проверьте результат запроса в консоли: все значения ресурса должны быть числами.

Вторая распространённая ситуация — точки на оси идут вразнобой. Это происходит, когда точки добавляются строками без сортировки исходных данных. Решение: добавьте УПОРЯДОЧИТЬ ПО в запрос или сортируйте выборку перед заполнением диаграммы.

Типичные ошибки
01
Забыли вернуть Диаграмма.Обновление = Истина после заполнения — график остаётся пустым, хотя данные загружены
02
Не очистили диаграмму перед повторным заполнением — серии и точки дублируются при каждом обновлении формы
03
Используют дату как точку без форматирования — на оси появляются значения вида «01.01.2026 0:00:00»
04
NULL в ресурсе запроса — диаграмма в СКД не строится без явного сообщения об ошибке; применяйте ЕСТЬNULL(Сумма, 0)
05
Слишком много точек (сотни значений) — график превращается в нечитаемую полосу; агрегируйте данные до месяца или недели

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

Проверка результата и ограничения

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

Контрольные точки

Как проверить результат

Сумма значений на графике
Норма

Совпадает с итогом по ресурсу в таблице отчёта

Тревожный признак

График занижен или завышен — проверьте группировки и отборы запроса

Порядок точек по оси X
Норма

Периоды идут хронологически слева направо

Тревожный признак

Точки перемешаны — нет сортировки в запросе

Количество серий
Норма

Число серий равно числу сравниваемых показателей

Тревожный признак

Лишние или пропущенные серии — ошибка в полях серий СКД или в цикле заполнения

Отображение при смене отбора
Норма

График перестраивается корректно

Тревожный признак

Старые данные остаются — диаграмма не очищается перед заполнением

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

Внешние отчёты как безопасная альтернатива

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

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

Итог

Что важно запомнить

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

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

Как построить график в 1С без доступа к конфигуратору?

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

Почему круговая диаграмма не отображается, хотя данные есть?

Чаще всего на закладке «Серии» диаграммы в СКД указано поле, которое конфликтует с логикой кругового типа, либо значения ресурса равны нулю или NULL. Очистите серии, оставив только точки и ресурс, и убедитесь, что сумма значений больше нуля.

Как вывести на одном графике план и факт?

Два способа. В СКД: добавьте два ресурса (СуммаПлан, СуммаФакт) и отметьте оба в выбранных полях — каждый станет отдельной серией. Программно: создайте две серии («План», «Факт») и заполняйте значения для каждой в одном цикле по точкам.

График строится медленно, что делать?

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

Можно ли выгрузить график из 1С в картинку или Excel?

Табличный документ с диаграммой сохраняется в форматы MXL, PDF, Excel — диаграмма переносится как изображение или объект в зависимости от формата. Для получения картинки программно используйте сохранение табличного документа в PDF или графический формат через доступные методы платформы.

Чем диаграмма отличается от сводной диаграммы в 1С?

Сводная диаграмма строится автоматически по данным сводной таблицы (аналог сводных таблиц Excel) и доступна в обычных формах и отчётах. Обычная диаграмма заполняется вручную или через СКД и даёт больше контроля над структурой данных и оформлением. В управляемых формах чаще применяют именно диаграмму с СКД.