Вопрос

Добавление контакта к обращению

Доброго времени суток.

Версия 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 - но может ошибку можно исправить проще?

Нравится

1 комментарий

Можете ввести в карточку контакта для режима создания в методе который обрабатывает состояние "после сохранения" 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"]
             )
         }
      }
}
...

 

Показать все комментарии