Создал миникарточку, опираясь на https://academy.terrasoft.ru/documents/technic-sdk/7-16/kak-sozdat-mini-kartochku-dobavleniya. Только в моём случае это было редактирование имени существующего объекта.
Добавил кнопку в разделе, по клику на которую открывается миникарточка.
onButtonClick: function () {
debugger;
var activeRowId = this.get("ActiveRow");
if (activeRowId) {
this.openMiniPage({
recordId: activeRowId,
operation: Terrasoft.ConfigurationEnums.CardOperation.EDIT,
entitySchemaName: this.entitySchemaName,
isFixed: true,
showDelay: 0,
miniPageSchemaName: "MyUsrMorpheusMiniPage",
});
}
}Вот код миникарточки, название сущности MyUsrCar2
define("MyUsrMorpheusMiniPage", [
"terrasoft",
"MyUsrCar2File",
"ConfigurationConstants",
"css!MyUsrMorpheusMiniPageCss"
], function (Terrasoft, MyUsrCar2File, ConfigurationConstants) {
return {
entitySchemaName: "MyUsrCar2",
attributes: {
"MiniPageModes": {
"value": [this.Terrasoft.ConfigurationEnums.CardOperation.EDIT]
}
},
methods: {},
diff: [
{
"operation": "insert",
"parentName": "MiniPage",
"propertyName": "items",
"name": "Name",
"values": {
"isMiniPageModelItem": true,
"layout": {
"column": 0,
"row": 0,
"colSpan": 24
},
"controlConfig": {
"focused": true
}
}
}
]
};
});Когда пытаюсь открыть миникарточку, выделив нужную строку в реестре раздела, появляются ошибки в консоли.
1. Заголовок для подписи "Name" не был найден.
2. Невозможно найти колонку по конфигурации: "{"layout":{"colSpan":24,"rowSpan":1,"column":0,"row":0},"controlConfig":{"focused":true},"name":"Name"}" .
3. MiniPageViewGenerator.js:308 Uncaught TypeError: Cannot read property 'name' of undefined
at i.getNeedGenerateHyperLink (MiniPageViewGenerator.js:308)
core-base.js:704 user: Supervisor/7f3b869f-34f3-4f20-ab4d-7480a5fdf647
file: http://localhost:82/0/configuration/6560b43f8738c260f612822f729cc099ru-…
line: 308
column: 82
4. message: Uncaught TypeError: Cannot read property 'name' of undefined
date: Tue Jul 07 2020 11:19:54 GMT+0300 (Москва, стандартное время)
stack: TypeError: Cannot read property 'name' of undefined
at i.getNeedGenerateHyperLink
Пытался решить, как описано тут https://community.terrasoft.ua/questions/dobavlenie-email-kontakta-v-kartocku-obrasenia - не помогло.
Нравится
Игорь, возможно, дело в том, что та статья для создания мини-карточки добавления, а Вы реализуете редактирование существующей записи?
Там для других случаев есть статьи Создание мини-карточки и Добавление мини-карточки к произвольному модулю.
Судя по сообщению, ошибка в функции getNeedGenerateHyperLink в схеме MiniPageViewGenerator. Эта схема есть в конфигурации, её код виден:
/**
* @private
* @param {Object} clonedConfig
* @returns {Boolean}
*/
getNeedGenerateHyperLink: function(clonedConfig) {
var itemDataValueType = this.getItemDataValueType(clonedConfig);
var viewModelColumn = this.findViewModelColumn(clonedConfig);
var primaryDisplayColumnName = this.getPrimaryDisplayColumnName();
var isEditable = this.isSchemaEditable(viewModelColumn);
var isLookup = itemDataValueType === Terrasoft.DataValueType.LOOKUP;
var isSimpleLookup = viewModelColumn && viewModelColumn.isSimpleLookup;
var isPrimaryDisplayColumnName = primaryDisplayColumnName === viewModelColumn.name;
return isPrimaryDisplayColumnName || (isLookup && isEditable && !isSimpleLookup);
},Видимо, в третьей строчке в переменную viewModelColumn попадает не объект, а пустое или объект без свойства name, из-за чего третья с конца строка падает при обращении к нему.
Не пробовали в браузере отладиться в этой функции, почему так выходит? Я всю Вашу логику не воспроизводил, а при открытии стандартной мини-карточки добавления контакта эта функция getNeedGenerateHyperLink не выполняется.