синхронизация детали средства связи с новыми полями раздела

Создал новое поле ITEmailв разделе контрагенты, добавил мапинг:
{
"CommunicationType": ConfigurationConstants.CommunicationTypes.Email,
"MasterEntityColumn": "ITEmail"
},
добавил атрибут:
"Email": {
"dependencies": [
{
"columns": ["ITEmail"],
"methodName": "syncEntityWithCommunicationDetail"
}
]
},
добавил поле в диф:
{
"operation": "insert",
"parentName": "ProfileContainer",
"propertyName": "items",
"name": "ITEmail",
"values": {
"layout": {"column": 0, "row": 7, "colSpan": 24}
}

},
добавил емаил в :
UseForAccounts: {
Predefined: {
Phone: {
displayValue: resources.localizableStrings.AccountPhone,
value: "6a3fb10c-67cc-df11-9b2a-001d60e938c6"
},
AdditionalPhone: {
displayValue: resources.localizableStrings.AdditionalPhone,
value: "2b387201-67cc-df11-9b2a-001d60e938c6"
},
Fax: {
displayValue: resources.localizableStrings.Fax,
value: "9a7ab41b-67cc-df11-9b2a-001d60e938c6"
},
Web: {
displayValue: resources.localizableStrings.Web,
value: "6a8ba927-67cc-df11-9b2a-001d60e938c6"
},
Email: {
displayValue: resources.localizableStrings.Email,
value: "ee1c85c3-cfcb-df11-9b2a-001d60e938c6"
}
},

в итоге значение в поле емаил детали подставляется в поле раздела и сохраняется, НО после того я захожу в контрагента, для которого был указан емаил, то значение в поле раздела пустое, а детали есть. Как можно сделать что бы оно не пропадало???

Нравится

2 комментария

Добрый день, Вам стоит смотреть в сторону добавления логики в событие после сохранения объекта AccountComunication. В частности, необходимо переопределить метод SetNewAccountCommunication.

"Мотков Илья" написал:

Добрый день, Вам стоит смотреть в сторону добавления логики в событие после сохранения объекта AccountComunication. В частности, необходимо переопределить метод SetNewAccountCommunication.


Здравствуйте, что то я не нашел такого метода в объекте AccountComunication, а в ContactComunication он есть. Там есть только GetColumnNameByCommunicationType:
string columnName;
switch (communicationType.ToString()) {
case CommunicationTypeConsts.WebId:
columnName = "Web";
break;
case CommunicationTypeConsts.MainPhoneId:
columnName = "Phone";
break;
case CommunicationTypeConsts.AdditionalPhoneId:
columnName = "AdditionalPhone";
break;
case CommunicationTypeConsts.FaxId:
columnName = "Fax";
break;
default:
columnName = string.Empty;
break;
}
я так понял что он мне подойдет, только не могу понять, надо в замещающем объекте сам метод переопределять?

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