ЭлементыШкалыВремени.Количество

Методы · Count

Получает количество элементов шкалы.

Синтаксис

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

ЭлементыШкалыВремени.Количество (TimeScaleItems.Count)

ЭлементыШкалыВремени (TimeScaleItems)

Количество (Count)

Доступен, начиная с версии 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";
    Заголовок.ПрозрачныйФон = Ложь;
    Заголовок.ЦветФона = Новый Цвет(235, 245, 255);
    Заголовок.ЦветТекста = Новый Цвет(30, 60, 90);
    Заголовок.ЦветРамки = Новый Цвет(100, 140, 180);
    Заголовок.Рамка = Новый Рамка(ТипРамкиЭлементаУправления.Одинарная, 1);
    Заголовок.Шрифт = Новый Шрифт("Arial", 12, Истина);
    Легенда = График.ОбластьЛегенды;
    Легенда.ПрозрачныйФон = Ложь;
    Легенда.ЦветФона = Новый Цвет(250, 250, 250);
    Легенда.ЦветТекста = Новый Цвет(35, 45, 55);
    Легенда.ЦветРамки = Новый Цвет(195, 205, 215);
    Легенда.Рамка = Новый Рамка(ТипРамкиЭлементаУправления.Одинарная, 1);
    Легенда.Шрифт = Новый Шрифт("Arial", 10);
    Легенда.Прокрутка = Истина;
    Область.ПрозрачныйФон = Ложь;
    Область.ЦветФона = Новый Цвет(255, 255, 255);
    Область.ЦветТекста = Новый Цвет(35, 45, 55);
    Область.ЦветРамки = Новый Цвет(195, 205, 215);
    Область.ЦветШкалы = Новый Цвет(240, 245, 250);
    Область.ЦветЗаГраницейПолногоИнтервала = Новый Цвет(235, 235, 235);
    Область.Шрифт = Новый Шрифт("Arial", 10);
    Фоны = График.ИнтервалыФона;
    Фоны.Очистить();
    Обед = Фоны.Добавить(Дата(2026, 9, 14, 12), Дата(2026, 9, 14, 13));
    Обед.Цвет = Новый Цвет(250, 240, 205);
    Проба = Фоны.Добавить(Дата(2026, 9, 14, 16), Дата(2026, 9, 14, 17));
    Фоны.Удалить(Проба);
    Сообщить(Фоны.Количество() = 1);
    Сообщить(Обед.Конец - Обед.Начало = 3600);

    График.Обновление = Истина;
    ЭтаФорма.УчебныйГрафик = График;
    Поле = Элементы.Добавить("ПолеГанта", Тип("ПолеФормы"));
    Поле.Вид = ВидПоляФормы.ПолеДиаграммыГанта;
    Поле.ПутьКДанным = "УчебныйГрафик";
    Поле.РастягиватьПоГоризонтали = Истина;
    Поле.РастягиватьПоВертикали = Истина;

    КомандаДействия = ЭтаФорма.Команды.Добавить("УчебноеДействие");
    КомандаДействия.Действие = "УчебноеДействие";
    КомандаДействия.Заголовок = "Проверить учебное оформление";
    КомандаДействия.Подсказка = "Действие только над данными учебной формы";
    КомандаДействия.ИзменяетСохраняемыеДанные = Ложь;
    Кнопка = Элементы.Добавить("КнопкаУчебноеДействие", Тип("КнопкаФормы"));
    Кнопка.ИмяКоманды = КомандаДействия.Имя;
    Кнопка.Заголовок = КомандаДействия.Заголовок;
КонецПроцедуры

&НаКлиенте
Процедура УчебноеДействие(Команда)
    Сообщить("Откройте учебный график: два плана и один факт.");
КонецПроцедуры

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

  1. Заголовок, Легенда и ОбластьПостроения — разные объекты; цвет заголовка не меняет автоматически фон поля задач.

  2. Снимаем прозрачность нужных областей, затем задаём фон/текст/рамку/шрифт.

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

  4. Фон обеда создаётся в отдельной коллекции. Удаляем пробный фон, основной остаётся на один час.

  5. Интервалы рабочих задач не сокращаются от цвета: время и оформление независимы.

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

  1. Две проверки Истина при создании.

  2. Заголовок голубой, подписи контрастные, обед жёлтым фоном 12:00–13:00.

  3. План подготовки 3 часа, факт 4 часа остались прежними.

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

Есть целостный оформленный график без смешения фонов, полос времени и бизнес-правил.

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

  1. Цвет фона не заменяет календарь нерабочего времени.

  2. Для маленького окна часть легенды/подписей может потребовать прокрутки.

  3. Очистить фонов вызывается лишь на собственном новом графике.

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

Показать исполнителя и объём работы в колонках рядом с графиком

Колонки задаются всему графику, значения заполняются в конкретном пересечении задачи и серии. Имя колонки, заголовок и индекс различаются.

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

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

Подготовка

  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";
    Колонки = График.КолонкиДанных;
    Колонки.Очистить();
    Исполнитель = Колонки.Добавить("Исполнитель", Новый ОписаниеТипов("Строка"), "Учебный исполнитель");
    Часы = Колонки.Вставить(1, "Часы", Новый ОписаниеТипов("Число"), "Объём, ч");
    Область.ОтображатьДанные = ОтображениеВДиаграммеГанта.Отображать;
    Сообщить(Колонки.Найти("Исполнитель") = Исполнитель);
    Сообщить(Часы.ТипЗначения.СодержитТип(Тип("Число")));
    Сообщить(Часы.Имя = "Часы");
    Сообщить(Исполнитель.Заголовок = "Учебный исполнитель");
    Проба = Колонки.Добавить("Проба", Новый ОписаниеТипов("Строка"), "Удаляемая проба");
    Колонки.Сдвинуть(Проба, -1);
    Сообщить(Колонки.Индекс(Проба) = 1);
    Сообщить(Колонки.Получить(1) = Проба);
    Колонки.Удалить(Проба);
    ПланПодготовки.Данные.Установить(Колонки.Индекс(Исполнитель), "Учебный сотрудник");
    ПланПодготовки.Данные.Установить(Колонки.Индекс(Часы), 3);
    Сообщить(ПланПодготовки.Данные.Получить(Колонки.Индекс(Часы)) = 3);
    Сообщить(Колонки.Количество() = 2);

    График.Обновление = Истина;
    ЭтаФорма.УчебныйГрафик = График;
    Поле = Элементы.Добавить("ПолеГанта", Тип("ПолеФормы"));
    Поле.Вид = ВидПоляФормы.ПолеДиаграммыГанта;
    Поле.ПутьКДанным = "УчебныйГрафик";
    Поле.РастягиватьПоГоризонтали = Истина;
    Поле.РастягиватьПоВертикали = Истина;

    КомандаДействия = ЭтаФорма.Команды.Добавить("УчебноеДействие");
    КомандаДействия.Действие = "УчебноеДействие";
    КомандаДействия.Заголовок = "Проверить колонки данных";
    КомандаДействия.Подсказка = "Действие только над данными учебной формы";
    КомандаДействия.ИзменяетСохраняемыеДанные = Ложь;
    Кнопка = Элементы.Добавить("КнопкаУчебноеДействие", Тип("КнопкаФормы"));
    Кнопка.ИмяКоманды = КомандаДействия.Имя;
    Кнопка.Заголовок = КомандаДействия.Заголовок;
КонецПроцедуры

&НаКлиенте
Процедура УчебноеДействие(Команда)
    Сообщить("Откройте учебный график: два плана и один факт.");
КонецПроцедуры

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

  1. КолонкиДанных принадлежит диаграмме целиком. Создаём строковый Исполнитель и числовой Часы.

  2. Имя используется для поиска, Заголовок — отображения, ТипЗначения — проверки типов.

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

  4. Данные принадлежит значению ПланПодготовки, то есть конкретной точке × серии.

  5. Установить/Получить работают с индексами колонок. Установка строк/часов не записывает рабочую задачу в базу.

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

  1. При создании восемь Истина.

  2. У подготовки в плане рядом с графиком Учебный сотрудник и 3.

  3. Всего две колонки, временной Пробы нет.

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

Показана полноценная таблица данных Ганта и все девять операций коллекции колонок.

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

  1. После перестановки колонок нельзя использовать старый индекс; получайте его через Индекс актуального объекта.

  2. Часы 3 — вручную заданный учебный объём, он не пересчитывается автоматически из полосы.

  3. Это собственные колонки диаграммы, не реквизиты документа в конфигурации.

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

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

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

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

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