Вопрос

Устранение проблемы с удалением страницы

Добрый день, существует проблема. Описание простое - не создается новое обращение из письма по нажатию кнопки "+":

Изображение удалено.

Кейс как создать проблему:

1) в разделе обращения создать вторую страницу

2) удалить страницу в конфигурации (уже знаем, что так не стоит делать) (На этом этапе ругается мастер раздела и раздел Единое окно, что не существует страницы обращения)

3) удалить страницу в базе в таблице SysModuleEdit 

И вроде как единое окно и мастер раздела видит теперь единственную страницу и все хорошо, но при попытке создать обращения из письма - выдается ошибка.

Изображение удалено.



К сожалению, бэкап оказался неудачным. Поэтому требуется исправить все в текущей версии. Удаление всех доработок и компиляция "чистой" версии не принесла результата.



Собственно вопросы:

1) где реализуется скрипт по добавления обращения по кнопке (в будущем все равно хотели его дорабатывать, почему не начать сейчас)

2) можно ли как-то исправить текущую проблему? 

3) где еще можно почистить "хвосты" удаленной страницы, чтобы система на нее не ссылалась?





 

Нравится

1 комментарий

Судя по сообщению, падает функция 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. И, в зависимости от этого, смотреть, откуда брался объект и там исправлять.

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