![]() |
![]() |
![]() |
|
Как восстановить элемент справочника? | ☑ | ||
---|---|---|---|---|
0
Галахад
гуру
28.01.13
✎
17:10
|
Имею такое:
<Объект не найден> (32:9f750015170f692c11de0886a33cbc68) Получил строку ГУИД: a33cbc68-0886-11de-9f75-0015170f692c UUID = Новый УникальныйИдентификатор(ГУИД); НоваяСсылка = Справочники.Номенклатура.ПолучитьСсылку(UUID); СпрНом = НоваяСсылка.ПолучитьОбъект(); СпрНом = Справочники. Номенклатура.СоздатьЭлемент(); СпрНом.УстановитьСсылкуНового(НоваяСсылка); UUID = Новый УникальныйИдентификатор(ГУИД); НоваяСсылка = Справочники.Номенклатура.ПолучитьСсылку(UUID); СпрНом = НоваяСсылка.ПолучитьОбъект(); СпрНом = Справочники. Номенклатура.СоздатьЭлемент(); СпрНом.УстановитьСсылкуНового(НоваяСсылка); СпрНом.Наименование = Наименование; СпрНом.ОбменДанными.Загрузка = Истина; СпрНом.Записать(); Получил новый элемент справочника с ГУИД: a33cbc68-0886-11de-9f75-0015170f692c Но <Объект не найден> (32:9f750015170f692c11de0886a33cbc68) никуда не изчез. Ято я сделал не так? |
|||
1
DrShad
28.01.13
✎
17:11
|
СпрНом = НоваяСсылка.ПолучитьОбъект();
СпрНом = Справочники. Номенклатура.СоздатьЭлемент(); это что за адский отжиг!? |
|||
2
DrShad
28.01.13
✎
17:12
|
ипать колотить - срочно зжечь! весь код в топку!
|
|||
3
Aprobator
28.01.13
✎
17:13
|
тему стереть срочно. Чтоб не дай бог кто таким заразился )
|
|||
4
Kreont
28.01.13
✎
17:16
|
Запусти с ТИИ с созданием недостающих, сделает то же самое :)
Идея вроде понятна, ну создашь элемент, а наименование, код и т.п. др.реквизиты откуда брать будешь? |
|||
5
Галахад
гуру
28.01.13
✎
17:17
|
Да уж чего-то я продублировал код. Вот так вобщем:
UUID = Новый УникальныйИдентификатор(ГУИД); НоваяСсылка = Справочники.Номенклатура.ПолучитьСсылку(UUID); СпрНом = НоваяСсылка.ПолучитьОбъект(); // Если объект не существует - создадим его Если СпрНом = Неопределено Тогда СпрНом = Справочники. Номенклатура.СоздатьЭлемент(); СпрНом.УстановитьСсылкуНового(НоваяСсылка); СпрНом.Наименование = Наименование; СпрНом.ОбменДанными.Загрузка = Истина; СпрНом.Записать(); КонецЕсли; |
|||
6
Infsams654
28.01.13
✎
17:17
|
(3) не.., в быдлокод срочно
|
|||
7
Infsams654
28.01.13
✎
17:18
|
(5) это чё?
|
|||
8
Галахад
гуру
28.01.13
✎
17:19
|
(7) Буквы. Слова.
|
|||
9
Infsams654
28.01.13
✎
17:21
|
(8) для чего СпрНом.УстановитьСсылкуНового(НоваяСсылка) ?
|
|||
10
Aprobator
28.01.13
✎
17:22
|
(9) чел пытается на старую ссылку данные закатать.
|
|||
11
Infsams654
28.01.13
✎
17:23
|
(10) это понятно, только для чего ? Он так любит эту ссылку ?
|
|||
12
Maxus43
28.01.13
✎
17:24
|
(0) не ожидал я от тебя такого хм... кода...
|
|||
13
Галахад
гуру
28.01.13
✎
17:24
|
(11) Да, мне нужна именно та самая ссылка.
|
|||
14
Aprobator
28.01.13
✎
17:24
|
(11) есть битая ссылка в базе, надо сделать ее не битой.
|
|||
15
Галахад
гуру
28.01.13
✎
17:26
|
Да. Я уже понял, что всех разочаровал.
Покажите уже ПРАВИЛЬНЫЙ код. |
|||
16
DrShad
28.01.13
✎
17:27
|
(15) см (4)
|
|||
17
Галахад
гуру
28.01.13
✎
17:29
|
(16) Я хочу код.
|
|||
18
DrShad
28.01.13
✎
17:29
|
(17) а он тебя не хочет :)))
|
|||
19
Aprobator
28.01.13
✎
17:30
|
не дуйся - сегодня у многих похмельник ). Хотя,не совсем понятно, почем (5) не срабатывает? ИМХО, проблема с ГУИДОМ.
|
|||
20
samozvanec
28.01.13
✎
17:30
|
(17) код правильный, гуид не тот
|
|||
21
Галахад
гуру
28.01.13
✎
17:30
|
(18) Будем пилить...
|
|||
22
Maxus43
28.01.13
✎
17:31
|
(17) вон сам писал же - см (5), только условие не сработает
|
|||
23
samozvanec
28.01.13
✎
17:31
|
"32:9f750015170f692c11de0886a33cbc68" это ж ссылка, не?
|
|||
24
Infsams654
28.01.13
✎
17:31
|
(14) а, т.е. нужно в связанных объектах восстановить ? Ну я бы сделал так: создал новый, поискал у кого <Объект не найден> и подставил им ссылку нового
|
|||
25
Галахад
гуру
28.01.13
✎
17:32
|
ГУИД получаю так:
ГУИДУдОбъктаСтр = СтрЗаменить(ГУИДУдОбъкта,"<Объект не найден> (",""); ГУИДУдОбъктаСтр = СтрЗаменить(ГУИДУдОбъктаСтр,")",""); ГУИДУдОбъктаСтр = СтрЗаменить(ГУИДУдОбъктаСтр,"0x",""); ГУИДУдОбъктаСтр = Сред(ГУИДУдОбъктаСтр, Найти(ГУИДУдОбъктаСтр,":")+1, СтрДлина(ГУИДУдОбъктаСтр)); ГУИД = Сред(ГУИДУдОбъктаСтр,25,8)+"-"+Сред(ГУИДУдОбъктаСтр,21,4)+"-"+Сред(ГУИДУдОбъктаСтр,17,4)+"-"+Сред(ГУИДУдОбъктаСтр,1,4)+"-"+Сред(ГУИДУдОбъктаСтр,5,12); ГУИДУдОбъктаСтр=ГУИД; |
|||
26
Aprobator
28.01.13
✎
17:32
|
(22) сработает.
|
|||
27
samozvanec
28.01.13
✎
17:34
|
вообще НоваяСсылка = ТвойДокумент.РеквизитВКоторомБитаяСсылка;
вот ее и устанавливай как ссылку нового |
|||
28
Галахад
гуру
28.01.13
✎
17:34
|
(22) Так создался же он. И ГУИД есть. Тот, что нужно.
Но блин <Объект не найден> никуда не исчезло... (24) А я чего делаю? |
|||
29
Aprobator
28.01.13
✎
17:34
|
(27) +100500. Дешево и сердито.
|
|||
30
samozvanec
28.01.13
✎
17:35
|
(25) херасе ты его перемешал... даже читать не хочу)
|
|||
31
Maxus43
28.01.13
✎
17:36
|
вкрайняк [<Объект не найден>].УникальныйИдентификатор();
а никак не (25) |
|||
32
samozvanec
28.01.13
✎
17:36
|
(25) откуда метода такая, кстати?)
|
|||
33
Maxus43
28.01.13
✎
17:36
|
(26) проверяй, СП говорит что Неопределено не вернёт никогда. только Ссылку
|
|||
34
Maxus43
28.01.13
✎
17:37
|
(32) это метода чтоб из скуля получать гуид нормальный например)
|
|||
35
samozvanec
28.01.13
✎
17:38
|
(33) СП говорит:
ПолучитьОбъект(); Возвращаемые значения: СправочникОбъект; Неопределено; |
|||
36
hhhh
28.01.13
✎
17:39
|
(28) ты просто из самого поля где Объект не найден возьми гуид. Чего ты паришься с этими строками?
|
|||
37
Aprobator
28.01.13
✎
17:40
|
(33) освежи версию СП ). Под 8.2 про неопределено точно есть.
|
|||
38
Maxus43
28.01.13
✎
17:40
|
(35) пля, согласен. я криво прочитал, про это говорил: Справочники.Номенклатура.ПолучитьСсылку(UUID);
|
|||
39
Maxus43
28.01.13
✎
17:40
|
(37) каюсь)
|
|||
40
Галахад
гуру
28.01.13
✎
17:43
|
Чо-та не понял. Попробовал еще раз все работает.
Всем спасибо. Код рабочий. Просто протупил с проверкой. |
|||
41
Aprobator
28.01.13
✎
17:44
|
а я говорил - похмельник )
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |