Как программно зная тип объекта, получить создать сам объект #24398


#0 by aegoncharov
Имеем пременную Т типа тип. Её значение, например, равно СправочникСсылка.Организации (т.е. строка(Т)="Справочник ссылка : Организации"). Как получить Переменную П соответствующего типа? Или просто имя этого справочника: Имя="Организации" типа строка, только без извращений с вырезанием из строки? Как назначить реквизиту документа множественного типа, имеющего изначально тип Неопределено, тип Т? Вроде ведь нету функциии СоздатьОбъект(Т)....
#1 by Волшебник
а) б) чем Неопределено не устраивает? подозреваю, что речь идет о поле ввода, связанном с реквизитом документа в) есть ключевое слово Новый
#2 by aegoncharov
В общем если конкретнее: Пишу функцию которая получает(Тип:тип,данные:строка) (например Тип=СправочникСсылка.Организации,в данные = код элемента этого справочника - по моему этого достаточно) Должна вернуть значение типа СправочникСсылка.Организации, указывающее на элемент с соответствующим кодом. Значение это в дальнейшем присваивается реквизиту документа. Если бы мы знали Имя справочника, то все выглядело бы так: Но программа знает только тип, которму однозначно, по идее, соответствует имя, однако преобразовать не могу. б)Неопределено не устраивает, так как нельзя сказать Реквизит.Метаданные.Имя - ругнется в)В Новый переменную с типом не запихаешь
#3 by Волшебник
Ссылка.Метаданные.Имя
#4 by aegoncharov
У функции нет ссылки (она ней не знает), ее задача - получить эту самую ссылку, зная только её тип. В общем если абстрагировать вопрос от самой программы: Как провести следующее преобразование типов (без использования дополнительных данных): где, ТИП (типа тип) = СправочникСсылка.<Имя Справочника> или ДокументСсылка.<Имя Документа> а на выходе ИМЯ (типа строка) = "Имя Справочника" или "Имя Документа" соответственно Вариант со разрезанием строки Строка(ТИП)="Справочник ссылка : имя справочника" считаю извращением. Возможен ли другой? (в принципе?) Данных то ведь достаточно - Типу однозначно соответствует Имя сразу скажу что определять справочник это или документ я умею (благодаря этому форуму :) )
#5 by aegoncharov
Сам спросил, сам ответил: На входе имеем Тип, Код (или Тип, Номер, Дата - в случае документа). Имя=Метаданные.НайтиПоТипу(Тип).Имя; На выходе имеем Имя справочника/документа, Ссылку на нужный справочник/документ
#6 by Волшебник
Главное - не мешать человеку!
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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