|
|
|
Как программно зная тип объекта, получить создать сам объект | ☑ | ||
|---|---|---|---|---|
|
0
aegoncharov
06.01.05
✎
20:33
|
Имеем пременную Т типа тип.
Её значение, например, равно СправочникСсылка.Организации (т.е. строка(Т)="Справочник ссылка : Организации"). Как получить Переменную П соответствующего типа? Или просто имя этого справочника: Имя="Организации" типа строка, только без извращений с вырезанием из строки? Как назначить реквизиту документа множественного типа, имеющего изначально тип Неопределено, тип Т? Вроде ведь нету функциии СоздатьОбъект(Т).... |
|||
|
1
Волшебник
06.01.05
✎
20:36
|
а) v8: Будни: Как определить, что ссылка на справочник или документ?
б) чем Неопределено не устраивает? подозреваю, что речь идет о поле ввода, связанном с реквизитом документа в) есть ключевое слово Новый |
|||
|
2
aegoncharov
06.01.05
✎
21:18
|
В общем если конкретнее:
Пишу функцию которая получает(Тип:тип,данные:строка) (например Тип=СправочникСсылка.Организации,в данные = код элемента этого справочника - по моему этого достаточно) Должна вернуть значение типа СправочникСсылка.Организации, указывающее на элемент с соответствующим кодом. Значение это в дальнейшем присваивается реквизиту документа. Если бы мы знали Имя справочника, то все выглядело бы так: Реквизит=Справочники[Имя].НайтиПоКоду(данные,Истина); Но программа знает только тип, которму однозначно, по идее, соответствует имя, однако преобразовать не могу. б)Неопределено не устраивает, так как нельзя сказать Реквизит.Метаданные().Имя - ругнется в)В Новый переменную с типом не запихаешь |
|||
|
3
Волшебник
07.01.05
✎
09:50
|
Ссылка.Метаданные().Имя
|
|||
|
4
aegoncharov
07.01.05
✎
12:01
|
У функции нет ссылки (она ней не знает), ее задача - получить эту самую ссылку, зная только её тип.
В общем если абстрагировать вопрос от самой программы: Как провести следующее преобразование типов (без использования дополнительных данных): ТИП -> ИМЯ где, ТИП (типа тип) = СправочникСсылка.<Имя Справочника> или ДокументСсылка.<Имя Документа> а на выходе ИМЯ (типа строка) = "Имя Справочника" или "Имя Документа" соответственно Вариант со разрезанием строки Строка(ТИП)="Справочник ссылка : имя справочника" считаю извращением. Возможен ли другой? (в принципе?) Данных то ведь достаточно - Типу однозначно соответствует Имя сразу скажу что определять справочник это или документ я умею (благодаря этому форуму :) ) |
|||
|
5
aegoncharov
08.01.05
✎
06:44
|
Сам спросил, сам ответил:
На входе имеем Тип, Код (или Тип, Номер, Дата - в случае документа). Имя=Метаданные.НайтиПоТипу(Тип).Имя; Ссылка=Справочники[Имя].НайтиПоКоду(Код,Ложь); //или, если тип - документ, поиск документа по номеру и дате На выходе имеем Имя справочника/документа, Ссылку на нужный справочник/документ |
|||
|
6
Волшебник
08.01.05
✎
08:25
|
Главное - не мешать человеку!
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |