|
Вызов функции метаданных в управляемом приложении. | ☑ | ||
---|---|---|---|---|
0
Zarix1994
13.04.16
✎
16:31
|
Хочу получить ссылку на объект из управляемого приложения не немогу понять как из строки получить объект метаданных
Вот код: [CODE]&НаКлиенте Процедура ПриОткрытии(Отказ) Объект.ОтражатьВБухгалтерскомУчете = Истина; Объект.ОтражатьВУправленческомУчете = Истина; Объект.ВалютаДокумента = ПолучениеРеквизитов("Справочники.Валюты",1,"980"); КонецПроцедуры //Функция возвращает необходимую информацию из определённого объекта конфигурации //Список операций: //1 - Найти по коду (Параметр1 - Код) // &НаСервере Функция ПолучениеРеквизитов(ОбъектКонфигурации,Операция,Параметр1) Если Операция = 1 Тогда Возврат ОбъектКонфигурации.НайтиПоКоду(Параметр1); КонецЕсли; КонецФункции [/CODE] Пробывал через вычислить ничего не помогло( |
|||
1
Волшебник
модератор
13.04.16
✎
16:32
|
немогу, Пробывал
пишите по-русски |
|||
2
salvator
13.04.16
✎
16:33
|
Объект.ВалютаДокумента = ПолучениеРеквизитов(Справочники.Валюты,1,"980");
|
|||
3
Zarix1994
13.04.16
✎
16:37
|
salvator так не подходит, ибо выдаёт ошибку, мол переменная справочники не объявлена.
|
|||
4
salvator
13.04.16
✎
16:57
|
(3) Если в функции только справочники используются, то так попробуй
Процедура ПриОткрытии(Отказ) Объект.ОтражатьВБухгалтерскомУчете = Истина; Объект.ОтражатьВУправленческомУчете = Истина; Объект.ВалютаДокумента = ПолучениеРеквизитов(Объект.ВалютаДокумента.Метаданные().Имя,1,"980"); КонецПроцедуры Функция ПолучениеРеквизитов(ИмяСпр,Операция,Параметр1) Если Операция = 1 Тогда Возврат Справочники[ИмяСпр].НайтиПоКоду(Параметр1); КонецЕсли; КонецФункции |
|||
5
Zarix1994
13.04.16
✎
17:00
|
В том то и дело там передаются параметры не только справочников, а ещё и документов, и регистра сведений.
|
|||
6
salvator
13.04.16
✎
17:09
|
(5) Тогда передавать в первый параметр ссылку (например, Объект.ВалютаДокумента), и с помощью функции определять менеджер объекта по ссылке:
Функция МенеджерОбъектаПоСсылке(Ссылка) Экспорт ИмяОбъекта = Ссылка.Метаданные().Имя; ТипСсылки = ТипЗнч(Ссылка); Если Справочники.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда Возврат Справочники[ИмяОбъекта]; ИначеЕсли Документы.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда Возврат Документы[ИмяОбъекта]; ИначеЕсли БизнесПроцессы.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда Возврат БизнесПроцессы[ИмяОбъекта]; ИначеЕсли ПланыВидовХарактеристик.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда Возврат ПланыВидовХарактеристик[ИмяОбъекта]; ИначеЕсли ПланыСчетов.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда Возврат ПланыСчетов[ИмяОбъекта]; ИначеЕсли ПланыВидовРасчета.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда Возврат ПланыВидовРасчета[ИмяОбъекта]; ИначеЕсли Задачи.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда Возврат Задачи[ИмяОбъекта]; ИначеЕсли ПланыОбмена.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда Возврат ПланыОбмена[ИмяОбъекта]; ИначеЕсли Перечисления.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда Возврат Перечисления[ИмяОбъекта]; Иначе Возврат НеОпределено; КонецЕсли; КонецФункции |
|||
7
sash-ml
13.04.16
✎
17:16
|
Менеджер = Неопределено;
Вычислить("Менеджер = " + ОбъектКонфигурации); Менеджер.НайтиПоКоду(Параметр1); |
|||
8
salvator
13.04.16
✎
17:33
|
Кстати, да. Почему у тебя Вычислить не сработало?
Функция ПолучениеРеквизитов(ОбъектКонфигурации,Операция,Параметр1) Менеджер = Вычислить(ОбъектКонфигурации); Если Операция = 1 Тогда Возврат Менеджер.НайтиПоКоду(Параметр1); КонецЕсли; КонецФункции где ОбъектКонфигурации - строка вида "Справочники.ИмяСправочника". |
|||
9
Zarix1994
14.04.16
✎
09:25
|
(8) Спасибо помогло, я просто делал это на клиенте а не на сервере.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |