По объекту метаданных как получить сам объект #765901


#0 by laby1
или хотя бы тип объекта ...
#0 by laby1
или хотя бы тип объекта ...
#1 by PR третий
Че?
#2 by aleks_default
Имя, Карл, Имя!
#3 by Одинесю
Метаданные - это класс, а объект - один из многих его экземпляров.
#4 by laby1
у меня переменная в ней Значение типа ОбъектМетаданных
#5 by Записьдампа
Вот у тебя есть Метаданные.Справочники.Пользователи - какой тип ты надеешься получить? Ссылка? Объект? Менеджер?
#6 by laby1
Объект
#7 by olegves
найди по ссылке и получи объект
#8 by laby1
Вобще-то мне нужен тип этого объекта
#9 by olegves
ему человек нужон, на конкретно, мужчина или женчина, а именно человек
#10 by laby1
ну вот мой код:
#11 by laby1
В процедуре первой условие допустим по табличным частям - по названию объекта, а вдруг объект ктото так назвал к примеру и код будет неправильно работать так как у тог не будет реквизитов
#12 by olegves
кури ОписаниеТипов
#13 by Одинесю
#14 by laby1
не курю, бросил )
#15 by laby1
Я не знаю ТекОбъект
#16 by laby1
У меня в первой процедуре Элемент типа ОбъектМетаданных
#17 by olegves
тогда бросай 1С - это не твое
#18 by laby1
ща
#19 by Rie
Так а какой именно объект тебе нужен? Помедитируй над этим. И над отличием данных и метаданных.
#20 by laby1
ну мне надо понять мой Элемент табличная часть или нет
#21 by laby1
и еще узнать ссылочного типа или нет
#22 by laby1
чото я покурил но не всосал
#23 by LordCMEPTb
Парадокс, метаданных в том, что получить объект по ссылке можно, а вот ссылку по объекту приходится формировать руками. Хорошо, что хоть есть метод у объекта метаданных "ПолноеИмя".
#24 by laby1
Вот я получил его Элемент.ПолноеИмя="Документ.ПриемНаРаботу.ТабличнаяЧасть.Удержания" Что дальше ... ?
#25 by laby1
А мне нужен тип ...
#26 by LordCMEPTb
Я от безысходности парсил строку, вычленял первую часть ("справочник", "документ", "перечисление"), подцеплял менеджер, из него по имени получал ссылку. А какой тип нужен из "Документ.ПриемНаРаботу.ТабличнаяЧасть.Удержания"?
#27 by laby1
Ну мне надо понять - если это табличная часть то для нее вывести реквизиты, если это ссылочный тип, то структуру этого объекта
#28 by laby1
а то, если я начинаю искать реквизиты для реквизитов то их там уже нету ... можно конечно исключениями поработать ...
#29 by laby1
но не люблю я их много использовать
#30 by Записьдампа
родитель объекта метаданных даст коллекцию по которой можно понять тип метаменеджера по которому сравнением Если = Тогда ИначеЕсли получить объект глобального контекста который позволит вычислить чисто конкретного менеджера по имени а у него есть метод создания
#31 by LordCMEPTb
Это ни о чем не говорит? Нужно именно тип получить, не взирая на то, что тип еще нужно как-то проверить?
#32 by laby1
Родитель мне известен, это Объект Вообще не понял вашего сообщения много буков и ни одной даже запятой
#33 by Записьдампа
Ну, ты первый начал
#34 by laby1
Смотрите. Вот я просматриваю допустим реквизиты документа. Вот перебираю их - Сотрудник. Теперь мне надо перебрать реквизиты справочника "Сотрудники" Как мне теперь сослаться на объект метаданных "Сотрудники" ?
#35 by laby1
ну у меня тоже бывает, да
#36 by laby1
Я так понял сделать процедуру мегасравнения не универсальную это некрасиво и не правильно
#37 by Записьдампа
И натыкаешься на составной тип
#38 by laby1
не понял
#39 by laby1
Мне пофик составной не составной - я в рекурсии все равно уже
#40 by laby1
мне осталось в задаче всего-то перейти от реквизита к самому объекту ... помогите, люди!!!
#41 by Записьдампа
Вот ты просматриваешь допустим реквизиты документа. Вот перебираешь их - Основание составного типа. Теперь тебе надо перебрать реквизиты?
#42 by laby1
.Тип Возвращает мне "ФизическиеЛица"
#43 by Записьдампа
А почему там строка?
#44 by laby1
тип "ОписаниеТипов"
#45 by laby1
не строка ОписаниеТипов
#46 by Записьдампа
Ну так ты в и хотел тип
#47 by laby1
Мне из него надо объект получить как-то Метаданные.Справочники.ФизическиеЛица
#48 by laby1
Концепция поменялась :)
#49 by laby1
и ОписаниеТипов и тип не совсем одно и то же
#50 by Записьдампа
я про составные тебе давно говорю
#51 by laby1
то есть мне надо тип реквизита
#52 by laby1
что составные?
#53 by Записьдампа
ну основание документа например
#54 by Записьдампа
Там же не тип
#55 by Dmitrii
А если в ОписаниеТипов массив типов? Например, СправочникСсылка.ФизическиеЛица, СправочникСсылка.Контрагенты, СправочникСсылка.Склады и Строка. Какой из этих объектов метаданных тебе нужен и что делать со строкой?
#56 by laby1
Да мне хотя бы с простым вариантом решить
#57 by Записьдампа
тогда по типу надо объект метаданных искать
#58 by laby1
ну да, а как?
#59 by Записьдампа
в СП же написано
#60 by laby1
СП это шо?
#61 by Записьдампа
Северная пивоварня
#62 by laby1
А в описаниеТипов может всегда массив?
#63 by Записьдампа
#64 by laby1
хаха, а если серьезно?
#65 by laby1
ЖКК знаю, СП нет
#66 by Записьдампа
ты ж в уже раскурил
#67 by Dmitrii
#68 by LordCMEPTb
Ну хорошо, перебираем реквизиты документа. Наткнулись на тип "СправочникСсылка.Сотрудники". Делаем: Метаданные.НайтиПоТипу(ТекущийТип) Получаем объект справочника Сотрудники. Проходим по его реквизитам, натыкаемся на реквизит "ДокументПриема", находим документ приема, просматриваем его реквизиты, находим с типом "Сотрудник". И тут начинается понимание рекурсии.
#69 by laby1
удже забыл
#70 by laby1
ну вот, а то СП ..
#71 by Записьдампа
Рекорд
#72 by Dmitrii
>>  в описаниеТипов может всегда массив? Вообще-то всегда.
#73 by laby1
значит нормально курил
#74 by LordCMEPTb
а еще есть БСП... это Большая СП... ибо судя по сообщениям СП - НЁХ. В описании типов описание типов. Для получения массива нужен метод.
#75 by laby1
Метаданные.НайтиПоТипу(Элемент.Тип) - не работает требует тип а у меня описаниетипов
#76 by laby1
Так я в синтакс-помощнике курил! А что такое СП ???
#77 by laby1
Так это он и есть!!!
#78 by LordCMEPTb
->
#79 by laby1
Большая синтакс-помощница?
#80 by Записьдампа
Геннадий, вот ваше полотенце!
#81 by laby1
шо?
#82 by Fish
Надо короче: Гена, на!
#83 by lenochka-semicova
Например, так: Про рекурсию также стоит помнить
#84 by laby1
Вобщем у нас конец рабдня, всех с 23Ф
#85 by Записьдампа
Сообщить(Реквием.Имя);
#86 by Dmitrii
+ к : Если есть описание типов Для Каждого Тип Из ИзвестноеМнеОписаниеТипов Цикл
#87 by LordCMEPTb
Это если в описаниях только ссылки. А если будет строка/число/дата/уникальный идентификатор, то упадет с ошибкой отсутствия метода.
#88 by laby1
попытка не пытка в 1С
#89 by Записьдампа
4. Недопустимо делать проверки наличия у объекта реквизитов, методов, макетов и т.п., используя для этого исключения, т.к. это может привести к сложно диагностируемым ошибкам, а также затрудняет отладку в режиме «Останавливаться по ошибке». Вместо перехвата исключений в этом случае рекомендуется:     использовать механизмы работы с метаданными, чтобы явным образом проверять наличие или отсутствие реквизита (макета и т.п.);     если различия связаны с особенностями встраивания библиотек – описывать особенности явным образом в переопределяемых модулях (см. Переопределяемые и поставляемые объекты);     пересмотреть логику работы методов, использующих перехват исключений. Например, можно предусмотреть параметры, которые определяются в вызывающем коде и указывают нужно или нет обращаться к какому-либо методу или свойству объекта.
#90 by TormozIT
Использую попытки там, где они выигрывают по скорости и всем советую. В механизме остановки по ошибке давно есть фильтр. Сложно диагностируемых ошибок новых не появится, если в попытке будет строго одна операция.
#91 by Записьдампа
Очень радостно за тебя. Необходимо срочно распространить эту информацию! Расскажи, пожалуйста, подробно о своих достижениях фирме 1С и они внесут изменения в систему стандартов и методик разработки конфигураций для платформы 1С:Предприятие 8.
#92 by TormozIT
Еще 4 года назад об этом им написал, сори что не поставил тебя в копии. Какое у тебя мыло?
#93 by Записьдампа
Странно, что за 4 года они так и не внесли изменения. Но не опускай руки, надо продолжать борьбу! Напиши еще на info@sportloto.ru
#94 by TormozIT
Согласен странно. Ведь мое мнение очень важно для 1С. Раз ты так внимательно следишь за моими стараниями, давай свое мыло, подпишу тебя на рассылку о важных событиях, чтобы ты ничего не пропустил.
#95 by Записьдампа
liteawri@disposableinbox.com Только подпиши на действительно важные - мне тоже очень хочется быть на острие прогресса и нести свет заблудшим душам!
#96 by TormozIT
Отправил письмо с запросом подтверждения подписки. Там внутри можно указать флажками, на какие события ты подписываешься. Жду ответ.
#97 by Записьдампа
Что-то нет там твоего письма. Ты точно его посылал? Попыткой-Исключением не пользовался?
#98 by TormozIT
Повезло теме, что здесь возник наш диалог. Теперь она будет в топах наверное месяц. Проверь в спам-фильтрах. Мои письма туда часто попадают.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С