![]() |
|
Сравнить тип реквизита | ☑ | ||
---|---|---|---|---|
0
BoberKurit Bambuk
02.03.15
✎
18:08
|
Бухгалтерия 3.0 на 8.3.5
В документе есть реквизит с типом "ПланВидовХарактеристикСсылка.ТипыУсловийПолученияНадбавки". У элементов этого нового плана видов характеристик тип значения могут быть или Число или справочники. Теперь в зависимости от типа значения выбранного элемента мне нужно выполнять определенный код. Если тип Число то одно действие, если тип какой то справочник, то другое. Когда пишу такой код: Тип(Объект.ТипУсловияПолучения.ТипЗначения) = Тип("Число") для Числа работает, но если у выбранного элемента тип какой то справочник, то пишет ошибку. Документ.НастройкаОсновныхНадбавок.Форма.ФормаДокумента.Форма(70)}: Тип не определен (Номенклатура) |
|||
1
ktvladimir
02.03.15
✎
18:10
|
ТипЗнч(Объект) = Тип("Число")
ТипЗнч(Объект) = Тип("СправочникСсылка.Номенклатура") |
|||
2
BoberKurit Bambuk
02.03.15
✎
18:11
|
(1) Номенклатура это пример. Там могут быть разные справочники.
|
|||
3
ktvladimir
02.03.15
✎
18:22
|
(2) какая разница?
<1c> Если ТипЗнч(Объект) = Тип("Число") Тогда ИначеЕсли ТипЗнч(Объект) = Тип("СправочникСсылка.Номенклатура") Тогда ИначеЕсли ТипЗнч(Объект) = Тип("СправочникСсылка.Справочник") Тогда ИначеЕсли ТипЗнч(Объект) = Тип("ДокументСсылкаСсылка.Документ") Тогда КонецЕсли; </1c> |
|||
4
ktvladimir
02.03.15
✎
18:23
|
p/s/ если объект это не ссылка а объект, то
Тип("СправочникОбъект.Номенклатура") |
|||
5
BoberKurit Bambuk
02.03.15
✎
18:29
|
(3) Если будет 30 возможных справочников, то писать 30 условий?
|
|||
6
ktvladimir
02.03.15
✎
18:33
|
хм ну тогда
Если ТипЗнч(Объект) = Тип("Число") Тогда ИначеЕсли Метаданные.Справочники.Содержит(Объект.Метаданные()) ИначеЕсли Метаданные.Документы.Содержит(Объект.Метаданные()) Тогда ... КонецЕсли; |
|||
7
BoberKurit Bambuk
02.03.15
✎
18:40
|
(6) У меня когда тип Число выполняется один код, иначе стандартно другой. Поэтому мне проще проверять Число ли это или нет, и все.
Но когда я пишу Если ТипЗнч(Объект.ТипУсловияПолучения.ТипЗначения) = Тип("Число") Тогда не работает, потому что получает значение ОписаниеТипов |
|||
8
ktvladimir
02.03.15
✎
18:52
|
опять же
Если ТипЗнч(Объект) = Тип("Число") Тогда одно Иначе другое КонецЕсли; В Вашем случае Объект.ТипУсловияПолучения.ТипЗначения это описание типов, оно содержит все типы которые могут быть таким образом оно вам ничем не поможет. Вам Нужно работать непосредственно с тем объектом, значение которого Вы проверяете |
|||
9
ktvladimir
02.03.15
✎
18:53
|
ну или
Если ТипЗнч(Объект.ТипУсловия) = Тип("Число") Тогда одно Иначе другое КонецЕсли; тут вам виднее что вы проверяете |
|||
10
BoberKurit Bambuk
02.03.15
✎
18:53
|
Получилось вот так
Если Объект.ТипУсловияПолучения.ТипЗначения.СодержитТип(Тип("Число")) |
|||
11
ktvladimir
02.03.15
✎
18:54
|
(10) теперь проверьте для типа не число ))) боюсь что все равно даст истину)
|
|||
12
ktvladimir
02.03.15
✎
18:55
|
хотя... что то уже голова не варит.... в Общем думаю вариант (9) в любом случае будет работать) и он проще
|
|||
13
BoberKurit Bambuk
02.03.15
✎
18:55
|
(11) нет. работает.
Когда выбираю допустим элемент с типом значения справочник, дает ложь |
|||
14
ktvladimir
02.03.15
✎
18:56
|
(13) да я уже понял что работать будет, но это извилистый путь) (9) проще
|
|||
15
ktvladimir
02.03.15
✎
18:57
|
и кстати мне кажется Ваш вариант выдаст ошибку в случае когда Объект.ТипУсловияПолучения = Неопределено
|
|||
16
BoberKurit Bambuk
02.03.15
✎
18:57
|
(14) Спасибо за помощь. Сейчас посмотрю твой вариант)
|
|||
17
BoberKurit Bambuk
02.03.15
✎
19:02
|
(14) В 9) он возвращает описание типов и соответственно выдает ложь.
|
|||
18
ktvladimir
02.03.15
✎
19:13
|
(17) ну да. с ПВХ свои особенности.. на неопределено проверку только я думаю не помешает воткнуть
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |