Устранение проблемы с удалением страницы
Добрый день, существует проблема. Описание простое - не создается новое обращение из письма по нажатию кнопки "+":
![]()
Кейс как создать проблему:
1) в разделе обращения создать вторую страницу
2) удалить страницу в конфигурации (уже знаем, что так не стоит делать) (На этом этапе ругается мастер раздела и раздел Единое окно, что не существует страницы обращения)
3) удалить страницу в базе в таблице SysModuleEdit
И вроде как единое окно и мастер раздела видит теперь единственную страницу и все хорошо, но при попытке создать обращения из письма - выдается ошибка.
![]()
К сожалению, бэкап оказался неудачным. Поэтому требуется исправить все в текущей версии. Удаление всех доработок и компиляция "чистой" версии не принесла результата.
Собственно вопросы:
1) где реализуется скрипт по добавления обращения по кнопке (в будущем все равно хотели его дорабатывать, почему не начать сейчас)
2) можно ли как-то исправить текущую проблему?
3) где еще можно почистить "хвосты" удаленной страницы, чтобы система на нее не ссылалась?
Нравится
Судя по сообщению, падает функция addEmailRelation в схеме EmailItemSchema пакета UIv2:
/**
* Handles "Add relation" menu item click.
* @protected
* @param {String} columnName Connection column name.
*/
addEmailRelation: function(columnName) {
this.set("EntityRelationColumnName", columnName);
var moduleStructure = this.Terrasoft.configuration.ModuleStructure;
var schemaName = this.getSchemaNameByRelationColumnName(columnName);
var schemaModuleStructure = moduleStructure[schemaName];
var schemaPages = schemaModuleStructure.pages;
var cardSchema = schemaModuleStructure.cardSchema;
var defaultValues = this.getRelationValuePairs(columnName, schemaName);
if (this.Ext.isArray(schemaPages)) {
var cardInfo = this.Terrasoft.findWhere(schemaPages, {name: schemaName});
cardSchema = cardInfo.cardSchema;
if (schemaModuleStructure.attribute && cardInfo.UId) {
defaultValues.push({
name: schemaModuleStructure.attribute,
value: cardInfo.UId
});
}
}
var moduleId = "AddEmailRelation_" + cardSchema + this.Terrasoft.generateGUID();
this.sandbox.subscribe("CardModuleResponse", this.cardModuleResponseHandler, this,
[moduleId]);
var openCardConfig = {
schemaName: cardSchema,
operation: this.Terrasoft.ConfigurationEnums.CardOperation.ADD,
moduleId: moduleId,
defaultValues: defaultValues,
renderTo: "centerPanel",
keepAlive: true
};
this.openCardInChain(openCardConfig);
},Нужно попробовать отладиться в браузере, поставив breakpoint в начале функции, чтобы выяснить, какое из упоминаний cardSchema, до цикла или в цикле, приводит к чтению поля у null. И, в зависимости от этого, смотреть, откуда брался объект и там исправлять.