Перейти к основному содержимому

О2_Routing_МенеджерИнтервалов.Добавить

Создаёт интервал с переменной длительностью — тройку связанных переменных (НачалоИнтервала, РазмерИнтервала, КонецИнтервала). Основной способ вызова: О2.Модели().МодельМаршрутизации().СоздатьМодель().Интервалы().Добавить(...).

Синтаксис

О2.Модели().МодельМаршрутизации().СоздатьМодель().Интервалы().Добавить(
НачалоМин, НачалоМакс,
РазмерМин, РазмерМакс,
КонецМин, КонецМакс,
Условие
)

Параметры

  • НачалоМинЧисло, Неопределено — минимум домена начала интервала. Если не указан, используется широкий дефолтный диапазон.
  • НачалоМаксЧисло, Неопределено — максимум домена начала интервала.
  • РазмерМинЧисло, Неопределено — минимум домена размера (длительности) интервала.
  • РазмерМаксЧисло, Неопределено — максимум домена размера (длительности) интервала.
  • КонецМинЧисло, Неопределено — минимум домена конца интервала.
  • КонецМаксЧисло, Неопределено — максимум домена конца интервала.
  • УсловиеФиксированнаяСтруктура, Неопределено — булево выражение модели. Если задано, интервал создаётся как опциональный: он участвует в ограничениях планирования только когда условие истинно.

Возвращаемое значение

  • ФиксированнаяСтруктура — объект интервала типа Интервал.

Описание

Метод О2.Модели().МодельМаршрутизации().СоздатьМодель().Интервалы().Добавить(...) регистрирует в модели новый интервал и автоматически создаёт три связанные переменные: НачалоИнтервала, РазмерИнтервала и КонецИнтервала. Решатель гарантирует выполнение тождества Начало + Размер = Конец.

Все параметры опциональны. Неуказанные границы принимают дефолтные значения широкого диапазона (порядка 2²⁸ — 2⁴⁸), что фактически означает отсутствие ограничений с прикладной точки зрения.

Переменные интервала доступны через методы ПолучитьНачало, ПолучитьРазмер, ПолучитьКонец менеджера.

Пример

Модель = О2
.Модели()
.МодельМаршрутизации()
.СоздатьМодель();

Интервалы = Модель.Интервалы();

// Интервал: начало в [0, 480], длительность — любая
ОперацияА = Интервалы.Добавить(0, 480);

// Интервал с полным контролем всех границ
ОперацияБ = Интервалы.Добавить(
0, // НачалоМин
240, // НачалоМакс
10, // РазмерМин
120, // РазмерМакс
30, // КонецМин
360 // КонецМакс
);

// Опциональный интервал: участвует, только если Флаг = Истина
Флаг = Модель.Переменные().ДобавитьБулеву();
ОперацияВ = Интервалы.Добавить(0, 480, , , , , Флаг);

// Доступ к переменным
НачалоА = Интервалы.ПолучитьНачало(ОперацияА);
РазмерА = Интервалы.ПолучитьРазмер(ОперацияА);
КонецА = Интервалы.ПолучитьКонец(ОперацияА);

См. также