Имя: Пароль:
1C
1С v8
Не меняется ссылка нового объекта на уже записанную
,
0 php5
 
18.11.12
11:20
Добрый день!

При заполнении еще не записанной карточки клиента добавляю ему подтверждающие документы (справочник подчиненный справочнику клиентов).

Устанавливаю для клиента ссылку нового:

ЭтотОбъект.УстановитьСсылкуНового(Справочники.Клиенты.ПолучитьСсылку());
НоваяСсылка = ЭтотОбъект.ПолучитьСсылкуНового();

В подтверждающем документа ссылка устанавливается такая же т.е. перед записью клиента в отладчике Клиент ЭтотОбъект.ПолучитьСсылкуНового() = ПодтверждающийДокумент.Владелец.

Почему-то когда происходит запись клиента в базу в подтверждающем документе не меняется ссылка на клиента, она остается в виде <Объект не найден> (8060:91f2005056ab059711e231505e9f2598)????
1 php5
 
18.11.12
11:21
Платформа 8.1
2 gae
 
18.11.12
11:52
Непонятно, пишешь:
>>в подтверждающем документа ссылка устанавливается такая же

То есть, считаем, что нужная ссылка установилась.
А потом:
>>когда происходит запись клиента в базу в подтверждающем документе не меняется ссылка... остается в виде...

Что на что не меняется? Если "не меняется", то должна значит остаться та что "установилась"
3 gae
 
18.11.12
11:56
Или ты имеешь в виду, что представление ссылки все еще выглядит как "Объект не найден", несмотря на то, что объект, на который эта ссылка, уже записан?
А после записи то самого подтверждающего документа все нормально? он ссылается на нужного клиента?
4 php5
 
18.11.12
12:00
(2) (3)

1. У меня еще не записанный клиент
2. Я создаю подтверждающий документ для него в подчиненном справочнике.
3. Ссылка на подтв. документ устанавливается такая же как и для еще не записанного клиента ("Объект не найден").
4. Записываю клиента, НО в созданном подтвержд. документе (п. 2) ссылка остается в видет ("Объект не найден") и не меняется на ту, что получил клиент после записи в базе.
5 gae
 
18.11.12
12:06
(4) 5. Записываем подтверждающий документ, в нем Владелец остается правильный? тот самый клиент?
6 php5
 
18.11.12
12:08
(5) Я интерактивно создаю и записываю подтвержд. документ через форму элемента. В этот элемент записывается владелец = еще не записанному клиенту.
7 gae
 
18.11.12
12:10
Ссылка и представление ссылки это разные вещи. Ссылка - это ГУИД. А представление ссылки, которое ты видишь на экране - это "Объект не найден", если не удалось найти в базе запись по ГУИДу, или строковое представление объекта, если удалось найти.
Тебе хочется добиться обновления представления ссылки.
Скорее всего просто получение представления хромает, попробуй программно вызвать обновление вида формы документа, может представление обновится.
8 php5
 
18.11.12
12:11
Клиента в базу записал, а в подтвер. документах так и осталась ссылка на владельца = <Объект не найден> (8060:91f2005056ab059711e2315729779068). Ссылка на владельца должна измениться на вид типа <Иванов Иван Иванович>, но она почему-то не меняется.
9 gae
 
18.11.12
12:13
(8) не ссылка должна измениться, а должно обновиться представление ссылки.
10 gae
 
18.11.12
12:15
вызови у формы программно Обновить()
11 php5
 
18.11.12
12:18
(10) Вызвал, всеравно ссылка на владельца лежит в виде "Объект не найден" + проверил гуды. Гуид записанного клиента и владельца подтвержд. документа совпадают.
12 Лефмихалыч
 
18.11.12
12:20
(0) закрой-открой форму подтврждающего документа и ссылка обновится
13 php5
 
18.11.12
12:27
(12) Не помогает, уже перезаписывал форму обновлял, переоткрывал. Ничего не меняется...
14 php5
 
18.11.12
12:28
Может быть на уровне структуры метаданных что-то не то?
15 gae
 
18.11.12
12:38
(11) так если документ записать, форму закрыть и открыть то опять видим "Объект не найден"?
16 Лефмихалыч
 
18.11.12
12:38
(14) что-то не то у тебя в коде - инфа 100%
на той неделе собственноручно такуюже почти задачу решал, всё работает
17 php5
 
18.11.12
12:46
(16) так у меня в другой базе аналогичная связка - все ОК! и алгоритм такой же...
18 php5
 
18.11.12
12:47
(15) Да, именно так...
19 gae
 
18.11.12
12:48
(18) а если вообще после этого из базы выйти, зайти и открыть документ?
такое может быть, только если ссылка не та записалась, ГУИД-ы не совпадают, т.е. реально битая.
20 php5
 
18.11.12
12:51
(19) Пробовал перезаходить, ничего не меняется, так и остается "Объект не найден".

Странно то, что гуиды совпадают клиент и подтвержд. документа.
21 Vladal
 
18.11.12
12:52
(18) Странно, конечно.
На предыдущей работе у меня одной из первых задач была восстановить ссылки после непосредственного удаления документов самими бушками. Помог бэкап и обработка переноса данных по XML, запрет на непосредственное удаление и удаление без контроля ссылок а также раздача лечебных пилюль.
22 hhhh
 
18.11.12
13:20
(30) вообще-то сам факт, что два раза ПолучитьСсылкуНового() похоже на бред. Ведь надо один раз получать новую ссылку, а потом ее использовать.
23 gae
 
18.11.12
13:24
(22)
ПолучитьСсылкуНового()
Возвращаемое значение:
Тип: СправочникСсылка.
Описание:
Позволяет для нового (созданного и еще не записанного) объекта получить ранее установленное методом УстановитьСсылкуНового значение ссылки.
24 gae
 
18.11.12
13:25
(20) а как ты сравниваешь гуиды?
25 php5
 
18.11.12
16:47
(24) Ссылка.уникальныйИдентификатор()
26 Aleksey
 
18.11.12
16:56
В типовых раньше при записи 1С сама переназначала ссылки, проверь по коду
27 gae
 
18.11.12
17:37
(25) ну прям не знаю, и типы значений совпадают?
28 hhhh
 
18.11.12
19:21
(25) а подтверждающий документ как записывешь?
29 php5
 
18.11.12
19:37
(28) интерактивно, в справочнике подтвержд. документов вообще код весь комментировал в модуле формы и объекта - не помогло.
30 php5
 
18.11.12
19:38
На данный момент вышел из ситуации, переназначая кривых владельцев после записи клиента на нормальных...
Закон Брукера: Даже маленькая практика стоит большой теории.