Исправил скрипт, чтобы он по умолчанию с сортировкой открывался. Пометил комментарием "// tormozit" свои изменения
Код:
function doJump(command, forceShow)
{
if(windows.modalMode != msNone)
return false
// Для начала проверим, что мы в окне метаданных
var view = windows.getFocusedView();
var state = command.getState();
if(!view || !state || !state.enabled) {
//MessageBox("Не выбран объект метаданных")
return false
}
refs = []
// Ставим перехват на вывод в окно сообщений
events.connect(windows, "onMessage", SelfScript.self)
// Подавляем показ диалога
events.connect(windows, "onDoModal", SelfScript.self)
// Посылаем команду поиска ссылок
command.send()
// Убираем перехваты
events.disconnect(windows, "onMessage", SelfScript.self)
events.disconnect(windows, "onDoModal", SelfScript.self)
if(refs.length < 2) {
MessageBox("Ссылок не найдено");
return false
}
var mdObj = view.mdObj;
if (!mdObj)
mdObj = windows.getActiveView().mdObj;
var rootObject = (mdObj ? mdObj.container : metadata.current).rootObject;
var currentObject = findObject(rootObject, refs[0].match(/"(.+)"/)[1])
var choice
if(refs.length == 2 && !forceShow)
choice = refs[1]
else
{
refs.splice(0, 1)
var dlg = new SelectValueDialog("Выберите объект для перехода!", refs);
dlg.form.SortByName = true; // tormozit
dlg.sortValuesList(true); // tormozit
if (dlg.selectValue())
choice = dlg.selectedValue;
else
return false
}
var mdObj = findObject(rootObject, choice)
mdObj.activateInTree()
lastObjects.push(currentObject)
return true
}