Переключение на Главную Страницу Страницы: 1 [2]  ОтправитьПечать
Очень популярная тема (более 25 ответов) Обращение к метаданным через MetaDataWork (число прочтений - 6508 )
Antes
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 57
Зарегистрирован: 17. Октября 2008
Re: Обращение к метаданным через MetaDataWork
Ответ #15 - 19. Июля 2010 :: 07:12
Печать  
Eprst писал(а) 19. Июля 2010 :: 06:48:
Antes писал(а) 19. Июля 2010 :: 06:26:
Насколько я понимаю, свойство позволяет получать доступ ко всем методам и свойствам объекта Метаданные. Т.е. Метаданные.Справочник(Вид).Владелец должен возвращать именно справочник-владелец, а не "Метаданные", что ничто иное, как пустое значение.



Возвращает как раз объект типа метаданные.

Это аналогично,как  Спр.ТекущийЭлемент() -  тип значения "Справочник", а видишь ты основное представление этого справочника (через Сообщить(Спр.ТекущийЭлемент(), например)


Возвращается как раз ссылка на объект, а не сам объект. Неважно, это уже отход в сторону от обсуждаемого вопроса.
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Обращение к метаданным через MetaDataWork
Ответ #16 - 19. Июля 2010 :: 07:14
Печать  
Antes писал(а) 19. Июля 2010 :: 07:07:
Иными словами:
Метаданные.Справочник("Договоры").Владелец
мне возвращается идентификатор справочника владельца текущей базы. Это работает нормально! Улыбка
_МД.Метаданные.Справочник("Договоры").Владелец
должен вернуться идентификатор владельца справочника во внешней базе, а возвращается  "Метаданные". Соответственно, в первом случае методы Выбран() возвращает 1, а во втором - 0. Хотя, результат, насколько я понимаю, должен быть одинаков при одинаковой конфигурации баз.


Вот так, что пишет ?
Код
Выбрать все
Сообщить(_МД.Метаданные.Справочник("Договоры").Выбран());
Сообщить(_МД.Метаданные.Справочник("Договоры").Владелец); 



Сдается мне, что 100% справочника Договоры в присоединенном мд нет вообще, вот и возвращает "метаданные"






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



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Обращение к метаданным через MetaDataWork
Ответ #17 - 19. Июля 2010 :: 07:43
Печать  
Eprst писал(а) 19. Июля 2010 :: 07:10:
trad писал(а) 19. Июля 2010 :: 06:57:
а вот получение Владельца для присоединенного md видимо не работает. Баг.


Работает!
На 3-ей версии 1cpp всё работает, на младших не проверял..

проверь на двух разнородных конфах
  

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



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Обращение к метаданным через MetaDataWork
Ответ #18 - 19. Июля 2010 :: 07:45
Печать  
trad писал(а) 19. Июля 2010 :: 07:43:
Eprst писал(а) 19. Июля 2010 :: 07:10:
trad писал(а) 19. Июля 2010 :: 06:57:
а вот получение Владельца для присоединенного md видимо не работает. Баг.


Работает!
На 3-ей версии 1cpp всё работает, на младших не проверял..

проверь на двух разнородных конфах


Так и делал - подключался к зику с торговли.
Всё работает.

У автора поди так:
Смотрит владельца у НЕ подчиненного справочника, вот и возвращает ему "метаданные", заместо пустой строки, а вот метод Выбран() правильно возвращает - 0 , что Владельца нет, т.е так%:

Код
Выбрать все
_МД.Метаданные.Справочник("Договоры").Владелец = Метаданные
_МД.Метаданные.Справочник("Договоры").Владелец.Выбран() = 0 



И в родной базе, тоже самое возвращает, кстати.
Видать просто Пит ошибся, когда свой als писал..
Улыбка






  
Наверх
 
IP записан
 
Antes
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 57
Зарегистрирован: 17. Октября 2008
Re: Обращение к метаданным через MetaDataWork
Ответ #19 - 19. Июля 2010 :: 07:53
Печать  
Eprst писал(а) 19. Июля 2010 :: 07:45:
trad писал(а) 19. Июля 2010 :: 07:43:
Eprst писал(а) 19. Июля 2010 :: 07:10:
trad писал(а) 19. Июля 2010 :: 06:57:
а вот получение Владельца для присоединенного md видимо не работает. Баг.


Работает!
На 3-ей версии 1cpp всё работает, на младших не проверял..

проверь на двух разнородных конфах


Так и делал - подключался к зику с торговли.
Всё работает.

У автора поди так:
Смотрит владельца у НЕ подчиненного справочника, вот и возвращает ему "метаданные", заместо пустой строки, а вот метод Выбран() правильно возвращает - 0 , что Владельца нет, т.е так%:

Код
Выбрать все
_МД.Метаданные.Справочник("Договоры").Владелец = Метаданные
_МД.Метаданные.Справочник("Договоры").Владелец.Выбран() = 0 



И в родной базе, тоже самое возвращает, кстати.
Видать просто Пит ошибся, когда свой als писал..
Улыбка







Видимо, не все читается или не все понимается, как написано. Не в обиду будет сказано!
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Обращение к метаданным через MetaDataWork
Ответ #20 - 19. Июля 2010 :: 07:56
Печать  
Eprst писал(а) 19. Июля 2010 :: 07:45:
Так и делал - подключался к зику с торговли.

а владельца у какого справочника проверял?
  

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



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Обращение к метаданным через MetaDataWork
Ответ #21 - 19. Июля 2010 :: 08:00
Печать  
trad писал(а) 19. Июля 2010 :: 07:56:
Eprst писал(а) 19. Июля 2010 :: 07:45:
Так и делал - подключался к зику с торговли.

а владельца у какого справочника проверял?


ВычетыСотрудниковПоНДФЛ

вернул Сотрудники..
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Обращение к метаданным через MetaDataWork
Ответ #22 - 19. Июля 2010 :: 08:06
Печать  
Eprst писал(а) 19. Июля 2010 :: 08:00:
ВычетыСотрудниковПоНДФЛ

вернул Сотрудники..

дай списать (код покажи)
  

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


I Love YaBB 2!

Сообщений: 57
Зарегистрирован: 17. Октября 2008
Re: Обращение к метаданным через MetaDataWork
Ответ #23 - 19. Июля 2010 :: 08:07
Печать  
Ситуация следующая.
Есть три базы: 2 бухучета и 1 усн. В них всех есть справочник "ЗаймыКонтрагентов". Абсолютно одинаков во всех трех конфах, подчинен справочнику "Контрагенты". Из "бухучета" в "бухучет" все работает верно! Из "усн" в "бухучет" и наоборот получается описанный мной результат., т.е. Владелец = "Метаданные".
Со справочником "Договоры" (из стандартных конф бухучета и усн ) та же история. Пробовал на 2.5.0.5, 2.5.0.7, 3.2.1.0.
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Обращение к метаданным через MetaDataWork
Ответ #24 - 19. Июля 2010 :: 08:19
Печать  
trad писал(а) 19. Июля 2010 :: 08:06:
Eprst писал(а) 19. Июля 2010 :: 08:00:
ВычетыСотрудниковПоНДФЛ

вернул Сотрудники..

дай списать (код покажи)


чорт, действительно смотрел не стой конфы.. т.е смотрел с другово зика в зик..
С торговли не прокатило.
Звиняюсь.
  
Наверх
 
IP записан
 
Antes
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 57
Зарегистрирован: 17. Октября 2008
Re: Обращение к метаданным через MetaDataWork
Ответ #25 - 19. Июля 2010 :: 08:26
Печать  
О том и речь!!! Какие есть варианты?
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Обращение к метаданным через MetaDataWork
Ответ #26 - 19. Июля 2010 :: 08:34
Печать  
Antes писал(а) 19. Июля 2010 :: 08:26:
О том и речь!!! Какие есть варианты?

Или подождать, пока исправят баг, или взять activemd.dll, к примеру.
  
Наверх
 
IP записан
 
Antes
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 57
Зарегистрирован: 17. Октября 2008
Re: Обращение к метаданным через MetaDataWork
Ответ #27 - 19. Июля 2010 :: 08:45
Печать  
Продолжая тему, предлагаю попробовать еще один пример:
у справочника есть реквизит типа "Справочник.ВидыДоговоров". Вот что видим в отладчике:
_МД.Метаданные.Справочник("Договоры").Реквизит("ВидДоговора").Тип = "Справочник"
_МД.Метаданные.Справочник("Договоры").Реквизит("ВидДоговора").Вид = ""
  
Наверх
 
IP записан
 
Antes
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 57
Зарегистрирован: 17. Октября 2008
Re: Обращение к метаданным через MetaDataWork
Ответ #28 - 20. Июля 2010 :: 13:08
Печать  
Так можно надеяться на исправление данных багов? Не хотелось бы использовать другие библиотеки.
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Обращение к метаданным через MetaDataWork
Ответ #29 - 20. Июля 2010 :: 13:40
Печать  
Обращайся к trad-у.. Поправит
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 
ОтправитьПечать