Снегопат https://snegopat.ru/forum/ |
|
Работа с метаданными https://snegopat.ru/forum/viewtopic.php?f=3&t=133 |
Страница 1 из 7 |
Автор: | orefkov [ 22 фев 2012, 11:39 ] |
Заголовок сообщения: | Работа с метаданными |
В этой ветке я постараюсь рассказать о том, как работать с метаданными, и отвечать на вопросы. Для начала пример, как перебрать существующие метаданные. Код: text = []
printMdObj(metadata.current.rootObject, "", text) var d = v8New("ТекстовыйДокумент") d.УстановитьТекст(text.join('\n')) d.Показать() function printMdObj(mdObj, indent, text) { // Получим и покажем класс объекта var mdc = mdObj.mdclass text.push(indent + "mdclass " + mdc.name(1)) // Переберем свойства объекта. Количество доступных свойств объекта // определяется в его классе. Сами свойства объекта получаются методом // property(индекс), где индекс может быть - порядковым номером свойства (с нуля) // или названием свойства, или строкой с гуидом свойства for(var i = 0, c = mdc.propertiesCount; i < c; i++) { var mdProp = mdc.propertyAt(i) var propVal = toV8Value(mdObj.property(i)) text.push(indent + " prop " + mdProp.name(1) + " " + mdProp.id + " = " + propVal.presentation()) } // Перебираем классы потомков (например у Документа это Реквизиты, ТабличныеЧасти, Формы) for(var i = 0; i < mdc.childsClassesCount; i++) { var childMdClass = mdc.childClassAt(i) // Покажем название на русском языке во множественной форме text.push(indent + childMdClass.name(1, true)) // Теперь переберем потомков этого класса. for(var chldidx = 0, c = mdObj.childObjectsCount(i); chldidx < c; chldidx++) printMdObj(mdObj.childObject(i, chldidx), indent + "\t", text) } } |
Автор: | artbear [ 22 фев 2012, 12:09 ] |
Заголовок сообщения: | Re: Работа с метаданными |
НеизвестныйОбъект обозначает отсутствие на самом деле? например, для форм или синонимов метаданных? Цитата: prop Синоним {CF4ABEA3-37B2-11D4-940F-008048DA11F9} = НеизвестныйОбъект prop Комментарий {CF4ABEA4-37B2-11D4-940F-008048DA11F9} = prop ОсновнаяФорма {3E8C558E-64B4-405D-8AD3-7FAF63B866BA} = НеизвестныйОбъект prop ДополнительнаяФорма {2B017861-CB7F-449D-812A-3BD6A81B0177} = НеизвестныйОбъект а по комментарию непонятно, какой тип? |
Автор: | orefkov [ 22 фев 2012, 12:19 ] |
Заголовок сообщения: | Re: Работа с метаданными |
НеизвестныйОбъект - там всякие могут попадаться, просто внтутре в движке данные лежат в Value, а наружу в COM не все типы нормально преобразовываются. Смотреть надо по toStringInternal. Вот пример небольшой есть опять же в create_doc.js, смотри например, как ОсновнойЯзык получается. |
Автор: | orefkov [ 22 фев 2012, 12:31 ] |
Заголовок сообщения: | Re: Работа с метаданными |
Пока со многими свойствами почти ничего не сделать, кроме как прочитать, что они есть. Но всякие модули/формы уже можно открывать. Свойства Синоним, Комментарий, Тип можно получать сразу спец-методами объекта IV8MDObject Сам объект можно активировать в дереве метаданных, а также открыть на редактирование. |
Автор: | kuntashov [ 22 фев 2012, 12:43 ] |
Заголовок сообщения: | Re: Работа с метаданными |
orefkov писал(а): Но всякие модули/формы уже можно открывать. Сам объект можно активировать в дереве метаданных, а также открыть на редактирование. А вот это уже для меня новость! Давно ли? |
Автор: | orefkov [ 22 фев 2012, 12:50 ] |
Заголовок сообщения: | Re: Работа с метаданными |
Так посмотрите в объектной модели IV8MDObject, методы activateInTree, openEditor, editProperty Вот например metadata.current.rootObject.editProperty("МодульУправляемогоПриложения") |
Автор: | orefkov [ 22 фев 2012, 12:51 ] |
Заголовок сообщения: | Re: Работа с метаданными |
Сейчас работаю над получением текстов модулей и внутренних представлений форм/макетов и т.д. |
Автор: | kuntashov [ 22 фев 2012, 13:03 ] |
Заголовок сообщения: | Re: Работа с метаданными |
Спасибо Тогда просьба: можно ли при выпуске следующих релизов сопровождать релиз дополнительной информацией по добавленным возможностям. |
Автор: | orefkov [ 22 фев 2012, 13:12 ] |
Заголовок сообщения: | Re: Работа с метаданными |
Ок, я постараюсь. Просто когда я добавлял работу с метаданными, описать все добавленные возможности в "Что нового" было просто нереально, настолько там много всего. К тому же добавлялось это пока как тестовый функционал, с возможными изменениями, и писать доку пока не стал, а надо бы. Попытаюсь тут инфу донести по тому, что есть. |
Автор: | orefkov [ 22 фев 2012, 13:21 ] |
Заголовок сообщения: | Re: Работа с метаданными |
kuntashov писал(а): Спасибо Тогда просьба: можно ли при выпуске следующих релизов сопровождать релиз дополнительной информацией по добавленным возможностям. Хотя так-то это все было сделано еще в 1.1.3.1 |
Страница 1 из 7 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |