|   |   | 
| 
 | Аналог функции ТипЗначенияСтр() и методов Вид() и ПолучитьАтрибут() | ☑ | ||
|---|---|---|---|---|
| 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) Я уже сказал для каких случаев это не канает.     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |