Вопрос

Как получить ID справочного значения в JS?

Как получить ID справочного значения в JS зная только название для того что бы потом установить его в выпадающем списке справочника?

Нравится

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

Коваленко Илья,

var esq = Ext.create("Terrasoft.EntitySchemaQuery", {
	rootSchemaName: "Contact"
});
esq.addColumn('Id');
esq.filters.addItem(Terrasoft.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, 'Name', name));
esq.getEntityCollection(function(response)
{
	if(response.success)
	{
		var entities = response.collection.getItems();
		Terrasoft.each(entities, function(item){
			var id = item.get('Id');
		});
	}
});

 

Добрый день!

Без дополнительного запроса в базу для получения id справочника по названию (например) не получится сделать.

Если справочник не планируется изменять, то значения справочника лучше вынести в константы.

Сидоров Александр В., Можете показать пример такого запроса?

Коваленко Илья,

var esq = Ext.create("Terrasoft.EntitySchemaQuery", {
	rootSchemaName: "Contact"
});
esq.addColumn('Id');
esq.filters.addItem(Terrasoft.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, 'Name', name));
esq.getEntityCollection(function(response)
{
	if(response.success)
	{
		var entities = response.collection.getItems();
		Terrasoft.each(entities, function(item){
			var id = item.get('Id');
		});
	}
});

 

Сидоров Александр В.,

В данном контексте не очень хороший пример. Зачем выбирать все записи, если можно взять только первую через top 1?

esq.rowCount = 1

 

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

Согласен. Но справочник может быть не уникален по имени. Поэтому и привел пример со списком, где надо делать постобработку

Сидоров Александр В.,

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

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