Снегопат
https://snegopat.ru/forum/

Как определить текущий объект в дереве метаданных
https://snegopat.ru/forum/viewtopic.php?f=3&t=608
Страница 1 из 1

Автор:  artbear [ 05 май 2014, 14:30 ]
Заголовок сообщения:  Как определить текущий объект в дереве метаданных

Народ, как определить, какой объект является текущим в дереве метаданных Конфигуратора ?

Автор:  sosnae [ 06 май 2014, 10:45 ]
Заголовок сообщения:  Re: Как определить текущий объект в дереве метаданных

Смотри https://snegopat.ru/scripts/finfo?name=fileopen.js

я при сохранении модуля менеджера так нахожу необходимый объект метаданных.

Автор:  orefkov [ 08 май 2014, 08:56 ]
Заголовок сообщения:  Re: Как определить текущий объект в дереве метаданных

Можно получить текстом путь к текущему выбранному узлу в дереве метаданных.
Код:
var mdTreeView = null
// Получим активное окно
var view = windows.getActiveView()
if(view)
{
    // Проверим, обрабатывает ли окно команду отключения отбора подсистем
    var state = stdcommands.Frntend.SelectSubSystem.getState(view)
    if(state && state.enabled)
        mdTreeView = view
}
if(!mdTreeView)
{
    // Активное окно не обрабатывает команду отключения отбора подсистем
    // Значит, надо активировать окно конфигурации, если она открыта
    if(stdlib.isConfigOpen())
    {
        stdcommands.Config.Window.send()
        mdTreeView = windows.getActiveView()
    }
}
if(mdTreeView)
{
   var row = mdTreeView.getInternalForm().getControl(0).extInterface.currentRow
   var fullName = []
   while(row)
   {
      fullName.unshift(row.getCellAppearance(0).text)
      row = row.parent
   }
   Message(fullName.join('.'))  // Вот он этот путь
   if(view.id != mdTreeView.id)
       view.activate()
}

Ну, а там уже найти сам объект метаданных по пути - дело техники.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/