Имя: Пароль:
1C
 
Ссылка. Справочник или Документ
0 8603kn
 
28.06.11
12:09
Как проверить ссылку, является ли она справочником или документом
1 mzelensky
 
28.06.11
12:10
(0)

Встроенные функции языка (Script functions)
Тип (Type)
Синтаксис:
Тип(<Имя типа>)
Параметры:
<Имя типа> (обязательный)
Тип: Строка. Имя получаемого типа.
Возвращаемое значение:
Тип: Тип. Полученный тип значения.
Описание:
Получает тип по его строковому имени.
Пример:
Если ТипЗнч(ТекОбъект) = Тип("СправочникСсылка.Номенклатура") Тогда
   ...
КонецЕсли;
2 mzelensky
 
28.06.11
12:11
(0) если не знаешь ссылка на какой именно справочни или документ ссылта, то можно по вот этому "ТипЗнч(ТекОбъект)" поиск дать на вхождение "СправочникСсылка." - если найдет, значит справочник :)
3 butterbean
 
28.06.11
12:12
Метаданные.Справочники.Содержит(Ссылка.Метаданные())
4 Maxus43
 
28.06.11
12:14
Если 8.2 то (3), иначе ТипЗнч
5 Либерал
 
28.06.11
12:17
ТипВсессылки()??
6 8603kn
 
28.06.11
12:18
(3) и (4) спасибо
7 Defender aka LINN
 
28.06.11
12:19
(4) Ну-ну.
Содержит() тормозит безбожно, через типы в разы быстрее
8 8603kn
 
28.06.11
12:19
(7) через какие типы, у меня 8.2
9 Ненавижу 1С
 
гуру
28.06.11
12:21
+(5)
10 Maxus43
 
28.06.11
12:23
(7) Вам ингридиенты нужны или эффект?)
11 8603kn
 
28.06.11
12:24
(5) Да, тоже спасибо
12 butterbean
 
28.06.11
12:24
вот так быстрее: Лев(Ссылка.Метаданные().ПолноеИмя(),10)="Справочник"
13 8603kn
 
28.06.11
12:25
(12) так не работает в 8.2
14 8603kn
 
28.06.11
12:26
(12) сори, работет
15 Ненавижу 1С
 
гуру
28.06.11
12:26
(12) методически неверное решение
16 butterbean
 
28.06.11
12:26
(15) какой кошмар
17 Ненавижу 1С
 
гуру
28.06.11
12:27
(16) почему?
18 butterbean
 
28.06.11
12:28
(17) ну это типа сарказм
19 Ненавижу 1С
 
гуру
28.06.11
12:29
(18) жги еще ))
20 Либерал
 
28.06.11
12:32
(16) аха. например, у раруса в автосервисе такие как (12) и подобные перлы сплошь и рядом, задрючился на 8.2 перетаскивать всю эту радость.
21 Maxus43
 
28.06.11
12:35
на кой вобще на 8.2 поменяли результат ТипЗнч и Тип? неудобно же стало
22 Defender aka LINN
 
28.06.11
12:36
(8) И чо? ©
В 8.2 типы отменили?
23 butterbean
 
28.06.11
12:37
(21) на что поменяли?
24 Ненавижу 1С
 
гуру
28.06.11
12:37
(21) чтоб знали как неправильно писать, это урок
25 Defender aka LINN
 
28.06.11
12:39
(21) Никто их не менял, ты чего курил?
26 Maxus43
 
28.06.11
12:40
(23) 8.1 при ТипЗнч возвращало ДокументСсылкаПриходныйОрдер и т.д., 8.2 возвращает Синоним документа - "Приходный ордер"
27 butterbean
 
28.06.11
12:41
(26) ого, я даже и не заметил
28 Ненавижу 1С
 
гуру
28.06.11
12:42
(25) он имел ввиду строковое представление типов ))
(26) оно возвращает тип, тот же самый, изменился строковое представление типа
29 guitar_player
 
28.06.11
12:42
СтрЧислоВхождений(Ссылка.Метаданные.ПолноеИмя(), "Справочник") > 0
30 Maxus43
 
28.06.11
12:43
ага, раньше после ТипЗнч можно было сразу определить документ или справочник
31 Defender aka LINN
 
28.06.11
12:45
(29) Расстрелять.
(30) Я и раньше и сейчас это делаю одним и тем же кодом. ЧЯДНТ?
32 Maxus43
 
28.06.11
12:46
(31) просвяти, не томи уже заблудшие души. как по феншую
33 Defender aka LINN
 
28.06.11
12:47
(32) в (5) же все написано.
Документы.ТипВсеСсылки().СодержитТип(ТипЗнч(Ссылка))
34 Axel2009
 
28.06.11
12:51
Лев(XMLТипЗнч(Справочники.Номенклатура.НайтиПоКоду("0")).ИмяТипа, 10) = "CatalogRef"
35 Defender aka LINN
 
28.06.11
12:53
(34) Премия "Проктолог месяца" уже практически ваша :)
36 Живой Ископаемый
 
28.06.11
13:17
2(34) РазложитьСтрокуВМассивПодстрок(XMLТипЗнч(Справочники.Номенклатура.ПустаяССылка()).ИмяТипа,".")[0]

Ведь в конце концов может и не быть элемента с кодом 0
37 Axel2009
 
28.06.11
13:26
(36) пустая ссылка будет.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший