Автор: PavelT100 6:05:2008, 14:28
LN 7.0.3
В результате каких-то глюков пропал документ. У него были дочерние. Они в базе остались. Вручную восстановили этот документ, но теперь у него, естесственно, другой UNID. Как лучше всего восстановить теперь связи с дочерними документами ?
Можно ли скриптом менять $REF у дочерних документов, корректно ли это будет ?
Автор: Morpheus 6:05:2008, 14:32
PavelT100
можно, это всего лиш текстовое поле
а взять эти доки можно просто наядя ( NotesDatabase.Search ) документы с нужным унидом в поле REF
Автор: Sandr 6:05:2008, 15:11
найти документы скриптом и сделать их респонсами к другому через мейкреспонс.
реф - это не просто текстовое поле...
Автор: PavelT100 6:05:2008, 15:13
Цитата(Morpheus @ 6:05:2008, 16:32 )

PavelT100
можно, это всего лиш текстовое поле
а взять эти доки можно просто наядя ( NotesDatabase.Search ) документы с нужным унидом в поле REF
Поиск документов у меня пока проблем не вызывает.
А вот мои эксперименты показывают, что это увы не текстовое поле, в свойствах документа на типе поля $REF написано Response.
После того как я пишу примерно так
CODE
....
Set item = doc.ReplaceItemValue( "$REF", "F95820C40:F84E7C3C-NC3257441:002D1E17" )
Call doc.Save( True, True )
.....
это поле действительно становится текстовым, что видимо, не то что я хочу на самом деле и естественно связи между доекментами не возникает, во вью не видно этого документа как дочернего. Можно как то это побороть ?
Цитата(Sandr @ 6:05:2008, 17:11 )

найти документы скриптом и сделать их респонсами к другому через мейкреспонс.
реф - это не просто текстовое поле...
А спасибо, сейчас и попробую.
Автор: Morpheus 6:05:2008, 15:18
Цитата(Sandr @ 6:05:2008 - 17:11)

реф - это не просто текстовое поле...
вижу, был неправ
Автор: Kee_Keekkenen 6:05:2008, 16:27
как вариант, можно поменять юнид родителя..
Автор: Medevic 7:05:2008, 05:01
Ручной метод: скопировать документы в буфер обмена, поставить курсор в представлении на нужном документе(родителе) и вставить.
Автор: Omh 7:05:2008, 06:19
Ну или всех найти и сделать .MakeResponse(NewParent)
Автор: PavelT100 7:05:2008, 06:51
Цитата(Kee_Keekkenen @ 6:05:2008, 18:27 )

как вариант, можно поменять юнид родителя..
А как это можно сделать ?
Автор: Constantin A Chervonenko 9:05:2008, 16:20
Цитата(Morpheus @ 6:05:2008, 17:32 )

PavelT100
можно, это всего лиш текстовое поле
Это не ПРОСТО текстовое поле, тип у него другой. Текстовую ссылку можно юзать в формулах типа @GetDocField($REF; "fieldName"), но в UI она работать не будет
Цитата(PavelT100 @ 6:05:2008, 17:28 )

Можно ли скриптом менять $REF у дочерних документов, корректно ли это будет ?
Можно. Есть такой метод doc.MakeResponse parent
Но можно зайти и с другой стороны: восстановить "родителя" с заданным UNID-ом!
О.. Опоздал