СерииДиаграммыГанта.Родитель

Свойства · Parent

Тип: СерияДиаграммыГанта. Содержит ссылку на родителя серий диаграммы Ганта.

Полное описание, параметры и ограничения

СерииДиаграммыГанта.Родитель (GanttChartSeriesCollection.Parent)

СерииДиаграммыГанта (GanttChartSeriesCollection)

Родитель (Parent)

Доступен, начиная с версии 8.0.

Использование:
Только чтение.
Описание:
Тип: СерияДиаграммыГанта.
Содержит ссылку на родителя серий диаграммы Ганта.
Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.

Использование в версии:

Доступен, начиная с версии 8.0.

Методическая информация

Практические примеры

Сгруппировать задачи и сравнить сворачивание точек с сериями

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

Где и как запускать

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

Подготовка

  1. В учебной базе создайте новую внешнюю обработку УчебнаяДиаграммаГанта с пустой управляемой основной формой.

  2. Не добавляйте вручную реквизит УчебныйГрафик и поле ПолеГанта. В событиях формы свяжите ПриСозданииНаСервере с одноимённой процедурой.

  3. Весь код вставьте на уровне модуля, сохраните EPF и откройте в тонком клиенте Windows. Каждый урок запускайте в отдельной копии формы.

  4. Две вымышленные задачи 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);
КонецПроцедуры

Разбор по шагам

  1. Второй параметр УстановитьТочку/УстановитьСерию — значение родителя, здесь строковый ключ, не его текст.

  2. Проект → Этап — дерево точек, Варианты → Базовый — независимое дерево серий.

  3. Родитель у дочернего объекта и Родитель у коллекции детей указывают на соответствующий родительский объект.

  4. Уровни проверяем относительно родителя, не гадаем номер самого верхнего уровня.

  5. Сворачиваем и разворачиваем обе иерархии, проверяя их состояния. ПоказатьУровень...(0) раскрывает все уровни согласно справке.

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

  1. Десять булевых проверок Истина.

  2. В конце все уровни раскрыты, виден двухчасовой этап 15.09.

  3. Исходные подготовка и сборка тоже сохранены.

Ожидаемый результат

Новичок отличает две иерархии и знает точные параметры управления раскрытием.

На что обратить внимание

  1. Значение родителя не должно путаться с объектом родителя; метод ожидает его ключ.

  2. ПоказатьУровень...(0) здесь не значит скрыть всё — это документированное раскрытие всех уровней.

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

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.