Имя: Пароль:
1C
 
v7: как узнать 32-значный код элемента справочника
0 DahaM
 
14.03.07
11:54
Дан Справочник A, реквизитом которого является справочник B, следовательно значением этого реквизита является какой-то элемент из В, а точнее его 32-значный код.
ВОПРОС : Как его узнать?
1 Лефмихалыч
 
14.03.07
11:56
(0) сам-то понял, что сказал?
2 Господин ПЖ
 
14.03.07
11:56
С каких пор это стало задачей?..
3 DahaM
 
14.03.07
11:57
Ну, помогите лучше, пожалуйста!!!
4 Terv
 
14.03.07
11:57
(3) в поиск "получение UID"
5 AeDen
 
14.03.07
11:58
Сообщить (в):)
6 DahaM
 
14.03.07
11:58
ДаДаДа, но как?
7 Rovan
 
гуру
14.03.07
12:01
(6) в поиск - см. по слову ГУИД
8 Конь в пальто
 
14.03.07
12:01
(6) во первых 36 значный...
во-вторых значениевстрокувнутр(твойэлемент), дальше сам разбиресся
9 Лефмихалыч
 
14.03.07
12:02
вы о чем все?
10 Конь в пальто
 
14.03.07
12:04
(9) айдишник хочет получить по-ходу
11 Terv
 
14.03.07
12:04
12 DahaM
 
14.03.07
12:04
ну, 36, если считать "-".
13 Конь в пальто
 
14.03.07
12:04
(8) + еще кури _strtoid() и  _idtostr()
14 Конь в пальто
 
14.03.07
12:05
(12) [0-9][a-z]
15 DahaM
 
14.03.07
12:07
что-то я не поняла...
16 Terv
 
14.03.07
12:07
(15) читай ссылку в (11)
17 Лефмихалыч
 
14.03.07
12:07
(all) секция личоль неправильная?
18 DahaM
 
14.03.07
12:08
Спр.Реквизит(Индекс).Вид
я получаю имя справочника, а как получить конкретный элемент?
19 Конь в пальто
 
14.03.07
12:09
теперь и я непонимать...
20 Terv
 
14.03.07
12:10
(18) омнистеть

Значение = Спр.<ИмяРеквзита>;

или

Значение = Спр.ПолучитьАтрибут(<ИмяРеквзита>);
21 Конь в пальто
 
14.03.07
12:10
эээээ.... это 8?
22 Terv
 
14.03.07
12:10
(18) девушка, и программирование... явно не ваше призвание.
23 Лефмихалыч
 
14.03.07
12:11
а откуда 32 и по некоторым данным 36 знаков?
24 Terv
 
14.03.07
12:12
кто ветку переименовал?
25 DahaM
 
14.03.07
12:12
нет 7
Значение = Спр.ПолучитьАтрибут(<ИмяРеквзита>);
если реквизит простой, напр, строка, число и тд
а если объект метаданных, можно получить имя Спр.Реквизит(Индекс).Вид
Вот!!
Но нужен-то элемент????
26 Terv
 
14.03.07
12:13
ей всего лишь .. нужно получить ссылку на элемент справочника Б ... хранящейся в реквизите элемента справочника Б.
27 Terv
 
14.03.07
12:14
(25) в реквизите и так уже храниться ссылка на нужный тебе элемент.
28 DahaM
 
14.03.07
12:14
ДА
29 Фалестра
 
14.03.07
12:14
Спр.Реквизит.Наименование (или Код - смотря что нужно)
30 Лефмихалыч
 
14.03.07
12:15
убейте меня об потолок, я ни чего не понимаю...
31 Terv
 
14.03.07
12:16
(30) да загон словила, притом полный
32 Фалестра
 
14.03.07
12:16
(30) да, про 32 или 36 знаков тоже непонятно :)
33 DahaM
 
14.03.07
12:17
Да, нет же, так не работает! ни Наименование, ни Код..
34 DahaM
 
14.03.07
12:17
00000000-0000-0000-0000-000000000000
35 Terv
 
14.03.07
12:17
(33) покажи код.... и скажи, что тебе надо вывести
36 DahaM
 
14.03.07
12:17
сколько знаков??
37 Конь в пальто
 
14.03.07
12:18
(34) эта ШТО?????????????
38 Истина
 
14.03.07
12:20
(37) Поле уникального идентификатора ИБ в файле конфигурации УРИБД после его обнуления.

Гыыы!!!
39 Фалестра
 
14.03.07
12:21
ага, я не поленилась и посчитала! там действительно 32 нуля (или буковок "о") и 4 тире %)))
Теперь угадываем, что это %)))
40 DahaM
 
14.03.07
12:21
Если   Спр.Реквизит(Индекс).Тип="Справочник" Тогда
ЗначениеРеквизита=надо получить quid элемента
иначе
ЗначениеРеквизита=obj.ПолучитьАтрибут(ИмяРеквизита);
КонецЕсли;
41 Истина
 
14.03.07
12:22
(40) Девушка, надо в учебнике про это читать. Объяснить это невозможно :)
42 Drx211
 
14.03.07
12:23
А что такое quid(может guid?), и самое главное - нафига он тебе, народ не совсем понимает - что тебе надо.
43 DahaM
 
14.03.07
12:23
не подскажите в каком??
44 DahaM
 
14.03.07
12:24
создаю XML документ, а в принципе какая разница зачем??
45 Terv
 
14.03.07
12:24
(40) я фигею ... где выборка?

Спр = СоздатьОбъект("Справочник");
Спр.ВыбратьЭлементы();
Пока Спр.ПолучитьЭлемент() = 1 Цикл
  Спр.ПолучитьАтрибут(ИмяРеквизита);
КонецЦикла;
46 DahaM
 
14.03.07
12:24
Да все это есть!!
47 Terv
 
14.03.07
12:25
(46) покажи
48 Истина
 
14.03.07
12:25
(43) Хотя бы в этом. А еще лучше в описании языка.
http://www.mista.ru/tutor_1c/index.htm
49 Drx211
 
14.03.07
12:25
(44) Короче, тебе нуже АТРИБУТ элемента справочника Б КОД, или внутренний 36-ричный идентификатор элемента справочника Б?
50 DahaM
 
14.03.07
12:27
Ну,Да
51 Terv
 
14.03.07
12:27
(50) что ну,да?
52 Drx211
 
14.03.07
12:28
%-) Что ну да?!
53 Drx211
 
14.03.07
12:28
(51) Прикалывается видать.
54 DahaM
 
14.03.07
12:28
ДАДАДА
55 Drx211
 
14.03.07
12:29
(54) А ты вопрос прочитала?
56 Terv
 
14.03.07
12:30
(55) чукча не читатель, чукча писатель.
57 DahaM
 
14.03.07
12:30
Мне нужен внутренний 36-ричный идентификатор элемента справочника Б
58 Rovan
 
гуру
14.03.07
12:30
прикольная ветка...... может в Юмор перенсти ? :-))
59 Drx211
 
14.03.07
12:30
Заметила там или - что предполагает как ответ, оду из альтернатив. Что есть "НУ ДА", остается загадкой.
60 Drx211
 
14.03.07
12:30
(58)+ ВО, само оно!
61 Terv
 
14.03.07
12:30
(57) ты ссылку в (11) прочитала?
62 Terv
 
14.03.07
12:31
(58) переноси
63 DahaM
 
14.03.07
12:31
Прочитала!!!!!!
64 DahaM
 
14.03.07
12:32
Нет, может все-таки хоть кто-нибудь скажет как это СДЕЛАТЬ!!!
65 Rovan
 
гуру
14.03.07
12:32
(50) см (11) :-))))
Внутренние идентификаторы объектов
Функция ПолучитьИД_Вариант1(Объект)
   Перем Стр;
   Стр=ЗначениеВСтрокуВнутр(Объект);
   СЗ=СоздатьОбъект("СписокЗначений");
   СЗ.ИзСтрокиСРазделителями(Сред(Стр,2,СтрДлина(Стр)-2));
   Возврат  СЗ.ПолучитьЗначение(СЗ.РазмерСписка());
КонецФункции
Функция ПолучитьИД_Вариант2(Объект)
   Перем Стр;
   СЗ=СоздатьОбъект("СписокЗначений");
   СЗ.ДобавитьЗначение("",Объект);
   СЗ.ПолучитьЗначение(1,Стр);
   Возврат Стр;
КонецФункции
Процедура Сформировать()                    
   // Пусть "Объект" - это реквизит формы типа "Справочник"
   Сообщить("Объект: "+Объект.ТекущийЭлемент());
   Сообщить("Вариант 1: "+ПолучитьИД_Вариант1(Объект.ТекущийЭлемент()));
   Сообщить("Вариант 2: "+ПолучитьИД_Вариант2(Объект.ТекущийЭлемент()));
КонецПроцедуры
66 Конь в пальто
 
14.03.07
12:32
(63) может вам лучше в HR-манагеры в КА податься?
там такие нужны...
67 Terv
 
14.03.07
12:33
(66) +1 , или в бухгалтера
68 Drx211
 
14.03.07
12:33
(57) Компонента Rainbow, объект RainbowService, метод - ЗначениеВСтрокуБД, дальше кури инструкцию.
69 igork1966
 
14.03.07
12:34
Следующий вопрос будет: А чего теперь с этим кодом делать?  ;-)
70 Terv
 
14.03.07
12:35
Если   Спр.Реквизит(Индекс).Тип="Справочник" Тогда
ЗначениеРеквизита=_IdToStr(ПолучитьИД_Вариант1(obj.ПолучитьАтрибут(ИмяРеквизита))));
//или
//ЗначениеРеквизита = ПолучитьИД_Вариант1(obj.ПолучитьАтрибут(ИмяРеквизита));
иначе
ЗначениеРеквизита=obj.ПолучитьАтрибут(ИмяРеквизита);
КонецЕсли;
71 DahaM
 
14.03.07
12:35
Нет, не будет!! Всем спасибо!! Можете в ЮМОР переносить!
По-моему, вопрос был вполне конкретно задан с самого начала!
72 Drx211
 
14.03.07
12:36
(69)+ вот я тоже так думаю, нафига он ей, говорит в XML записать, а зачем? Ну ладно, интересно - что из этого получится.
73 DahaM
 
14.03.07
12:36
СПАСИБО
74 Terv
 
14.03.07
12:36
(71) тебе на него конкретно ответили, в самом начале.
75 igork1966
 
14.03.07
12:36
(71) Ну получила ты этот код.... дальше че делать будешь?
76 Terv
 
14.03.07
12:38
(75) дальше ... будет спрашивать, как по значению ГУИДа, получить ссылку на элемент.
77 Конь в пальто
 
14.03.07
12:38
(71) да уж.. конкретней некуда
78 DahaM
 
14.03.07
12:39
Вот и попроси у ВАС после этого помощи....
79 Drx211
 
14.03.07
12:39
00000000-0000-0000-0000-000000000000 - убей меня ап стену, если 1С хранит в таком формате ссылки на элементы справочников. Ну максимум 9=6+3, но 32, это конечно круто, можно глобальную БД создавать :)!
80 Terv
 
14.03.07
12:39
(78) за ваши деньги, любой каприз...
81 Drx211
 
14.03.07
12:40
79+откуда такие данные?
82 DahaM
 
14.03.07
12:40
А ты посмотри!
83 Конь в пальто
 
14.03.07
12:41
(82) КУДА?????????
84 Terv
 
14.03.07
12:41
(81) ты еще слишком юн :))
85 Drx211
 
14.03.07
12:41
(82) Ты че, серьезно что ли? Я до сих пор верил в лучшее и думал прикалываешся!
86 DahaM
 
14.03.07
12:42
- <CatalogObject.НоменклатураСтарый>
 <Ref>D3ACF641-ECFC-4EF2-B778-1640A9F05E61</Ref>
 <IsFolder>true</IsFolder>
 <DeletionMark>false</DeletionMark>
 <Parent>00000000-0000-0000-0000-000000000000</Parent>
 <Code>25906</Code>
 <Description>E-port</Description>
 </CatalogObject.НоменклатураСтарый>
- <CatalogObject.НоменклатураСтарый>
 <Ref>DAEE24DF-E714-48C3-8E31-52B4B32CDEE1</Ref>
 <IsFolder>true</IsFolder>
 <DeletionMark>false</DeletionMark>
 <Parent>00000000-0000-0000-0000-000000000000</Parent>
 <Code>0561</Code>
 <Description>Авто (Каджай Р.)</Description>
 </CatalogObject.НоменклатураСтарый>
87 Drx211
 
14.03.07
12:42
Вообще что-то похожее это GUID базы и информационного пространства в УРБД, но чтоб элементы справочников!?!?!
88 Конь в пальто
 
14.03.07
12:43
УУУУУУУУУУУ
в юмор нафиг... однозначно!!!!
89 Terv
 
14.03.07
12:44
(86) БУГАГА .... а у тебя этот реквизит , у групп есть?
90 Drx211
 
14.03.07
12:44
А можно поинтересоваться какое отношение этот код имеет к 1С? Эт вообще что? Похоже на какой-то самопальный XML
91 DahaM
 
14.03.07
12:44
а мне надо было
<ИмяРеквизита> КодЭлемента</ИмяРеквизита> иВСЕ!!!
92 DahaM
 
14.03.07
12:45
я просто пример привела...
93 Terv
 
14.03.07
12:46
(91) девушка определитесь ... вам что нужно код или гуид ? :))
94 DahaM
 
14.03.07
12:46
ГУИД
95 Terv
 
14.03.07
12:47
(94) и в чем проблема? код вам дали как получить ГУИД элемента ... на вопрос, есть ли этот реквизит у групп вы так и не ответили
96 Drx211
 
14.03.07
12:48
(94) Так может ГУИД это реквизит, а не 1С-ое представление?
97 DahaM
 
14.03.07
12:49
да есть
98 Terv
 
14.03.07
12:50
развод?
99 DahaM
 
14.03.07
12:51
просто в 8 ГУИД можно легко получить, а в 7 не так-то просто...я создаю реквизит ГУИД, в котором и лежит это значение
100 Terv
 
14.03.07
12:52
(97) когда сможешь сформулировать вопрос, возвращайся ... а пока ф топку
101 Terv
 
14.03.07
12:54
(96) ты угадал
(99) как в 77 получить ГУИД тебе показано в ссылки (11), но в твоем случаи надо, так


Если   Спр.Реквизит(Индекс).Тип="Справочник" Тогда
ЗначениеРеквизита=obj.ПолучитьАтрибут(ИмяРеквизита).ПолучитьАтрибут(ИмяРеквизитаСГуидом);
иначе
ЗначениеРеквизита=obj.ПолучитьАтрибут(ИмяРеквизита);
КонецЕсли;