Имя: Пароль:
1C
1С v8
Проверка на тип значения
0 narayanan
 
06.11.12
11:35
Проверяю ссылку на тип СправочникСсылка ДоговорыКонтрагентов, подскажите как правильно проверять чтобы отсеивать все остальные типы, кроме этого. Делаю так, но это не совсем правильно.
Попытка
Если (ТипЗнч(Данные.Ссылка)) = Тип("СправочникСсылка.ДоговорыКонтрагентов") Тогда
Стр=ТабЗнач.Добавить();
Стр.Объект =  Данные.Ссылка;
КонецЕсли;
Исключение
КонецПопытки;
1 Wobland
 
06.11.12
11:35
почему не совсем правильно?
2 Wobland
 
06.11.12
11:36
ах, да, попытка ни к чему. если только у тебя справочник ДоговорыКонтрагентов отсутствует
3 yuch
 
06.11.12
11:36
Все правильно.
4 narayanan
 
06.11.12
11:37
Там просто может быть тип например РегистрСведений.КонтактнаяИнаформация, а он мне не нужен.
5 zulu_mix
 
06.11.12
11:37
+2 первые скобки еще убрать можно
6 narayanan
 
06.11.12
11:37
Значит использование ПопыткаИсключение не считается плохим тоном?
7 Godofsin
 
06.11.12
11:38
(4) ну и?
8 Wobland
 
06.11.12
11:38
(4) если не нужен, тогда в если не  попадёшь. конец если
9 Wobland
 
06.11.12
11:38
(6) ТабЗнач в общем-то тоже
10 zulu_mix
 
06.11.12
11:38
Если ТипЗнч(Данные.Ссылка) = Тип("СправочникСсылка.ДоговорыКонтрагентов") Тогда
Стр=ТабЗнач.Добавить();
Стр.Объект =  Данные.Ссылка;
КонецЕсли;

еще можно сразу выбрать только договоры. например запросом.
11 Wobland
 
06.11.12
11:39
+(9) считается
12 narayanan
 
06.11.12
11:40
(8) У меня на если вылетает так как если в Данные передается РегистрСведений, то у него соответственно отсутствует поле Данные.Ссылка и на этом месте вылетает в исключение
13 Classic
 
06.11.12
11:41
(6)
ну обойди попытку
14 Classic
 
06.11.12
11:41
(12)
Тип у "Данные" какой? СправочникОбъект?
15 zulu_mix
 
06.11.12
11:42
(12) как формируются Данные? если запросом - перепиши запрос так, чтобы выбирались только договоры
16 narayanan
 
06.11.12
11:44
(14)(15)План обмена выбирает измененные объекты, в которых Справочник договора и регистр сведений значения свойств объектов
17 Classic
 
06.11.12
11:45
(16)
Тип у переменной Данные какой?
СправочникСсылка или СправочникОбъект. Зачем ты пишешь Данные.Ссылка?
Убери .Ссылка и попытку
18 zulu_mix
 
06.11.12
11:47
(16) посмотри чему будет равно ТипЗнч(Данные)
19 narayanan
 
06.11.12
11:48
(17)(18)Данные = ВыборкаИзменений.Получить();
там регистр и справочник
20 Classic
 
06.11.12
11:48
(19)
Ты издеваешься?
Можешь ответить на конкретный вопрос?
Какой тип у Данные? Когда они справочник
21 zulu_mix
 
06.11.12
11:48
Сообщить(ТипЗнч(Данные)) что выводит?
22 Classic
 
06.11.12
11:49
А, понял. Данные - это выборка из запроса. Так в каком поле регистр валяется, тоже ссылка? Тогда убирай попытку нафиг
23 narayanan
 
06.11.12
11:50
(20)СправочникОбект.ДоговорыКонтрагентов
24 Classic
 
06.11.12
11:51
(23)
О!
Тогда меняй ТипЗнч(Данные.Ссылка) = тип("Справочник.Ссылка") на ТипЗнач(Данные) = Тип("СправочникОбъект.")
25 Classic
 
06.11.12
11:51
И убирай попытку
26 narayanan
 
06.11.12
11:52
(22) у регистра отстутсвтует ссылка, есть ЭтотОБъект, Отбор, ОбменДАнными,Записывать,Ljgjkybntkmyst cdjqcndf
27 narayanan
 
06.11.12
11:52
(24) gjhj,e.!
28 narayanan
 
06.11.12
11:53
(24) попробую!
29 narayanan
 
06.11.12
11:56
(24) Работает, спасибо