Тип: СерияДиаграммыГанта. Содержит ссылку на родителя серий диаграммы Ганта.
Полное описание, параметры и ограничения
СерииДиаграммыГанта.Родитель (GanttChartSeriesCollection.Parent)
СерииДиаграммыГанта (GanttChartSeriesCollection)
Родитель (Parent)
Доступен, начиная с версии 8.0.
Использование:
Только чтение.
Описание:
Тип: СерияДиаграммыГанта.
Содержит ссылку на родителя серий диаграммы Ганта.
Доступность:
Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.
Использование в версии:
Доступен, начиная с версии 8.0.
Методическая информация
Практические примеры
Сгруппировать задачи и сравнить сворачивание точек с сериями
Иерархии задач и вариантов графика независимы. Создаём родительские ключи, дочерние объекты и управляем раскрытием на клиенте.
Где и как запускать
Модуль новой управляемой формы учебной внешней обработки. Код содержит готовые процедуры с директивами; вставляйте на уровне модуля, не внутрь другого обработчика. Каждую задачу запускайте в отдельной копии формы.
Подготовка
В учебной базе создайте новую внешнюю обработку УчебнаяДиаграммаГанта с пустой управляемой основной формой.
Не добавляйте вручную реквизит УчебныйГрафик и поле ПолеГанта. В событиях формы свяжите ПриСозданииНаСервере с одноимённой процедурой.
Весь код вставьте на уровне модуля, сохраните EPF и откройте в тонком клиенте Windows. Каждый урок запускайте в отдельной копии формы.
Две вымышленные задачи 14–16 сентября 2026 года создаются только в памяти. Рабочие заказы, расписания и печать не используются.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Новые = Новый Массив;
Новые.Добавить(Новый РеквизитФормы("УчебныйГрафик", Новый ОписаниеТипов("ДиаграммаГанта")));
ЭтаФорма.ИзменитьРеквизиты(Новые);
График = Новый ДиаграммаГанта;
График.Обновление = Ложь;
График.АвтоОпределениеПолногоИнтервала = Ложь;
График.УстановитьПолныйИнтервал(Дата(2026, 9, 14, 9), Дата(2026, 9, 16, 18));
График.АвтоУстановкаТекстаСерий = Ложь;
График.АвтоУстановкаТекстаТочек = Ложь;
График.ОтображатьПустыеЗначения = Ложь;
График.ОтображениеТекстаИнтервала = ОтображениеТекстаИнтервалаДиаграммыГанта.Отображать;
График.ПрозрачныйФон = Ложь;
График.ЦветФона = Новый Цвет(255, 255, 255);
График.Окантовка = Истина;
План = График.УстановитьСерию("plan");
План.Текст = "Учебный план";
План.Цвет = Новый Цвет(80, 145, 210);
План.ПриоритетЦвета = Истина;
Факт = График.УстановитьСерию("actual");
Факт.Текст = "Учебный факт";
Факт.Цвет = Новый Цвет(95, 165, 95);
Факт.ПриоритетЦвета = Истина;
Подготовка = График.УстановитьТочку("prepare");
Подготовка.Текст = "Подготовка учебного комплекта";
Сборка = График.УстановитьТочку("assemble");
Сборка.Текст = "Сборка учебного комплекта";
ПланПодготовки = График.ПолучитьЗначение(Подготовка, План);
ПланПодготовки.Текст = "План подготовки";
ПланПодготовки.Редактирование = Ложь;
Первый = ПланПодготовки.Добавить();
Первый.Начало = Дата(2026, 9, 14, 9);
Первый.Конец = Дата(2026, 9, 14, 12);
Первый.Текст = "Подготовка: 3 часа";
Первый.Расшифровка = "training-prepare-plan";
ПланСборки = График.ПолучитьЗначение(Сборка, План);
ПланСборки.Текст = "План сборки";
ПланСборки.Редактирование = Ложь;
Второй = ПланСборки.Добавить();
Второй.Начало = Дата(2026, 9, 14, 13);
Второй.Конец = Дата(2026, 9, 15, 11);
Второй.Текст = "Сборка учебного комплекта";
Второй.Расшифровка = "training-assemble-plan";
ФактПодготовки = График.ПолучитьЗначение(Подготовка, Факт);
ФактПодготовки.Редактирование = Ложь;
Фактический = ФактПодготовки.Добавить();
Фактический.Начало = Дата(2026, 9, 14, 9);
Фактический.Конец = Дата(2026, 9, 14, 13);
Фактический.Текст = "Учебный факт: 4 часа";
Заголовок = График.ОбластьЗаголовка;
Заголовок.Текст = "Учебный план и факт — 14–16.09.2026";
Область = График.ОбластьПостроения;
Область.Заголовок = "Учебные задачи";
Область.ОтображатьТекстТочек = ОтображениеВДиаграммеГанта.Отображать;
Шкала = Область.ШкалаВремени;
Пока Шкала.Элементы.Количество() > 0 Цикл
Шкала.Элементы.Удалить(Шкала.Элементы.Получить(0));
КонецЦикла;
Дни = Шкала.Элементы.Добавить();
Дни.Единица = ТипЕдиницыШкалыВремени.День;
Дни.Кратность = 1;
Дни.Формат = "ДФ=dd.MM";
Проект = График.УстановитьТочку("project");
Проект.Текст = "Учебный проект";
Этап = График.УстановитьТочку("training-stage", "project");
Этап.Текст = "Учебный этап проекта";
ГруппаВариантов = График.УстановитьСерию("variants");
ГруппаВариантов.Текст = "Учебные варианты";
Базовый = График.УстановитьСерию("baseline", "variants");
Базовый.Текст = "Базовый вариант";
ЗначениеЭтапа = График.ПолучитьЗначение(Этап, Базовый);
ЗначениеЭтапа.Редактирование = Ложь;
ИнтервалЭтапа = ЗначениеЭтапа.Добавить();
ИнтервалЭтапа.Начало = Дата(2026, 9, 15, 10);
ИнтервалЭтапа.Конец = Дата(2026, 9, 15, 12);
График.Обновление = Истина;
ЭтаФорма.УчебныйГрафик = График;
Поле = Элементы.Добавить("ПолеГанта", Тип("ПолеФормы"));
Поле.Вид = ВидПоляФормы.ПолеДиаграммыГанта;
Поле.ПутьКДанным = "УчебныйГрафик";
Поле.РастягиватьПоГоризонтали = Истина;
Поле.РастягиватьПоВертикали = Истина;
КомандаДействия = ЭтаФорма.Команды.Добавить("УчебноеДействие");
КомандаДействия.Действие = "УчебноеДействие";
КомандаДействия.Заголовок = "Проверить иерархии";
КомандаДействия.Подсказка = "Действие только над данными учебной формы";
КомандаДействия.ИзменяетСохраняемыеДанные = Ложь;
Кнопка = Элементы.Добавить("КнопкаУчебноеДействие", Тип("КнопкаФормы"));
Кнопка.ИмяКоманды = КомандаДействия.Имя;
Кнопка.Заголовок = КомандаДействия.Заголовок;
КонецПроцедуры
&НаКлиенте
Процедура УчебноеДействие(Команда)
Проект = УчебныйГрафик.УстановитьТочку("project");
Этап = УчебныйГрафик.УстановитьТочку("training-stage", "project");
Группа = УчебныйГрафик.УстановитьСерию("variants");
Базовый = УчебныйГрафик.УстановитьСерию("baseline", "variants");
Сообщить(Этап.Родитель = Проект);
Сообщить(Этап.Уровень() = Проект.Уровень() + 1);
Сообщить(Базовый.Родитель = Группа);
Сообщить(Базовый.Уровень() = Группа.Уровень() + 1);
Сообщить(Проект.Точки.Родитель = Проект);
Сообщить(Группа.Серии.Родитель = Группа);
УчебныйГрафик.СвернутьТочку(Проект, Истина);
Сообщить(Не УчебныйГрафик.РазвернутаТочка(Проект));
УчебныйГрафик.РазвернутьТочку(Проект, Истина);
Сообщить(УчебныйГрафик.РазвернутаТочка(Проект));
УчебныйГрафик.СвернутьСерию(Группа, Истина);
Сообщить(Не УчебныйГрафик.РазвернутаСерия(Группа));
УчебныйГрафик.РазвернутьСерию(Группа, Истина);
Сообщить(УчебныйГрафик.РазвернутаСерия(Группа));
УчебныйГрафик.ПоказатьУровеньТочек(0);
УчебныйГрафик.ПоказатьУровеньСерий(0);
КонецПроцедуры
Разбор по шагам
Второй параметр УстановитьТочку/УстановитьСерию — значение родителя, здесь строковый ключ, не его текст.
Проект → Этап — дерево точек, Варианты → Базовый — независимое дерево серий.
Родитель у дочернего объекта и Родитель у коллекции детей указывают на соответствующий родительский объект.
Уровни проверяем относительно родителя, не гадаем номер самого верхнего уровня.
Сворачиваем и разворачиваем обе иерархии, проверяя их состояния. ПоказатьУровень...(0) раскрывает все уровни согласно справке.
Как проверить результат
Десять булевых проверок Истина.
В конце все уровни раскрыты, виден двухчасовой этап 15.09.
Исходные подготовка и сборка тоже сохранены.
Ожидаемый результат
Новичок отличает две иерархии и знает точные параметры управления раскрытием.
На что обратить внимание
Значение родителя не должно путаться с объектом родителя; метод ожидает его ключ.
ПоказатьУровень...(0) здесь не значит скрыть всё — это документированное раскрытие всех уровней.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.