Доброго времени суток.
Версия 7.9 sales.
Для колонки контакта в обращении сделан фильтр по контрагенту (связанное бизнес-правило отключили по причине того, что нужен был фильтр только в одну сторону). Фильтр следующего вида:
"Contact": {
lookupListConfig: {
filters: [
function() {
var Account = this.get("Account");
var filterGroup = Ext.create("Terrasoft.FilterGroup");
if (Account){
var filterById = Terrasoft.createColumnInFilterWithParameters("Account", [this.get("Account").value]);
filterById.comparisonType = Terrasoft.ComparisonType.EQUAL;
filterGroup.add("filterById", filterById);
} else {
filterGroup.add("filter", Terrasoft.createColumnIsNotNullFilter("Account"));
}
return filterGroup;
}
]
}
},На всякий случай, переопределения правил из оригинальной версии:
rules: {
"Contact": {
"FiltrationContactByAccount": {
"ruleType": 999
}
},
},
methods: {
setAccount: function(){
return false;
}
}Далее, допустим, у нас нет контакта в справочнике, мы хотим добавить контакт. Нажимаем кнопку "Добавить" на всплывающем окне справочника, открывается страница контакта, добавляем контакт. И... контакт не добавляется в колонку.
Как поправить?
Знаю, что есть проблема с версией 7.9 при добавлении новых значений в справочные поля - https://community.terrasoft.ru/forum/topic/25275 - но может ошибку можно исправить проще?
Нравится
Можете ввести в карточку контакта для режима создания в методе который обрабатывает состояние "после сохранения" onSaved логику которая опираясь на то "откуда пользователь попал в карточку создания", генерирует сообщение на которое предварительно подпишется ваша карточка обращения, пи получив из него Id созданного контакта установит его в соответствующее поле. Получится как бы имитация штатного поведения (которое не отрабатывает корректно)
...
"onSaved": function(){
this.callParent(arguments);
if (this.IsAddMode()){
//получаем из хеша схему страницы с которой мы попали в карточку создания
var hashEntityName = sandbox.publish("GetHistoryState").hash.entityName;
if (hashEntityName == "Схема которая нам нужна"){
//публикуем событие на которое подписана карточка в которой должно установиться
//значение созданного контакта
this.sandbox.publish(
"MyCustomEvent",
//Передаем Id созданного контакта
this.get("Id"),
["MyCustomUniqTag"]
)
}
}
}
...