Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) Метаданные присоединенной б/д (число прочтений - 8198 )
Delorn
YaBB Newbies
*
Отсутствует


1c user

Сообщений: 9
Зарегистрирован: 07. Августа 2007
Пол: Мужской
Метаданные присоединенной б/д
21. Сентября 2007 :: 11:44
Печать  
Каким образом можно получить дерево метаданных. Присоединенной бд? Подскажите пример?

В текущей я конечно могу все получить с помощи метаданных
Для СчЦ = 1 по Метаданные.Документ() Цикл
   Сообщить(Метаданные.Документ(СчЦ));
...
А в той которую присоединил? Очень не хочется подключаться по ОЛЕ.
  
Наверх
 
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Метаданные присоединенной б/д
Ответ #1 - 21. Сентября 2007 :: 12:40
Печать  
Можно файл 1Cv7.DD (DDS) анализировать.
Там информации даже больше.
  
Наверх
 
IP записан
 
Delorn
YaBB Newbies
*
Отсутствует


1c user

Сообщений: 9
Зарегистрирован: 07. Августа 2007
Пол: Мужской
Re: Метаданные присоединенной б/д
Ответ #2 - 21. Сентября 2007 :: 12:42
Печать  
Цитата:
Можно файл 1Cv7.DD (DDS) анализировать.
Там информации даже больше.

Интересно. А можно хотя бы одну ссылку на то как это делать.
Изменено:
Открыл текстовым блокнотом все понял. Большое спасибо. Это то что нужно Улыбка почти для меня ленивого
  
Наверх
 
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Метаданные присоединенной б/д
Ответ #3 - 21. Сентября 2007 :: 12:47
Печать  
Блокнотом или любым текстовым редактором щелкаешь по файлу  и смотришь.

Программно наверно можно, но ссылок не видел.
В принципе там делов - за день можно сруктуировать.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Метаданные присоединенной б/д
Ответ #4 - 21. Сентября 2007 :: 12:57
Печать  
Объект MetaDataWork
метод
ПрисоединитьМД / AttachMD

Синтаксис: ПрисоединитьМД(ПутьМД)

Параметры:

ПутьМД - тип: Строка. Путь к файлу 1cv7.md
Описание: позволяет загрузить метаданные из указанного файла. В дальнейшем получение всех внутренних идентификаторов объектов метаданных будет выполняться по подключенным метаданным
  
Наверх
 
IP записан
 
Delorn
YaBB Newbies
*
Отсутствует


1c user

Сообщений: 9
Зарегистрирован: 07. Августа 2007
Пол: Мужской
Re: Метаданные присоединенной б/д
Ответ #5 - 21. Сентября 2007 :: 13:06
Печать  
Это обнадеживает, я практически погрузился в создание парсера для DD Улыбка
Как мне получить список видов документов в присоединенной базе?
Вот так в текущей базе.
Для СчЦ = 1 по Метаданные.Документ() Цикл
   Сообщить(Метаданные.Документ(СчЦ));
КонецЦикла;
Не ужели есть подобный аналог в 3-20 строчек на 1с++?
  
Наверх
 
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Метаданные присоединенной б/д
Ответ #6 - 21. Сентября 2007 :: 13:15
Печать  
Мне тоже интересно

А как получить из MetaDataWork
1. Метаданные. Регистр() - количество регистров ?
или количество справочников?
2. Идентификатор
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Метаданные присоединенной б/д
Ответ #7 - 21. Сентября 2007 :: 13:31
Печать  
Количество и идентефикаторы легко, а вот как вытащить реальные названия, синоним и.т.д. ?
         
     meta1 = СоздатьОбъект("MetaDataWork");
     meta1.ПрисоединитьМД("c:work\1cv7.md");
     инд1 = 0;
     Пока ( 1 = 1 ) Цикл
           инд1 = инд1 + 1;
           Попытка
                 Идент  = СокрЛП(meta1.ИмяТаблицыСправочника(инд1));
           Исключение
               Прервать;
           КонецПопытки;
           Назв = meta1.ИДСправочника(инд1);
           Сообщить("Справочник Индекс =" + инд1 + " Идент = " + Идент + " название в базе = " + Назв);
     КонецЦикла;
     инд1 = 0;
     Пока ( 1 = 1 ) Цикл
           инд1 = инд1 + 1;
           Попытка
                 Идент  = СокрЛП(meta1.ИДРегистра(инд1));
           Исключение
               Прервать;
           КонецПопытки;
           Назв = meta1.ИДРегистра(инд1);
           Сообщить("Регистр =" + инд1 + " Идент = " + Идент );
     КонецЦикла;
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Метаданные присоединенной б/д
Ответ #8 - 21. Сентября 2007 :: 13:35
Печать  
Как мне кажется можно MetaDataWork снабдить атрибутом Метаданные (типа Метаданные) который бы предоставлял доступ к метаданным присоединенного md.
И реализация думаю будет не сложная. Может кто то из разработчиков и сделает.
  

1&&2&&3
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Метаданные присоединенной б/д
Ответ #9 - 21. Сентября 2007 :: 13:45
Печать  
trad писал(а) 21. Сентября 2007 :: 13:35:
Как мне кажется можно MetaDataWork снабдить атрибутом Метаданные (типа Метаданные) который бы предоставлял доступ к метаданным присоединенного md.
И реализация думаю будет не сложная. Может кто то из разработчиков и сделает.

Намекнешь, каким образом? Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Метаданные присоединенной б/д
Ответ #10 - 21. Сентября 2007 :: 13:55
Печать  
trad писал(а) 21. Сентября 2007 :: 13:35:
Как мне кажется можно MetaDataWork снабдить атрибутом Метаданные (типа Метаданные) который бы предоставлял доступ к метаданным присоединенного md.
И реализация думаю будет не сложная. Может кто то из разработчиков и сделает.


А почему можно написать
МД.ИмяТаблицыИтогов("ПартииНаличие") и получить RG5213, а обратного метода нет?
Как-то нелогично.

Этого и также получение номера и количества (без попыток) было бы достаточно.

  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Метаданные присоединенной б/д
Ответ #11 - 21. Сентября 2007 :: 15:06
Печать  
artbear писал(а) 21. Сентября 2007 :: 13:45:
trad писал(а) 21. Сентября 2007 :: 13:35:
Как мне кажется можно MetaDataWork снабдить атрибутом Метаданные (типа Метаданные) который бы предоставлял доступ к метаданным присоединенного md.
И реализация думаю будет не сложная. Может кто то из разработчиков и сделает.

Намекнешь, каким образом? Улыбка

посмотрел.
CMetadataContext - не экспортирован.
Тады ой.
  

1&&2&&3
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Метаданные присоединенной б/д
Ответ #12 - 21. Сентября 2007 :: 16:23
Печать  
trad писал(а) 21. Сентября 2007 :: 15:06:
artbear писал(а) 21. Сентября 2007 :: 13:45:
trad писал(а) 21. Сентября 2007 :: 13:35:
Как мне кажется можно MetaDataWork снабдить атрибутом Метаданные (типа Метаданные) который бы предоставлял доступ к метаданным присоединенного md.
И реализация думаю будет не сложная. Может кто то из разработчиков и сделает.

Намекнешь, каким образом? Улыбка

посмотрел.
CMetadataContext - не экспортирован.
Тады ой.


Твой способ конечно самый лучший
Я попробовал добавить метод в MetaDataWork вроде получилось
// Колво справочников
           int countDefSpr =m_pMetaDataCont->GetSTypeDefs()->GetNItems();
           rValue = countDefSpr;

Аналогично можно найти
/ char const* GetCode() - получить строку с идентификатором объекта
// char const* GetDescr() - получить строку с комментарием объекта
// char const* GetPresent() - получить строку с синонимом объекта
  
Наверх
 
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Метаданные присоединенной б/д
Ответ #13 - 21. Сентября 2007 :: 16:42
Печать  
trad писал(а) 21. Сентября 2007 :: 13:35:
Как мне кажется можно MetaDataWork снабдить атрибутом Метаданные (типа Метаданные) который бы предоставлял доступ к метаданным присоединенного md.
И реализация думаю будет не сложная. Может кто то из разработчиков и сделает.


Весьма интересно и нужно!  Подмигивание


  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Метаданные присоединенной б/д
Ответ #14 - 21. Сентября 2007 :: 16:44
Печать  
kiruha писал(а) 21. Сентября 2007 :: 12:47:
Блокнотом или любым текстовым редактором щелкаешь по файлу  и смотришь.

Программно наверно можно, но ссылок не видел.
В принципе там делов - за день можно сруктуировать.


Подскажи каким образом узнать что char(9) означает ссылку на справочник Номенклатура?
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать