Снегопат

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

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




Начать новую тему Ответить на тему  [ Сообщений: 64 ]  На страницу 1, 2, 3, 4, 5 ... 7  След.
Автор Сообщение
 Заголовок сообщения: Работа с метаданными
СообщениеДобавлено: 22 фев 2012, 11:39 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 24 авг 2011, 15:04
Сообщения: 2052
В этой ветке я постараюсь рассказать о том, как работать с метаданными, и отвечать на вопросы.
Для начала пример, как перебрать существующие метаданные.

Код:
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)
    }
}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с метаданными
СообщениеДобавлено: 22 фев 2012, 12:09 
Не в сети
Аватара пользователя

Зарегистрирован: 24 авг 2011, 15:36
Сообщения: 1085
НеизвестныйОбъект обозначает отсутствие на самом деле?
например, для форм или синонимов метаданных?
Цитата:
prop Синоним {CF4ABEA3-37B2-11D4-940F-008048DA11F9} = НеизвестныйОбъект
prop Комментарий {CF4ABEA4-37B2-11D4-940F-008048DA11F9} =
prop ОсновнаяФорма {3E8C558E-64B4-405D-8AD3-7FAF63B866BA} = НеизвестныйОбъект
prop ДополнительнаяФорма {2B017861-CB7F-449D-812A-3BD6A81B0177} = НеизвестныйОбъект

а по комментарию непонятно, какой тип?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с метаданными
СообщениеДобавлено: 22 фев 2012, 12:19 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 24 авг 2011, 15:04
Сообщения: 2052
НеизвестныйОбъект - там всякие могут попадаться, просто внтутре в движке данные лежат в Value, а наружу в COM не все типы нормально преобразовываются. Смотреть надо по toStringInternal.
Вот пример небольшой есть опять же в create_doc.js, смотри например, как ОсновнойЯзык получается.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с метаданными
СообщениеДобавлено: 22 фев 2012, 12:31 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 24 авг 2011, 15:04
Сообщения: 2052
Пока со многими свойствами почти ничего не сделать, кроме как прочитать, что они есть.
Но всякие модули/формы уже можно открывать.
Свойства Синоним, Комментарий, Тип можно получать сразу спец-методами объекта IV8MDObject
Сам объект можно активировать в дереве метаданных, а также открыть на редактирование.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с метаданными
СообщениеДобавлено: 22 фев 2012, 12:43 
Не в сети
Аватара пользователя

Зарегистрирован: 24 авг 2011, 15:53
Сообщения: 448
Откуда: Саратов
orefkov писал(а):
Но всякие модули/формы уже можно открывать.
Сам объект можно активировать в дереве метаданных, а также открыть на редактирование.


А вот это уже для меня новость! Давно ли?

_________________
С уважением,
Александр Кунташов
Канал про 1С в Телеграме: @kuntashov_devnotes


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с метаданными
СообщениеДобавлено: 22 фев 2012, 12:50 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 24 авг 2011, 15:04
Сообщения: 2052
Так посмотрите в объектной модели IV8MDObject, методы activateInTree, openEditor, editProperty
Вот например
metadata.current.rootObject.editProperty("МодульУправляемогоПриложения")


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с метаданными
СообщениеДобавлено: 22 фев 2012, 12:51 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 24 авг 2011, 15:04
Сообщения: 2052
Сейчас работаю над получением текстов модулей и внутренних представлений форм/макетов и т.д.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с метаданными
СообщениеДобавлено: 22 фев 2012, 13:03 
Не в сети
Аватара пользователя

Зарегистрирован: 24 авг 2011, 15:53
Сообщения: 448
Откуда: Саратов
Спасибо :)
Тогда просьба: можно ли при выпуске следующих релизов сопровождать релиз дополнительной информацией по добавленным возможностям.

_________________
С уважением,
Александр Кунташов
Канал про 1С в Телеграме: @kuntashov_devnotes


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с метаданными
СообщениеДобавлено: 22 фев 2012, 13:12 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 24 авг 2011, 15:04
Сообщения: 2052
Ок, я постараюсь.
Просто когда я добавлял работу с метаданными, описать все добавленные возможности в "Что нового" было просто нереально, настолько там много всего.
К тому же добавлялось это пока как тестовый функционал, с возможными изменениями, и писать доку пока не стал, а надо бы.
Попытаюсь тут инфу донести по тому, что есть.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с метаданными
СообщениеДобавлено: 22 фев 2012, 13:21 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 24 авг 2011, 15:04
Сообщения: 2052
kuntashov писал(а):
Спасибо :)
Тогда просьба: можно ли при выпуске следующих релизов сопровождать релиз дополнительной информацией по добавленным возможностям.

Хотя так-то это все было сделано еще в 1.1.3.1


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

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


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

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


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

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