|
Как определить тип реквизита? | ☑ | ||
|---|---|---|---|---|
|
0
Evlanov
01.11.10
✎
18:51
|
В 1С:Предприятие7.7 есть свойства метаданных Тип и Вид.
Например, Тип = "Справочник" Вид = "Номенклатура" В 1С:Предприятие8 есть аналогичное свойство Тип. Например, Метаданные.Справочники.ВидыОплатОрганизаций.Реквизиты.ДоговорКонтрагента.Тип = "Договоры контрагентов" Как определить что есть "Договоры контрагентов" - справочник, документ или что-либо еще? |
|||
|
1
abitfrosty
01.11.10
✎
18:53
|
ТипЗнч(ДоговорКонтрагента) возвращает тип СправочникСсылка.ДоговорыКонтрагентов
|
|||
|
2
Живой Ископаемый
01.11.10
✎
19:00
|
тут внезапно может быть полезной функция XMLТипЗнч(<Значение>)
вот такой вот ассиметричный ответ |
|||
|
3
Evlanov
01.11.10
✎
19:08
|
Результат = ТипЗнч(Метаданные.Справочники.ВидыОплатОрганизаций.Реквизиты.ДоговорКонтрагента.Тип)
Результат = "Описание типов", но не "СправочникСсылка.ДоговорыКонтрагентов" |
|||
|
4
Defender aka LINN
01.11.10
✎
19:08
|
(2) Извращенец.
Документы.ТипВсеСсылки().СожержитТип(НужныйТип). Надо только помнить, что "Метаданные.Справочники.ВидыОплатОрганизаций.Реквизиты.ДоговорКонтрагента.Тип" - это ОписаниеТипов, а не собственно тип. |
|||
|
5
Defender aka LINN
01.11.10
✎
19:09
|
*"СожержитТип" = "СодержитТип", конечно.
|
|||
|
6
Живой Ископаемый
01.11.10
✎
19:09
|
2(4) вот не нравится мне так... с самого первого дня не нравилось когда я узнал как это делается в в8
|
|||
|
7
Defender aka LINN
01.11.10
✎
19:11
|
(6) Еще раз: Метаданные.Справочники.ВидыОплатОрганизаций.Реквизиты.ДоговорКонтрагента.Тип - НЕ тип. И даже не ссылка.
|
|||
|
8
Живой Ископаемый
01.11.10
✎
19:13
|
я знаю, но мой шаблончик такого не может выдержать и постоянно идет по шву...
|
|||
|
9
Evlanov
01.11.10
✎
19:23
|
Результат = ТипЗнч(Метаданные.Справочники.ВидыОплатОрганизаций.Реквизиты.ДоговорКонтрагента)
Результат = "Объект метаданных" Как определить какой тип у объекта "Метаданные.Справочники.ВидыОплатОрганизаций.Реквизиты.ДоговорКонтрагента"? |
|||
|
10
Defender aka LINN
01.11.10
✎
19:32
|
(9) В (0) есть.
|
|||
|
11
Evlanov
01.11.10
✎
19:35
|
(10) В (0) есть вопрос.
|
|||
|
12
Живой Ископаемый
01.11.10
✎
22:07
|
главное не пробовать ничего из предложенного... тогда со временем само должно получится... ну... наверное... да?
|
|||
|
14
Defender aka LINN
01.11.10
✎
22:16
|
(11) Метаданные.Справочники.ВидыОплатОрганизаций.Реквизиты.ДоговорКонтрагента.Тип <--- это и есть тип реквизита.
|
|||
|
15
Evlanov
02.11.10
✎
09:30
|
(14) Правильно. Тип = "Договоры контрагентов".
А что такое "Договоры контрагентов" - справочник, документ, план счетов или еще что-нибудь? |
|||
|
16
Ненавижу 1С
гуру
02.11.10
✎
09:33
|
(15) Документы.ТипВсеСсылки().СожержитТип(Метаданные.Справочники.ВидыОплатОрганизаций.Реквизиты.ДоговорКонтрагента.Тип.Типы[0])
|
|||
|
17
Defender aka LINN
02.11.10
✎
09:33
|
(15) Если Тип = "Договоры контрагентов", то Тип - строка.
|
|||
|
18
Живой Ископаемый
02.11.10
✎
10:31
|
рассматривай это как часть заговора 1С против тебя лично... Опять твари изобретают неудобный тебе велосипед.
|
|||
|
19
Evlanov
02.11.10
✎
15:23
|
Вот на форуме http://devtrainingforum.v8.1c.ru/ посоветовали. Работает.
НеПонятноЧтоЭто = Метаданные.Справочники.ВидыОплатОрганизаций.Реквизиты.ДоговорКонтрагента.Тип; НеПонятноЧтоСУточнеммымТипом = НеПонятноЧтоЭто.Типы()[0]; // тип может быть составным, // если он не составной то там будет один элемент возмем его; ВсеПонятно = Метаданные.НайтиПоТипу(НеПонятноЧтоСУточнеммымТипом).ПолноеИмя(); // полное имя обекта как оно задано в конфигураторе; ВсеПонятноНачалоИмени = Лев(ВсеПонятно,Найти(ВсеПонятно,".")-1); // тут получим что это "справочник", "документ" .... // в виде текстовотой строки Или такой: ТипПолный = Метаданные.НайтиПоТипу(Метаданные.Справочники.ВидыОплатОрганизаций.Реквизиты.ДоговорКонтрагента.Тип.Типы()[0]).ПолноеИмя(); Тип1 = Лев(ТипПолный,Найти(ТипПолный,".")-1); |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |