О2_Routing_МенеджерИнтервалов.Добавить
Создаёт интервал с переменной длительностью — тройку связанных переменных (НачалоИнтервала, РазмерИнтервала, КонецИнтервала). Основной способ вызова: О2.Модели().МодельМаршрутизации().СоздатьМодель().Интервалы().Добавить(...).
Синтаксис
О2.Модели().МодельМаршрутизации().СоздатьМодель().Интервалы().Добавить(
НачалоМин, НачалоМакс,
РазмерМин, РазмерМакс,
КонецМин, КонецМакс,
Условие
)
Параметры
- НачалоМин — Число, Неопределено — минимум домена начала интервала. Если не указан, используется широкий дефолтный диапазон.
- НачалоМакс — Число, Неопределено — максимум домена начала интервала.
- РазмерМин — Число, Неопределено — минимум домена размера (длительности) интервала.
- РазмерМакс — Число, Неопределено — максимум домена размера (длительности) интервала.
- КонецМин — Число, Неопределено — минимум домена конца интервала.
- КонецМакс — Число, Неопределено — максимум домена конца интервала.
- Условие — ФиксированнаяСтруктура, Неопределено — булево выражение модели. Если задано, интервал создаётся как опциональный: он участвует в ограничениях планирования только когда условие истинно.
Возвращаемое значение
- ФиксированнаяСтруктура — объект интервала типа
Интервал.
Описание
Метод О2.Модели().МодельМаршрутизации().СоздатьМодель().Интервалы().Добавить(...) регистрирует в модели новый интервал и автоматически создаёт три связанные переменные: НачалоИнтервала, РазмерИнтервала и КонецИнтервала. Решатель гарантирует выполнение тождества Начало + Размер = Конец.
Все параметры опциональны. Неуказанные границы принимают дефолтные значения широкого диапазона (порядка 2²⁸ — 2⁴⁸), что фактически означает отсутствие ограничений с прикладной точки зрения.
Переменные интервала доступны через методы ПолучитьНачало, ПолучитьРазмер, ПолучитьКонец менеджера.
Пример
Модель = О2
.Модели()
.МодельМаршрутизации()
.СоздатьМодель();
Интервалы = Модель.Интервалы();
// Интервал: начало в [0, 480], длительность — любая
ОперацияА = Интервалы.Добавить(0, 480);
// Интервал с полным контролем всех границ
ОперацияБ = Интервалы.Добавить(
0, // НачалоМин
240, // НачалоМакс
10, // РазмерМин
120, // РазмерМакс
30, // КонецМин
360 // КонецМакс
);
// Опциональный интервал: участвует, только если Флаг = Истина
Флаг = Модель.Переменные().ДобавитьБулеву();
ОперацияВ = Интервалы.Добавить(0, 480, , , , , Флаг);
// Доступ к переменным
НачалоА = Интервалы.ПолучитьНачало(ОперацияА);
РазмерА = Интервалы.ПолучитьРазмер(ОперацияА);
КонецА = Интервалы.ПолучитьКонец(ОперацияА);