![]() |
![]() |
![]() |
|
Как определить ссылочный это тип данных или нет? | ☑ | ||
---|---|---|---|---|
0
Алгоритм
23.07.07
✎
16:43
|
???
|
|||
1
asady
23.07.07
✎
16:44
|
(0)
1.Метод Рупора 2. Если Найти(Строка(ТипЗнч(Ссылка)),"сылка")>0 Тогда 3.... |
|||
2
xenus
23.07.07
✎
16:44
|
если знаешь, какого типа эта ссылка, то может так:
Если ТипЗнч(ТекОбъект) = Тип("СправочникСсылка.Номенклатура") Тогда ... КонецЕсли; |
|||
3
xenus
23.07.07
✎
16:45
|
ну да, (1) более универсальнее..
|
|||
4
Алгоритм
23.07.07
✎
16:46
|
1. а шо за метод Рупора?
|
|||
5
asady
23.07.07
✎
16:47
|
(1)+
3. Если Найти(Ссылка.Метаданные().ПолноеИмя(),"Ссылка")>0 Тогда |
|||
6
asady
23.07.07
✎
16:48
|
Попытка
ссылкассылки=Ссылка.Ссылка; исключение ЭтоСсылка=Истина; КонецПопытки; |
|||
7
Гений 1С
гуру
23.07.07
✎
16:50
|
(0) Можно перебрать все ссылки. ;-) Всего-то 6 менеджеров.
Чтото вроде Если Документ.ТипВсеСсылки.содержит(типЗнч(Тип(Х)) |
|||
8
Гений 1С
гуру
23.07.07
✎
16:50
|
(6) Не катит, эта конструкция работает и для ДокументОБъект
|
|||
9
Гений 1С
гуру
23.07.07
✎
16:51
|
(1) искать не сылка, а "Ссылка."
|
|||
10
Гений 1С
гуру
23.07.07
✎
16:51
|
(9) так точнее
|
|||
11
Алгоритм
23.07.07
✎
16:51
|
6. пасиба
|
|||
12
Алгоритм
23.07.07
✎
16:53
|
10. пасиба
|
|||
13
asady
23.07.07
✎
16:53
|
(9) а хрень редьки ....
это я на регистр заложился (первая буква "С" или "с") - мало-ли что :)))) тиха украинская ночь - но сало лучше перепрятать! (с) укр.нар.мудрость. |
|||
14
PR
23.07.07
✎
17:05
|
Прикольно :))
А если я создам справочник "Ссылка" например? А если регистр сведений? А регистр накопления? :))) |
|||
15
asady
23.07.07
✎
17:08
|
(14) ты это брось - так никто не делает :))) Я бы за такие названия по рукам!
а если серьезно, то в строке по полному имени надо искать "ссылку" до точки и будет более корректно. |
|||
16
PR
23.07.07
✎
17:09
|
(15) А еще корректнее делать не так, а так, как делается в типовых в функции "ЗначениеНеЗаполнено()" :))
|
|||
17
asady
23.07.07
✎
17:12
|
(16) это как?
вот она будь она неладна: Функция ЗначениеНеЗаполнено(Значение) Экспорт Результат = Ложь; ТипЗначения = ТипЗнч(Значение); // Сначала примитивные типы Если Значение = Неопределено Тогда Результат = Истина; ИначеЕсли Значение = NULL Тогда Результат = Истина; ИначеЕсли ТипЗначения = Тип("Строка") Тогда Если СокрЛП(Значение) = "" Тогда Результат = Истина; КонецЕсли; ИначеЕсли ТипЗначения = Тип("Число") Тогда Если Значение = 0 Тогда Результат = Истина; КонецЕсли; ИначеЕсли ТипЗначения = Тип("Дата") Тогда Если Значение = Дата('00010101') Тогда Результат = Истина; КонецЕсли; ИначеЕсли ТипЗначения = Тип("Булево") Тогда Результат = Ложь; // Булево будем считать не пустым //Отдельное определение, так как конструкторов данного типа не существует ИначеЕсли ТипЗначения = Тип("РежимПроведенияДокумента") Тогда Если Значение = РежимПроведенияДокумента.Неоперативный или Значение = РежимПроведенияДокумента.Оперативный тогда Результат = Ложь; КонецЕсли; // Для остальных будем считать значение пустым, если оно равно // дефолтному значению своего типа Иначе Если Значение = Новый(ТипЗначения) Тогда Результат = Истина; КонецЕсли; КонецЕсли; Возврат Результат; КонецФункции // ЗначениеНеЗаполнено() что здесь можно взять за образец? |
|||
18
ymv
23.07.07
✎
17:17
|
Например, применительно к справочнику можно так:
Справочники.ТипВсеСсылки().СодержитТип(ТипЗнч("Ссылка")) |
|||
19
asady
23.07.07
✎
17:26
|
(18) еще вариант:
имяТипа=XMLТипЗнч(Ссылка).ИмяТипа; Если Прав(Лев(имяТипа,Найти(имяТипа,".")-1,3)="Ref" тогда Сообщить("Это точно ссылка: зуб даю!!!"); Конецесли; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |