Добрый день, существует проблема. Описание простое - не создается новое обращение из письма по нажатию кнопки "+":
Кейс как создать проблему:
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. И, в зависимости от этого, смотреть, откуда брался объект и там исправлять.