Имя: Пароль:
1C
 
Получить id и получить объект по id
0 matreya
 
18.09.04
17:14
Может кому приходится... Я сделал для того, чтобы юзать 1с прямыми запросами.

//Возвращает идентификатор (id) объекта, как он хранится в таблицах 1с
//obj - ТекущийЭлемент(), ТекущийДокумент()
function _GetId(obj) export
    return _idToStr(Left(Right(ValueToStringInternal(obj),15),13));
endfunction  

//Возвращает ссылку на объект типа элемент справочника или документ
//MetaObj - ссылка на объект типа Метаданные.Справочник[Документ](Вид)
//или полученный через СоздатьОбъект("Справочник[Документ].Вид")
//id - значение идентификатора элемента(документа), как он хранится в таблицах 1с
function _GetObj(MetaObj,id) export      
   MetaObj=ValueToStringInternal(MetaObj);
   return ValueFromStringInternal(StrReplace(MetaObj,Right(MetaObj,15),""+_StrToId(id)+chr(34)+chr(125)));
endfunction
1 Волшебник
 
18.09.04
17:26
(0) id объекта можно использовать для идентификации объектов 7.7, аналогично понятию "Ссылка" в 8.0. Мы так делаем при переходе с конфигурации с 7.7 на 8.0 для обмена данными между ними.

Если конфигурации не входят в УРБД, а например, обмениваются через обработку, то id там могут повторяться, в отличие от 8.0, где "ссылки" уникальны для всех объектов независимо от времени и пространства.
2 F427
 
18.09.04
18:25
Вообще то наглость Светы, публикующей под своим именем выложенную в инет года три назад функцию - это фздец... (Да простят меня комоды)..


(1)
"то id там могут повторяться,...."

БРЕД ПОЛНЫЙ... В любой БД все объекты, которыми она оперирует - обязаны иметь уникальный ИД...

P.S. и 7 и 8 ИД объектов ВСЕГДА уникальны... У меня на этом построена синхронизация справочников при переносах....
3 BorisG
 
18.09.04
18:30
(2) Он принял мое предложение ;-))
Зависание принтера HP LaserJet 5L (как я это поборол)
4 matreya
 
18.09.04
18:36
2. Пошел бы ты  ...  неудачник. Я функций, получающих объект не видел.
5 F427
 
18.09.04
19:03
(4) Хе-Хе... Ты просто не въехал во все прелести ИД...
Эта функция ОПИСАНА в документации...

P.S. и кусок из ИД ты обрезаешь зря... В обрезанном столько инфы об объекте... Просто завались...
6 F427
 
18.09.04
19:04
Так что, Света, читай ЖКК... прежде чем выкладывать нетленку...
К тому же чужую...
7 matreya
 
19.09.04
00:14
6. Нетленка - моя, хотя таких нетленок - куча. Это все равно что на СоздатьОбъект - авторство ставить. Я привел пример этих простых функций для тех, кому они могут пригодится, нисколько не претендуя на какую-ту уникальность (которой в данном случае просто не может быть). Что касается урезанности кода - то ,Pitusha, предложи свой вариант, возможно я позаимствую его.
8 matreya
 
19.09.04
00:20
+7. Не знаю, возможно кто-то выкладывает код для самоутверждения или иных целей. У меня целей в таком контексте нет. Я сам часто заимствую чужие эффективные решения и иногда выкладываю что-то и свое, что на мой взгляд может быть интересным другим.
9 skunk
 
19.09.04
11:05
даже здесь на форуме это выкладывалась пару раз
10 F427
 
19.09.04
14:00
Света, почитай все таки для начала ЖКК...
11 matreya
 
19.09.04
17:21
9. На форуме многое выкладывается по многу раз.
10. Питуша, что именно в ЖЖК надо почитать?
12 Йок
 
19.09.04
21:52
девочки, не ругайтесь
13 F427
 
19.09.04
21:56
А зачем говорить...
Ищущий - найдет
А ленивый останется тупым...
14 F427
 
19.09.04
21:57
Кстати, в ЖКК многие вопросы освещены крайне скудно и замутненно... По этому поводу - обратись в 1С...
15 matreya
 
19.09.04
23:38
14. В общем, лажанулся ты. Как и всегда, в очередной раз. Кстати, id объектов не уникальны только в пределах одного типа. Смотри таблицы, Питуша.
16 matreya
 
19.09.04
23:38
+15. В смысле уникальны в пределах одного типа.
17 Рупор абсурда
 
20.09.04
00:03
(15) Ты не прав ..., он не всегда лажается ...
18 F427
 
20.09.04
06:38
Мдя... Опять Света ...