|
Проверка типа составного реквизита (8.3)
| ☑ |
0
es3000
21.11.14
✎
16:36
|
Помогите, пожалуйста, дописать код условия для проверки типа составного реквизита.
Значит есть составной реквизит, он может содержать любые значения: числа, стоки, ссылки на документы, ссылки на справочники и т.д.
Мне нужно проверить: если это ссылка на документ то делаем ...
Сейчас написан такой код:
ТипЗначения = ТипЗнч(об.реквизит.Ссылка);
ОбъектМетаданных = Метаданные.НайтиПоТипу(ТипЗначения);
Если Метаданные.Документы.Содержит(ОбъектМетаданных) Тогда
...
Но не срабатывает, когда значение этого реквизита оказывается не ссылочного типа или он оказывается незаполненным.
Как добавить эти дополнительные проверки?
так как
|
|
1
olegves
21.11.14
✎
16:38
|
типы().Выгрузить()
|
|
2
es3000
21.11.14
✎
16:39
|
(1) а дальше что с этим делать?
|
|
3
Жан Пердежон
21.11.14
✎
16:43
|
ошибка в первой строке:
ТипЗначения = ТипЗнч(об.реквизит)
|
|
4
es3000
21.11.14
✎
16:46
|
(3) тогда ошибка в строке:
Если Метаданные.Документы.Содержит(ОбъектМетаданных) Тогда
текст ошибки: {Форма.Форма(41)}: Ошибка при вызове метода контекста (Содержит): Несоответствие типов (параметр номер '1')
Если Метаданные.Документы.Содержит(ОбъектМетаданных) Тогда
по причине:
Несоответствие типов (параметр номер '1')
|
|
5
es3000
21.11.14
✎
16:50
|
(4)+
эта ошибка возникает для того объекта, у которого в реквизит записано число
|
|
6
Жан Пердежон
21.11.14
✎
16:52
|
(4) ппц, ты код сам пишешь или из интернетов по кусочка копируешь?
Метаданные.НайтиПоТипу(ТипЗначения);
задайся вопросом, что вернет когда ТипЗначение - для примитивных типов
|
|
7
ssh2QQ6
21.11.14
✎
16:54
|
(0)
ЭтоДокумент = Документы.ТипВсеСсылки().СодержитТип(ТипЗнч(МояНепонятноКакаяСсылка));
http://kb.mista.ru/article.php?id=5
|
|
8
es3000
21.11.14
✎
16:57
|
(6) не знаю что вернет, в СП не нашел
|
|
9
es3000
21.11.14
✎
16:57
|
(7) спасибо, сейчас попробую
|
|
10
es3000
21.11.14
✎
17:00
|
(7)+ сработало, спасибо
|
|