Коллеги, приветствую!
Подскажите как реализовать в коде изменение справочного поля по условию?
С числами и текстом понятно, а вот как это можно со справочниками делать?
Нравится
Установка нового значения справочного поля выполняется таким образом:
this.set("Stage", {value: "3d7c3c8f-cff2-4291-8f1d-03676dab7cc7", displayValue: "2. Collection"});
Либо, если значение этого справочного поля получается из другого справочного поля, так:
var stage = result.entity.get("Stage"); this.set("Stage", stage);
Установка нового значения справочного поля выполняется таким образом:
this.set("Stage", {value: "3d7c3c8f-cff2-4291-8f1d-03676dab7cc7", displayValue: "2. Collection"});
Либо, если значение этого справочного поля получается из другого справочного поля, так:
var stage = result.entity.get("Stage"); this.set("Stage", stage);
Алла Савельева,
Спасибо! Первым способом получилось устанавливать значение справочника.
А второй я не понял.
Если у нас есть два справочника: к примеру: "Type" и "Stage".
Когда у "Type" значение = "Рабочий клиент",
то и у "Stage" значение должно стать = "Рабочий клиент".
В обоих справочниках такие значения есть.
Как тогда использовать второй способ?
SavelyevOll,
Второй используем в том случае, если значение справочного поля получаем из другого объекта. Например, у Вас, есть справочник Type, который содержит поле Stage и карточка редактирования объекта A, в котором должно устанавливаться при определенных условиях значение поля Stage в зависимости от поля Type и еще каких-то дополнительных условий.
Таким образом, если у Вас будет значение поля Type, Вы можете получить запросом на клиенте значение поля Stage и установить его в поле Stage объекта A так, как приведено в примере 2, не прописывая отдельно значения value и displayValue.
Алла Савельева,
Понял, спасибо!
Алла, подскажите еще:
Как проверить значение справочника?
Я использовал такой код: но он не отрабатывает
var type = this.get("Type"); if (type === "d4658c14-ef7f-4e15-9b32-c81b16644ff8"){ console.log("Rabotaet"); }
Подозреваю, что он не отрабатывает, поскольку в переменной находится не строка, а объект с двумя полями, вроде упомянутого в первом комментарии. Более точно можно посмотреть в инструментах разработчика в браузере.
Алла Савельева,
Алла, как проверить изменение я понял.
Есть еще один вопрос, подскажите, пожалуйста.
Вся эта затей была сделана, для того, чтобы при изменении типа клиента, менялась стадия кейса в карточке. Т.к. стадия кейса - это справочник, то изменяя его, будут визуально изменяться стадии.
Но способом:
this.set("Stage", {value: "3d7c3c8f-cff2-4291-8f1d-03676dab7cc7", displayValue: "2. Collection"});
В "2 Collection" - я записываю свое значение, визуально справочник его отображает, но не присваивает, из-за этого стадии кейса не меняются.
Подскажите, как присвоить справочнику значение?
Ниже код для проверки условия:
var type = this.get("Type"); type = type.value; if (type ==="b8330b25-3aaa-45d4-b6ce-b3979965e85b"){}