Всем доброго времени суток.
Версия 7.9 sales.
Стоит задача - при создании счёта из лида автоматически подставлять в поле Клиент значение Контакта связанного лида, если есть конечно.
Делается это стандартным запросом:
var leadEsq = Ext.create("Terrasoft.EntitySchemaQuery", {rootSchemaName: "Lead"});
leadEsq.addColumn("QualifiedContact");
leadEsq.addColumn("QualifiedAccount");
leadEsq.getEntity(this.get("UsrLead").value, function(result) {
if (!result.success) {
console.log("Ошибка запроса данных");
return;
}
if (result.entity.get("QualifiedContact")){
$this.set("Contact",result.entity.get("QualifiedContact"));
} else {
if (result.entity.get("QualifiedAccount")){
$this.set("Account",result.entity.get("QualifiedAccount"));
}
}
$this.updateDetail({
detail: "Client"
});
}, this);
Данные приходят, но подстановки именно в поле клиента не происходит. Обновление по типу обновления детали тоже не помогло.
$this.set("Client",result.entity.get("QualifiedAccount")); - то же самое.
Как автоматически подставлять значение Клиента?
Нравится
Заметил, что какая-то подстановка всё же происходит - в частности, меняется иконка у поля Клиента.
Но сохранить страницу всё равно нельзя.
Здравствуйте,
Как при программной установке обычного лукапа, что бы узнать какую структуру должен иметь объект второго параметра this.set("колонка", значение), достаточно в init закешировать скоуп, и в консоли сделать this.get("имя-колонки"), и Вы узнаете правильную структуру, вроде этой:
{ value: "a7c4c271-22e4-44b0-b037-00045bd579ae", displayValue: "Name 1" }
Так и для мультилукапа можно его значение получить через this.get к примеру клиент из продажи это мультилукап, и структура будет следующей:
{ Name: "Name 1", Email: "", Id: "a7c4c271-22e4-44b0-b037-00045bd579ae", Photo: "", value: "a7c4c271-22e4-44b0-b037-00045bd579ae", displayValue: "Name 1", column: "Contact" }
Не вся из этой информации обязательна для заполнения, к примеру, можно установить значения клиента и таким кодом:
var val = {
Id: "bb7442b1-c8a1-43fc-b5b0-004bcc91fa5b",
value: "bb7442b1-c8a1-43fc-b5b0-004bcc91fa5b",
displayValue: "Name 3",
column: "Contact"
}
document.testscope.set("Client", val);
где document.testscope переменная в которой закеширован скоуп карточки. Для вас это просто this.set("Client", val); если Вы пишете код в методах карточки.
При чем, в этот момент установится и значение для колонки «Contact».
Ну или если проставляете аккаунта, то column: "Account".
Вот таким нехитрым способом можно установить програмно значение мультилукапа, чем клиент и является.
Максим, спасибо!
Помогло.
Короче, подстановка делается таким же способом, как и для обычной справочной колонки, только добавляется параметр column.
Максим, спасибо!
Помогло.
Короче, подстановка делается таким же способом, как и для обычной справочной колонки, только добавляется параметр column.