Всем доброго времени суток. Версия 7.10.
При создании нового контакта обычно вызывается мини-карточка. Сейчас при нажатии на кнопку "Добавить" на странице списка контактов сделан выбор между двумя типами контактов - клиентом и сотрудником (у разных типов контактов немного разные страницы). Однако мини-карточка вызывается только при создании контакта с типом Сотрудник, если выбран тип контакта Клиент, то открывается сразу страница контакта.
В базовой схеме раздела BaseSectionV2 есть функция addRecord, где есть проверка типа:
if (this.hasAddMiniPage(typeColumnValue)) {
this.openAddMiniPage({
entitySchemaName: this.entitySchemaName,
valuePairs: this.getAddMiniPageDefaultValues(typeColumnValue)
});
} else {
this.openCardInChain({
schemaName: schemaName,
operation: ConfigurationEnums.CardStateV2.ADD,
moduleId: this.getChainCardModuleSandboxId(typeColumnValue),
instanceConfig: {
useSeparatedPageHeader: this.get("UseSeparatedPageHeader")
}
});
}typeColumnValue - это guid типа контакта.
Вопрос - где искать функцию hasAddMiniPage, или быть может где-то нужно добавить тип контакта в некий список?
Попробовал в переопределении ContactSectionV2 сделать так:
hasAddMiniPage: function(typeColumnValue){
if ( (typeColumnValue == "00783ef6-f36b-1410-a883-16d83cab0980") || (typeColumnValue == "60733efc-f36b-1410-a883-16d83cab0980") ){
return true;
} else {
this.callParent(arguments);
}
}На странице списка контактов, конечно, работает, но в других местах есть и отдельные детали, привязанные к объекту Contact, поэтому очевидно, что это решает проблему лишь частично.
Нравится
Денис, добрый день!
Информация касательно использования миникартчоки хранится в базе данных в таблице SysModuleEdit. Если для страницы редактирования используется миникарточка, то в поле MiniPageSchemaUId указывается UId схемы миникарточки.
Также, рекомендую ознакомиться со статьей: https://academy.terrasoft.ru/documents/technic-sdk/7-11/sozdanie-mini-k…
Новак Руслан,
Руслан, спасибо, но есть ещё пара вопросов:
Нашёл в базе две записи:
Id:"a4f8a54f-2794-4eae-9ce4-4f8d66061a60"
MiniPageSchemaUId:"2741dd1e-7c35-432c-915a-9aa228eb057b"
PageCaption:"Сотрудник"
Id:"7b055f93-bb7e-463a-a6ce-24c2730f0f8e"
MiniPageSchemaUId:""
PageCaption:"Клиент"Судя по MiniPageSchemaUId - это они. Запросом через batch query добавил такой же id "2741dd1e-7c35-432c-915a-9aa228eb057b" и в запись для клиента. Но миникарточка всё равно не показывается.
Где-то ещё нужно поправить?
Смородинов Денис,
возможно, после добавления Uid миникарточки в запись в таблице SysModuleEdit, требуется почистить кэш, перелогиниться, и, возможно еще и redis