Имя: Пароль:
1C
1С v8
Поиск ссылок на удаленный объект
0 Flyd-s
 
17.12.12
19:15
Можно как-нибудь из регистра сведений вытащить записи по пропавшему документу? Есть внутренний идентификатор объекта из старой копии
1 alex-pro
 
17.12.12
19:19
(0) (0)можно.
Внутренний идентификатор и в рабочей должен остаться)
Вида <Объект не найден....>
2 Flyd-s
 
17.12.12
19:23
(1), из регистра сведений в котором несколько сотен тысяч записей как-то проблематично визуально отыскать нужную запись
3 zladenuw
 
17.12.12
19:24
а отбор с условием содержит <Объект не
4 Chikko
 
17.12.12
19:26
Имеется ввиду "объект не найден"?
По битой ссылке ПолучитьОбъект() вернет Неопределено, если не ошибаюсь.
Значит, делаешь выборку и обход, внутри условие ПолучитьОбъект()=Неопределено.
5 DrShad
 
17.12.12
19:26
(3) садись двойка!
проверяй на Регистратор.Номер ЕСТЬ NULL
6 DrShad
 
17.12.12
19:27
(4) тоже садись двойка!
7 Chikko
 
17.12.12
19:28
Доктор, как же так? :) Ладно, Ваш вариант побыстрее будет, не сообразил.
8 Chikko
 
17.12.12
19:30
ТС, а как выберешь нужные - есть вариант создать новый док. регистратор и УстановитьСсылкуНового().
9 Flyd-s
 
17.12.12
19:43
(5), так не работает. Он мне справочники выдает в массовом порядке
10 DrShad
 
17.12.12
19:44
что ты гонишь?
11 Chikko
 
17.12.12
19:45
(9) Справочники?? Давай запрос=)
12 EvgeniuXP
 
17.12.12
19:58
(4) не сможешь получить объект, вызовет исключение.
13 EvgeniuXP
 
17.12.12
19:59
(9) см. (12) и (4) - в попытку только заключи.
14 Chikko
 
17.12.12
20:01
(12) Да прям.
Синтаксис:

ПолучитьОбъект()
Возвращаемое значение:

Тип: ДокументОбъект; Неопределено.
Неопределено - объекта в базе нет (например, при обмене данными или после непосредственного удаления объекта, на который есть ссылки).
15 DrShad
 
17.12.12
20:03
так где запрос, который ТС выдал справочники?
16 Flyd-s
 
17.12.12
20:25
(15),было так:

ВЫБРАТЬ
   ВерсииОбъектов.Объект,
   ВерсииОбъектов.АвторВерсии,
   ВерсииОбъектов.ДатаВерсии
ИЗ
   РегистрСведений.ВерсииОбъектов КАК ВерсииОбъектов
ГДЕ
   ВерсииОбъектов.Объект.Номер ЕСТЬ NULL

Исправил на

ВЫБРАТЬ
   ВерсииОбъектов.Объект,
   ВерсииОбъектов.АвторВерсии,
   ВерсииОбъектов.ДатаВерсии
ИЗ
   РегистрСведений.ВерсииОбъектов КАК ВерсииОбъектов
ГДЕ
   ВерсииОбъектов.Объект.Номер ЕСТЬ NULL
   И ВерсииОбъектов.Объект.Код ЕСТЬ NULL
--------------
Что-то сервер основательно задумался, видимо думает, что я над ним издеваюсь
17 Chikko
 
17.12.12
20:27
Оу фак версии объектов... -_- А зачем?
18 Галахад
 
гуру
17.12.12
20:32
(16) Думаю, что он правильно думает...
19 Flyd-s
 
17.12.12
20:32
(17), а с чего вообще начать поиски пропавшего документа?
20 Галахад
 
гуру
17.12.12
20:35
(19) А нафига его вообще искать? Что бы удалить?
21 Flyd-s
 
17.12.12
20:37
(20), да интересно как, куда и зачем он мог удалиться
22 Всеяд
 
17.12.12
20:43
Внутреннее соединение с таблицей нужного документа по двум условиям:

1) ТабДокумента.Ссылка = Регистр.Объект
2) ТабДокумента.Дата = Null

Либо как предлагал DrShad, только с Выразить(). Хотя это будет чутка медленнее.
23 sda553
 
17.12.12
20:44
ДокСсылка = Документы.МойВидДокумента.ПолучитьСсылку(Новый УникальныйИдентификатор("мой-уникальный-идентификатор-из-другой базы"));
И потом можешь с этой ссылкой хоть что делать, хоть отборы, хоть в запросы совать и т.д.
24 Всеяд
 
17.12.12
20:45
(23) Я так понимаю, человек хочет именно в регистр версий посмотреть, чтобы понять, что там было...
25 Всеяд
 
17.12.12
20:45
(23) + а вообще ты прав. Получаешь ссылку и делаешь запрос к регистру. Быстрее и правильнее, чем всё остальное.
26 Flyd-s
 
17.12.12
21:09
Пусто(( Что-то ерунда какая-то получается
27 Flyd-s
 
17.12.12
22:06
А нельзя как-нибудь вытащить информацию из журнала регистрации?
28 yuch
 
17.12.12
22:11
Тю. Если есть идентификатор, то НашаСсылка = Документы.МойДокумент.ПолучитьСсылку(Новый УникальныйИдентификатор(МойИдентификатор))

А далее по ссылке ищем.
29 Flyd-s
 
17.12.12
22:29
(28), нет ничего. Бесследно исчез.
30 Classic
 
17.12.12
22:33
ВерсииОбъектов.Объект.Ссылка ЕСТЬ NULL
31 GANR
 
17.12.12
22:35
(0) Запросто. Обходишь метаданные и ищешь поля с соответствующим типом с отбором по этой ссылке.
32 Flyd-s
 
17.12.12
22:41
(31),
ДокСсылка = Документы.ПринятиеКУчетуОС.ПолучитьСсылку(Новый УникальныйИдентификатор(ИД));
МассивСсылок = Новый Массив;
МассивСсылок.Добавить(ДокСсылка);
ТабСсылок = НайтиПоСсылкам(МассивСсылок);
--------
Нет ничего. Видимо это был не глюк базы, а кто-то его специально удалил.
33 Classic
 
17.12.12
22:44
(32)
Кстати. Объект - ведущее измерение?
34 Flyd-s
 
17.12.12
22:50
(33), да
35 Flyd-s
 
17.12.12
23:44
Усё, нашел)))))))
36 Flyd-s
 
17.12.12
23:45
Сегодня мне главбух мозг выносила по-поводу пропажи, завтра моя очередь
37 Classic
 
17.12.12
23:58
(35)
Нашел? После удаления ведущего измерения?
Странно
38 Flyd-s
 
18.12.12
00:06
(37), нет. Мне помог журнал регистрации узнать когда и кто удалил документы
39 Classic
 
18.12.12
00:12
(38)
Дык с журнала обычно все начинают :)
А по РСу запись удалиться, если ты док удалишь. Искать нечего будет
40 DrShad
 
18.12.12
00:31
(39) че ты гонишь? при непосредственном удалении будет именно такая ситуевина как в сабже
41 Classic
 
18.12.12
01:53
(40)
Та ты шо. С ведущим реквизитом?
42 Sammo
 
18.12.12
04:38
(40) Ведущее измерение