Имя: Пароль:
1C
1С v8
Определить тип объекта имея только его уникальный идентификатор
0 SeiOkami
 
14.08.13
13:27
Здравия всем!
Можно ли такое сделать без цикла по всем справочникам, документам и т.д. ?
1 Naumov
 
14.08.13
13:28
нет
2 Maxus43
 
14.08.13
13:28
и с циклом не факт что получится, т.е. не гарантированно
3 SeiOkami
 
14.08.13
13:31
Вот в такие моменты я тоже "Ненавижу 1С" =(
4 Maxus43
 
14.08.13
13:32
(3) для однозначной идентификации объектов БД не надо использовать ГУИД, он не для этого. Ссылку юзай
5 Ненавижу 1С
 
гуру
14.08.13
13:32
(3) это от непонимания, что такое UUID
он то может жить и вне 1С
6 SeiOkami
 
14.08.13
13:34
(4), в смысле "Ссылку юзай" ?
7 Maxus43
 
14.08.13
13:34
(6) всмысле "Ссылка" сожержит информацию о типе + гуид. сам гуид такой информации не содержит
8 Defender aka LINN
 
14.08.13
13:38
(6) Потому что ссылка - это ИД объекта + ИД типа объекта
9 Maxus43
 
14.08.13
13:41
16:b9cd001e372d291911dd349402ffa611 - ссылка
02ffa611-3494-11dd-b9cd-001e372d2919 - её гуид
10 SeiOkami
 
14.08.13
13:43
(9).
А как ссылку строкой выразить, чтобы в коде получать объект?
Попробовал ЗначениеВСтрокуВнутр. Работает, но у меня ссылка такая:
{"#",539b4eb5-fc45-485d-94e5-5b7e1ddc8195,138:91b9e6f3a2b3485e43270648e1137e44}

Есть ещё вариант? с ссылкой как у тебя (чтобы не такая ужасающая =) )
11 Рэйв
 
14.08.13
13:44
(0)ты же УИД откуда то получаешь. Скорее всего из ссылки. А по ней определить тип проще простого
12 Defender aka LINN
 
14.08.13
13:45
(10) Чтобы получить объект, надо выгружать объект.
13 Maxus43
 
14.08.13
13:46
138:91b9e6f3a2b3485e43270648e1137e44 - вот оно и есть ссылка из (10), вырежи
14 Maxus43
 
14.08.13
13:47
задачу лучше объясни, а то какое-то отвлечённое всё... где ты кроме 1с хочешь использовать это вот? ибо если это внутри 1с - смысл вобще теряется
15 Fragster
 
модератор
14.08.13
13:50
Запись = Новый ЗаписьXML;
Запись.УстановитьСтроку();
ЗаписатьXML(Запись, Справочники.Валюты.Рубль);
Ст = Запись.Закрыть();
красота: <CatalogRef.Валюты>e970306c-b594-4026-9a90-d737a42141ab</CatalogRef.Валюты>
16 Fragster
 
модератор
14.08.13
13:50
а по сабжу - можно хоть каждого вида создать объекты с одинаковым уникальным идентификатором, и ничего за это не будет...
17 SeiOkami
 
14.08.13
13:52
(12), не верно выразился. Имею ввиду получить ссылку на объект в базе по строковому "идентификатору" этой ссылки
(13), вырезал, но как теперь из этой строки получить ссылку обратно?
18 Maxus43
 
14.08.13
14:00
(17) чтобы по строковому - тебе надо строку формировать типа как в (15)
19 Maxus43
 
14.08.13
14:02
суть задачи не раскрыл... зачем по строковому получать? вот в 10 тебе как раз и строковая, её обратно и преобразуй, без вырезания кусков, целиком
20 Maxus43
 
14.08.13
14:03
*вот в (10)
21 SeiOkami
 
14.08.13
14:18
Ок, жаль что не вариант по УИ получить тип.

Всем спасибо =)
22 МихаилМ
 
14.08.13
14:28