Создал миникарточку, опираясь на 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 не выполняется.