![]() |
![]() |
|
8.2 Найти по уникальному идентификатору объект | ☑ | ||
---|---|---|---|---|
0
YF
30.06.11
✎
12:07
|
Есть идентификатор вида : 209:971a0018f34e121411e03c1de5b80387
Хочу найти что за объект в базе ему соответствует. Как? |
|||
1
Amiralnar
30.06.11
✎
12:09
|
А где ты его берешь?
|
|||
2
Axel2009
30.06.11
✎
12:09
|
шерстить каждый объект отдельно
|
|||
3
Fragster
гуру
30.06.11
✎
12:10
|
209 - идентификатор типа, остальное - перемиксованный объект УникальныйИдентификатор
|
|||
4
YF
30.06.11
✎
12:10
|
(1) Да после обмена делаю ТИИ оно говорит:
Проверка логической целостности. Последовательность.Взаиморасчеты <Объект не найден> (209:971a0018f34e121411e03c1de5b80387) Неверная ссылка на регистратор. |
|||
5
Рэйв
30.06.11
✎
12:10
|
НовыйGUID = Новый УникальныйИдентификатор(ТвойГуид);
СсылкаГУИД=Документы.ВидДок.ПолучитьСсылку(НовыйGUID); |
|||
6
Рэйв
30.06.11
✎
12:11
|
(4)Если <Объект не найден> , то с чего ты взял, что ты его найдешь если база не нашла?
|
|||
7
YF
30.06.11
✎
12:11
|
(5) щас попробую
|
|||
8
YF
30.06.11
✎
12:12
|
(6) Ну я же на копии, у меня есть и оригинал, где обмен не запускал ...
|
|||
9
Fragster
гуру
30.06.11
✎
12:12
|
(5) читай ветку
(4) блииин. сделай запрос по регистру "Взаиморасчеты" примерно такой Выбрать Взаиморасчеты.Регистратор Из РегистрНакопления.Взаиморасчеты Где Взаиморасчеты.Регистратор.Номер Есть NULL получишь твою ссылку. потом по ней отбор набора записей и запись пустого набора |
|||
10
Fragster
гуру
30.06.11
✎
12:13
|
ну а вообще - после обмена - это нормально, если криво правила настроены, или не криво, но это заложено в логику
|
|||
11
Рэйв
30.06.11
✎
12:14
|
(9)<Объект не найден> <> NULL
|
|||
12
Рэйв
30.06.11
✎
12:14
|
+ Ссылка не пустая. Она битая
|
|||
13
YF
30.06.11
✎
12:15
|
(10) Самое прикольное, что это стандартный обмен БП 2.0 по организации. Там постоянно вылезают такие бяки
|
|||
14
Defender aka LINN
30.06.11
✎
12:16
|
Выбрать Регистратор Из Последовательность.Взаиморасчеты где Регистратор.Ссылка есть NULL
Но что ты в базе собрался искать, если проблема как раз в том, что в базе его нет? |
|||
15
Fragster
гуру
30.06.11
✎
12:16
|
(11) я там не зря написал ".Номер"
|
|||
16
Defender aka LINN
30.06.11
✎
12:18
|
(11) А не является ли ".Номер" неявным левым соединением?
Варианты ответа: 1) да, является. 2) нет, является. |
|||
17
Fragster
гуру
30.06.11
✎
12:19
|
(11) и кстати, да:
NULL <> NULL |
|||
18
SalavatUlaev
30.06.11
✎
12:20
|
раз объект не найден, то нет его нигде. Если база SQL, восстанавливай бекап, ищи в SQL таблицах средствами SQL, по таблице и поймешь что за объект
|
|||
19
luckyluke
30.06.11
✎
12:21
|
(18) в копии он может и оказаться, почему же нигде?
|
|||
20
Defender aka LINN
30.06.11
✎
12:22
|
(18) Ащета запрос из (9) дает тебе готовую ссылку. У которой даже и тип имеется. Для зачем что-то по таблицам SQL искать?
|
|||
21
YF
30.06.11
✎
12:23
|
+(19) В том и дело, что он где-то есть: либо в базе до обмена, либо в узле откуда обмен принимали ...
Вот и хочу найти что это было и почему объект удалился, а из последовательности не изьялся ... |
|||
22
YF
30.06.11
✎
12:24
|
(20) В запросе (9) обращаемся к регистру накопления, но ТИИ не нашла в нем ссылок на несуществующие объекты ...
|
|||
23
SalavatUlaev
30.06.11
✎
12:24
|
(20) Не увидел 4 сообщение. Думал вообще ничего не известно, кроме гуида
|
|||
24
Fragster
гуру
30.06.11
✎
12:25
|
(22) ну удали из последовательности
|
|||
25
Defender aka LINN
30.06.11
✎
12:41
|
(22) Ну, ять, в (14) Посмотри. БОЛЬШАЯ разница, ага...
|
|||
26
YF
30.06.11
✎
12:45
|
(25) Да разница-то небольшая, только что там в последовательности-то найдешь? Ну найдешь битые записи, а что за объект был все равно не известно ...
|
|||
27
Fragster
гуру
30.06.11
✎
12:53
|
ПЦ
|
|||
28
Defender aka LINN
30.06.11
✎
13:23
|
(26) рукалицо...
|
|||
29
Amiralnar
30.06.11
✎
13:30
|
(17) (NULL IS NULL) = TRUE
|
|||
30
Axel2009
30.06.11
✎
13:51
|
ТЗ = ПолучитьСтруктуруХраненияБазыДанных();
Для Каждого Строка Из ТЗ Цикл Если Не ЗначениеЗаполнено(Строка.ИмяТаблицы) Тогда Продолжить; КонецЕсли; ПозТочки = Найти(Строка.ИмяТаблицыХранения, "."); Если ПозТочки > 0 Тогда Продолжить; ИмяТаблицы = Лев(Строка.ИмяТаблицыХранения, ПозТочки - 1); КонецЕсли; ИтоговоеЧисло = ""; Для Сч = 1 По СтрДлина(Строка.ИмяТаблицыХранения) Цикл Символ = Сред(Строка.ИмяТаблицыХранения, Сч, 1); Если Найти("0123456789", Символ) > 0 Тогда ИтоговоеЧисло = ИтоговоеЧисло + Символ; КонецЕсли; КонецЦикла; Если ИтоговоеЧисло = "209" Тогда Сообщить(Строка.ИмяТаблицы); КонецЕсли; КонецЦикла; |
|||
31
Defender aka LINN
30.06.11
✎
13:53
|
(30) А что *это* делает?
|
|||
32
Axel2009
30.06.11
✎
13:58
|
(30) поможет узнать имя объекта по типу 209..
|
|||
33
Axel2009
30.06.11
✎
14:01
|
(31) это запустить в базе где отсутствует
(30)+ потом в базе источнике запустить Поз = Найти(СтрокаОбъекта, ":"); Тип = Лев(СтрокаОбъекта, Поз - 1); СтрокаУИД = Сред(СтрокаОбъекта, Поз + 1); СтрокаУИД = Сред(СтрокаУИД, 24, 8) + "-" + Сред(СтрокаУИД, 20, 4) + "-" + Сред(СтрокаУИД, 16, 4) + "-" + Сред(СтрокаУИД, 1, 4) + "-" + Сред(СтрокаУИД, 5, 12); Справочники.Номенклатура.ПолучитьСсылку(Новый УникальныйИдентификатор(СтрокаУИД)); справочники.номенклатура. заменить на имятипа что покажет в обработке |
|||
34
Defender aka LINN
30.06.11
✎
14:01
|
(32) см (14)
|
|||
35
Axel2009
30.06.11
✎
14:03
|
(34) и что это покажет? что "объект не найден <209:971a0018f34e121411e03c1de5b80387>"?? а как понять что за объект конкретно?
|
|||
36
Fragster
гуру
30.06.11
✎
14:06
|
(35) ссылка будет на конкретный объект метаданных
|
|||
37
Defender aka LINN
30.06.11
✎
14:06
|
(35) рукалицо...
|
|||
38
Fragster
гуру
30.06.11
✎
14:06
|
хоть и отсутствующий
|
|||
39
Axel2009
30.06.11
✎
14:13
|
(37) был не прав.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |