Снегопат

Обсуждение Снегопата
Текущее время: 27 апр 2024, 21:40

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 24 ]  На страницу Пред.  1, 2, 3
Автор Сообщение
СообщениеДобавлено: 25 апр 2014, 11:57 
Не в сети
Аватара пользователя

Зарегистрирован: 24 авг 2011, 15:36
Сообщения: 1085
Очередной вопрос:
как получить тип реквизита/измерения/ресурса метаданного?
Задача - нужно найти все реквизиты с типом ЛюбаяСсылка, чтобы подготовиться к возможной реструктуризации.
Как?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28 апр 2014, 06:40 
Не в сети

Зарегистрирован: 06 сен 2013, 07:59
Сообщения: 204
artbear писал(а):
как получить тип реквизита/измерения/ресурса метаданного?

Сам не смотрел, но может тут чего есть?
https://snegopat.ru/forum/viewtopic.php?p=6800&sid=68f48caedf9b4d1244b931630ce25beb#p6800


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28 апр 2014, 09:20 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 24 авг 2011, 15:04
Сообщения: 2052
Если коротко, то пример получения типа объекта метаданного можно посмотреть в scripts\code_gen\gen_mgr.js, класс TypeFinder, использование - в create_doc.js

Конкретно на тип "ЛюбаяСсылка" можно проверить, что
Код:
var types = new VBArray(mdObj.types()).toArray()
if(types[0]== '{280F5F0E-9C8A-49CC-BF6D-4D296CC17A63}')
{
    // Это тип "ЛюбаяСсылка"
}


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28 апр 2014, 12:03 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 24 авг 2011, 15:04
Сообщения: 2052
Вот готовый пример вывода всех объектов с типом "ЛюбаяСсылка"
Код:
function fullName(mdObj)
{
   var names = []
    while(true)
    {
        names.unshift(mdObj.name)
        if(!mdObj.parent)
           break
        names.unshift(mdObj.mdclass.name(1))
        mdObj = mdObj.parent
    }
    return names.join('.')
}

stdlib.forAllMdObjects(metadata.current.rootObject, function(mdObj){
   if(new VBArray(mdObj.types()).toArray().join('').indexOf('{280F5F0E-9C8A-49CC-BF6D-4D296CC17A63}') >= 0)
   {
      Message(fullName(mdObj))
   }
})
Message("Конец")


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 24 ]  На страницу Пред.  1, 2, 3

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 26


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB