Некорректное расположение полей в детали Связи карточки задачи

После добавления одного поля в карточку задачи и в EntityConnection, поля начинают "плясать". Иногда открывается в таком виде, при этом заполненные значения не видны. 

И после рефреша всё проходит, но потом может появиться снова

 

Как с этим бороться?Изображение удалено.

Нравится

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

1) Делаем select запрос в EntityConnection, видим поле Position, радуемся, настраиваем порядок.

2) Обновляем деталь, видим беспорядок, грустим (сортировка как бы есть, но её нет, т.к. в коде детали хлам, который не работает)

3) Вспоминаем, что у нас есть руки, и редактируем EntityConnectionsDetailV2:

methods: {
	/**
	 * Убираем позиции с 999 индексом (исключаем ненужные связи)
	 * */
	removePositions: function(item) {
		return item.$Position !== 999;
	},
 
	/**
	 * обработка и сортировка связей
	 * */
	processEntityConnectionsResponse: function(collection) {
		var filtered = collection.filterByFn(this.removePositions, this);
		var sorted = filtered.sort(null, null, function(a, b) {
			var v1 = a.$Position;
			var v2 = b.$Position;
 
			return v1===v2 ? 0 : (v1 > v2 ? 1 : -1);
		});
		collection.clear();
		collection.loadAll(sorted);
		this.loadColumnValues(collection);
 
		return sorted;
	}
}

 

Молитвой и божьим словом, на сколько я помню обращения в саппорт коллег))

1) Делаем select запрос в EntityConnection, видим поле Position, радуемся, настраиваем порядок.

2) Обновляем деталь, видим беспорядок, грустим (сортировка как бы есть, но её нет, т.к. в коде детали хлам, который не работает)

3) Вспоминаем, что у нас есть руки, и редактируем EntityConnectionsDetailV2:

methods: {
	/**
	 * Убираем позиции с 999 индексом (исключаем ненужные связи)
	 * */
	removePositions: function(item) {
		return item.$Position !== 999;
	},
 
	/**
	 * обработка и сортировка связей
	 * */
	processEntityConnectionsResponse: function(collection) {
		var filtered = collection.filterByFn(this.removePositions, this);
		var sorted = filtered.sort(null, null, function(a, b) {
			var v1 = a.$Position;
			var v2 = b.$Position;
 
			return v1===v2 ? 0 : (v1 > v2 ? 1 : -1);
		});
		collection.clear();
		collection.loadAll(sorted);
		this.loadColumnValues(collection);
 
		return sorted;
	}
}

 

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