Доброго времени суток.
Версия 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"] ) } } } ...