Вопрос

Как достать переменную?

Подскажите пожалуйста, как можно установить переменную "EntityType" в зависимости от результата в If - ах? Использую приведенный ниже код, но значение в EntityType не передаётся. 

 

	var url = document.URL;
				var ID = url.substring(url.length - 36);
 
				var esq = this.Ext.create("Terrasoft.EntitySchemaQuery", {
				rootSchemaName: "ElcCustomers"
					});
				esq.addColumn("Id");
				esq.addColumn("type");
				esq.addColumn("ClientCode");
				var esqFilter = esq.createColumnFilterWithParameter(this.Terrasoft.ComparisonType.EQUAL, "Id", ID);
				esq.filters.add(esqFilter);
				var EntityType ="41C43145-76B2-435E-881E-E2CF01B31B9F";
 
				esq.getEntityCollection(function(result){ 
				 if (result.success) {
 
    			    result.collection.each(function(item) {
    			    	if (item.get("type")==="Account")
    			    	{
    			    		this.set("EntityType," "41C43145-76B2-435E-881E-E2CF01B31B9F");
 
    			    window.console.info("Type Acc " + EntityType);
    			    	}
        				else if (item.get("type")==="Person")
        				{
        			    this.set("EntityType", "F6ABCC78-12D2-4A43-8A0C-C7000DB12D52");
    			     	window.console.info("Type Person" + EntityType);
    			    	}
    		  });
			  }
			}, this);

 

Нравится

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

OLeg1020 пишет:

Давайте подключусь к вам по AnyDesk, напишите в личные сообщения, посмотрим в живую.

Добрый вечер.

Выполняли отладку клиентского кода? В консоли есть какие-то ошибки?

Алла Савельева,

Код работает, но переменная на уровень выше не передается. Не понимаю как её туда передать

OLeg1020,

Что значит не передается на уровень выше и как Вы это проверяете?

Если вы хотите установить значение в переменную, то вам надо писать так:

EntityType = "новое значение";

Вариант который используете вы:

this.set("EntityType", "новое значение") - используется для установки значений в Атрибуты и в Поля текущей сущности(карточки), но никак не в переменную.

Алла Савельева,

На картинке выше нарисовано. Проверяю выводом сообщения. 

Литвинко Павел,

Так тоже возвращается пустое значение. Внутри esq.getEntity,  значение EntityType присваивается корректно.

OLeg1020 пишет:

Давайте подключусь к вам по AnyDesk, напишите в личные сообщения, посмотрим в живую.

OLeg1020 пишет:

Так тоже возвращается пустое значение. Внутри esq.getEntity,  значение EntityType присваивается корректно.

В данном случае эти функции работают асинхронно, то есть получается, что внутренняя функция по получению EntityType ещё не отработала и значение не присвоилось, а Вы уже по нему фильтруете.

Вам нужно либо дождаться, когда отработает внутренняя функция, а потом уже выполнять фильтрацию по значению EntityType, либо вызывать функции последовательно.

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