Вопрос

Типы контактов и мини-карточки

Всем доброго времени суток. Версия 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, поэтому очевидно, что это решает проблему лишь частично.

Нравится

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

Денис, добрый день!

Информация касательно использования миникартчоки хранится в базе данных в таблице 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

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