|
Аналог функции ТипЗначенияСтр() и методов Вид() и ПолучитьАтрибут() | ☑ | ||
---|---|---|---|---|
0
casufi
19.04.12
✎
17:33
|
Нашел в 8 функцию ТипЗнч , которая выдает что то вроде "Документ ссылка: АвансовыйОтчет" Мне нужно получить сначала тип "Документ", "Справочник" и т.д. и в звисимости от того составной тип или элементарный разветвить алгоритм, в 7 я мог это получить функцией ТипЗначенияСтр() и, если тип справочник или документ , я мог получить его Вид, как это сделать в 8
Кроме того не могу найти как получить значение реквизита документа не через точку, а передав имя реквизита переменной ? |
|||
1
Aleksey
19.04.12
✎
17:34
|
В обменах типовых смотрел?
|
|||
2
КМ155
19.04.12
✎
17:34
|
(0) []
|
|||
3
Дикообразко
19.04.12
✎
17:34
|
ТипЗнч(Значение) = Тип("СправочникСсылка.Номенклатура")
это в FAQ есть для переходящих с 77 |
|||
4
Aleksey
19.04.12
✎
17:36
|
Функция ПолучитьИмяБазовогоТипаПоТипуОбъекта(ТипОбъекта) Экспорт
МетаданныеТипа = Метаданные.НайтиПоТипу(ТипОбъекта); Если МетаданныеТипа = Неопределено Тогда Возврат "УдалениеОбъекта"; ИначеЕсли Метаданные.РегистрыСведений.Содержит(МетаданныеТипа) Тогда Возврат "РегистрыСведений"; ИначеЕсли Метаданные.Документы.Содержит(МетаданныеТипа) Тогда Возврат "Документы"; ИначеЕсли Метаданные.Справочники.Содержит(МетаданныеТипа) Тогда Возврат "Справочники"; ИначеЕсли Метаданные.РегистрыНакопления.Содержит(МетаданныеТипа) Тогда Возврат "РегистрыНакопления"; ИначеЕсли Метаданные.РегистрыБухгалтерии.Содержит(МетаданныеТипа) Тогда Возврат "РегистрыБухгалтерии"; Иначе Возврат ""; КонецЕсли; КонецФункции |
|||
5
Aleksey
19.04.12
✎
17:36
|
ТипОбъекта = ТипЗнч(Объект)
|
|||
6
Дикообразко
19.04.12
✎
17:36
|
Метаданные.Документы.Содержит(Значение.Метаданные())
|
|||
7
casufi
19.04.12
✎
17:40
|
(4,5) Спасибо, я видел это решение, просто не думал, что то, что делалось в 7 одной функцией, нужно делать сотней строк кода
(1) У меня нет ИТС |
|||
8
casufi
19.04.12
✎
18:08
|
с Типом разобрались, чего теперь с видом делать ?
|
|||
9
Агент Инфостарта
19.04.12
✎
18:35
|
(8) ВидОбъектаСтрокой = Значение.Метаданные().Имя;
Аналог клюшечных Значение.Вид() |
|||
10
fisher
19.04.12
✎
19:07
|
Только Метаданные() - штука дюже медленная. На разовых вызовах пофиг.
А в больших циклах лучше, например, парсить XMLТипЗнч().ИмяТипа Оттуда и тип и вид легко достается, а главное - быстро. |
|||
11
Fragster
гуру
19.04.12
✎
19:12
|
Документы.ТипВсеСсылки().СодержитТип(ТипЗнч(Значение))
|
|||
12
Fragster
гуру
19.04.12
✎
19:13
|
(10) зачем его парсить, если можно просто сравнить с ТипЗнч() = Тип("ДокументСсылка.РТиУ")?
|
|||
13
fisher
19.04.12
✎
19:17
|
(11) О! Точно. Эта фигня быстро работает. Так что если только доки и справочники нужны, то то что нужно.
(12) Для задач, когда нужно произвольные значения по базовым типам сначала раскладывать. Когда ими могут и регистры всякие выступать и прочая фигня. |
|||
14
Fragster
гуру
19.04.12
✎
19:26
|
(13) ну вот поменяет Нуралиев catalogref на catalogreference в сериализаторе и все. А ведь можно сделать ТипЗнч(Значение) = ТипЗнч(Документы["РТиУ"].ПустаяСсылка)
|
|||
15
fisher
19.04.12
✎
19:58
|
(14) Я уже сказал для каких случаев это не канает.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |