Если в систему не закладывается, что ее выполнение могут прервать, то первое if можно опустить. По окончанию работы системы не предполагается очищение полей order-компонента ```csharp public override void Update() { foreach (var order in _i.ComponentManager.GetCs<SomeOrderC>().Values) { //Если был принудительный сброс, то система останавливается if (order.EndPosition.Es.IsDefaulted) { order.SetStatusNone(); order.Path.Clear(); } //Если входное поле было изменено, то система запускается if (order.EndPosition.Es.IsChanged) { order.SetStatusExecuting(); } //Если компонент НЕ находится в стадии выполнения приказа, то пропускаем данный компонент. if (!order.IsExecuting()) continue; //Какая-то логика системы //Какая-то логика системы //Какая-то логика системы //Завершение работы системы по данному компоненту order.SetStatusCompleted(); } } ```