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

Разработка и Конфигурация · 9 мин

Как построить диаграмму Ганта в 1С

Пошаговая инструкция по построению диаграммы Ганта в 1С: объект ДиаграммаГанта, программное заполнение точками, интервалами и связями, типичные ошибки и FAQ.

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

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

Ниже разобраны два практических пути: использование готовой диаграммы в типовой конфигурации и построение собственной с нуля в конфигураторе. Отдельно рассмотрены заполнение связями, настройка отображения, проверка результата и типичные ошибки, из-за которых диаграмма выглядит пустой или «ломается».

Что понадобится и как выбрать подход

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

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

Маршрут решения

Как выбрать действие

В типовой конфигурации есть раздел планирования с диаграммойИспользуйте встроенный механизм: откройте отчёт, задайте период и отборы, не изменяя конфигурацию
Диаграммы нет, но есть данные с датами начала и окончанияСоздайте форму с объектом ДиаграммаГанта и заполните её программно из запроса
Дат окончания в данных нетСначала добавьте хранение длительности или даты окончания, иначе интервалы построить невозможно

Использование готовой диаграммы в типовой конфигурации

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

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

Создание диаграммы на форме в конфигураторе

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

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

Программное заполнение точками и интервалами

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

Типовой фрагмент кода заполнения выглядит так:

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

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

Точка = Диаграмма.УстановитьТочку("Заказ1");

Точка.Текст = "Заказ № 101";

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

Значение = Диаграмма.ПолучитьЗначение(Точка, Серия);

Интервал = Значение.Добавить();

Интервал.Начало = ДатаНачала;

Интервал.Конец = ДатаОкончания;

Интервал.Текст = "Сборка";

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

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

Порядок действий
  1. 1
    Создайте реквизит формы типа ДиаграммаГанта и разместите его на форме
  2. 2
    Очистите диаграмму и отключите обновление на время заполнения
  3. 3
    Создайте точки по строкам плана (исполнители, заказы, этапы)
  4. 4
    Для каждой точки добавьте интервалы с датами начала и окончания из запроса
  5. 5
    Добавьте связи между интервалами, если нужны зависимости
  6. 6
    Включите обновление и проверьте отображение на форме

Связи между интервалами и настройка отображения

Зависимости «финиш-старт» и другие типы связей добавляются через коллекцию связей значения диаграммы: указывается интервал-источник, интервал-приёмник и тип связи. Связи отображаются стрелками и позволяют показать критический путь проекта. Учтите, что большое число связей перегружает картинку — имеет смысл выводить только ключевые зависимости.

Для читаемости настройте цвета интервалов (например, по статусу задачи), подписи точек и формат шкалы времени. Цвет интервала задаётся через свойство Цвет, текст — через Текст. Полезно также настроить всплывающую подсказку с расшифровкой: исполнитель, процент выполнения, длительность.

Типичные ошибки
01
Не возвращено Обновление = Истина после заполнения — диаграмма выглядит пустой, хотя данные загружены
02
Дата окончания раньше даты начала из-за ошибок в данных — интервал не отображается или искажает шкалу
03
Пересоздание точек при каждом обновлении без очистки — строки дублируются
04
Слишком много интервалов без отбора по периоду — диаграмма строится медленно и нечитаема
05
Интерактивное редактирование включено без обработчиков — пользовательские изменения теряются

Проверка результата и производительность

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

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

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

Число строк на диаграмме
Норма

Совпадает с количеством точек из источника данных

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

Строк больше (дубли) или меньше (потеряны точки)

Даты интервалов
Норма

Совпадают с датами в документах, конец позже начала

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

Интервалы сдвинуты, обрезаны или отсутствуют

Скорость построения
Норма

Диаграмма открывается за приемлемое время на типовом объёме

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

Форма подвисает — нужно ограничить период и отборы

Связи
Норма

Стрелки соединяют правильные интервалы

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

Связи указывают не туда или отсутствуют

FAQ

Можно ли построить диаграмму Ганта без изменения конфигурации?

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

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

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

Почему диаграмма пустая, хотя код заполнения выполняется без ошибок?

Чаще всего не возвращено свойство Обновление = Истина после заполнения либо данные запроса пустые из-за отборов. Также проверьте, что даты начала и окончания действительно заполнены и конец позже начала.

Можно ли редактировать сроки задач прямо на диаграмме?

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

Как показать иерархию «проект — этапы — задачи»?

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

Итог

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

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