Вопрос

Как получить email текущего пользователя системы?

Использую схему замещения для страницы BootstrapModulesV2. В ней js скрипт, который выполняется на всех страницах Creatio. Мне нужно в него передать email текущего пользователя системы.

Вот код, который использую для получения почты (не уверен, что он верный):

var contact = this.Terrasoft.SysValue.CURRENT_USER_CONTACT.value; 
var esq = this.Ext.create("Terrasoft.EntitySchemaQuery", { rootSchemaName: "ContactCommunication" });
esq.addColumn("Contact");
esq.filters.add("filter01",
this.Terrasoft.createColumnFilterWithParameter(this.Terrasoft.ComparisonType.EQUAL, "Contact", contact));
esq.getEntityCollection(function (result) {
	if (!result.success) {
		this.console.log("ERROR");
		return;
	}else
		if (esult.collection.collection.length > 0) {//если найденных записей больше 0 
			var item = result.collection.collection[0];
			var email = item.get("Email");//то берем первый элемент
			this.console.log(email);
		}
}, this);

Какие ошибки получаю:

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

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

В чем может быть дело?

Нравится

4 комментария
Лучший ответ

Полный работающий код

 

var contact = this.Terrasoft.SysValue.CURRENT_USER_CONTACT.value; 
var esq = this.Ext.create("Terrasoft.EntitySchemaQuery", { rootSchemaName: "Contact" }); 
esq.addColumn("Id");
esq.addColumn("Email");
esq.filters.add("filter01",
this.Terrasoft.createColumnFilterWithParameter(this.Terrasoft.ComparisonType.EQUAL, "Id", contact));
esq.getEntityCollection(function (result) {
	if (!result.success) {
		this.console.log("ERROR");
		return;
	}else
		if (result.collection.collection.length > 0) {
			var item = result.collection.collection.items[0];
			this.console.log(item.get("Email"));
		}
}, this);

 

Валерия, добрый день! 

Ошибка вызвана символом &gt, дело в том, что этот XML символ обозначает знак >. Вы можете просто заменить "&gt" на ">" и код будет работать.

Дима Вовченко,

Добрый день!

 

Заменили заменить "&gt" на ">", вылезает другая ошибка:

Я так понимаю, для item нет метода get. А как тогда можно получить почту пользователя?

Валерия Макарова, result.collection.collection.items[0].values.Email

Полный работающий код

 

var contact = this.Terrasoft.SysValue.CURRENT_USER_CONTACT.value; 
var esq = this.Ext.create("Terrasoft.EntitySchemaQuery", { rootSchemaName: "Contact" }); 
esq.addColumn("Id");
esq.addColumn("Email");
esq.filters.add("filter01",
this.Terrasoft.createColumnFilterWithParameter(this.Terrasoft.ComparisonType.EQUAL, "Id", contact));
esq.getEntityCollection(function (result) {
	if (!result.success) {
		this.console.log("ERROR");
		return;
	}else
		if (result.collection.collection.length > 0) {
			var item = result.collection.collection.items[0];
			this.console.log(item.get("Email"));
		}
}, this);

 

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