Убрать привязку документ-родитель - документ-ответ

  • Автор темы FixeR
  • Дата начала
F

FixeR

#1
Есть два документа, один является ответом на другой.
Можно как нибудь эту связь разрушить?
Т.е. нужно чтобы документ-ответ перестал быть ответом.

Поменять родителя можно через MakeResponse, но это не подходит.
Нужно чтобы родителя у документа не было совсем.

Удалить поле $REF почему-то не получается.
 

TIA

:-)
Lotus team
15.05.2009
790
3
#2
Всё же надо удалить $REF и сохранить документ.
 
K

Klido

#3
кстати, а на что влияет в случае разрушения родительской связи респонсовость самой формы бывшего респонса? не стоит ли и форму поменять на main тип?
 
F

FixeR

#4
А других способов нет?

П.С. проблему уже решил, но всё же хочется узнать
 

Omh

Lotus team
04.07.2007
2 210
1
#6
а на что влияет в случае разрушения родительской связи респонсовость самой формы бывшего респонса?
Ну я уже давненько ставлю на формы поле CFD поле $RefOptions с формулой
Код:
@If(@IsAvailable($REF); "1"; "")
, которое позволяет игнорировать респонсовость формы: т.е. пересохраннётый документ-респонс с Form Type = Document не перестаёт быть респонсом. :newconfus:
 

nvyush

Lotus team
22.04.2009
2 317
0
#7
Ну я уже давненько ставлю на формы поле CFD поле $RefOptions с формулой @If(@IsAvailable($REF); "1"; ""), которое позволяет игнорировать респонсовость формы: т.е. пересохраннётый документ-респонс с Form Type = Document не перестаёт быть респонсом. :)
Переведи, плз :newconfus:
 

Omh

Lotus team
04.07.2007
2 210
1
#9
Ну если у нас есть документ (сделаный респонсом методом MakeReponse, например) на форме, у которой Form Type = Document,
то потом, при пересохранении через UI, документ теряет поле $REF и перестаёт быть респонсом.

С этим полем, я могу строить иерархии из документов с Form Type = Document без страха, что при пересохранении что-то сломается.
Т.е. у меня у всех форм в базе Form Type = Document.
Но при этом так же присутсвуюет многоуровневые иерархии. :newconfus:

Что такое Form Type не равная Document я уже и забыл.
 

Omh

Lotus team
04.07.2007
2 210
1
#11
Я сам не помню, где это нашёл.
Но штука рульная. :newconfus:
 

hosm

* so what *
18.05.2009
2 442
6
#12
думаю, эту тему можно и в FAQ, я вот сама название поля помнила примерно, так как встречала в коде на прошлой работе (вот тогда знала).
Я еще посмотрю в КБ, если есть подходящая тема-помещу туда, если нет-была мысль сделать в FAQ разделе темку вроде мини-FAQ (после того, как народ начал обсмактывать по кругу свойство IsOnServer, всерьез задумалась о подобном)
 

VladSh

начинающий
Lotus team
11.12.2009
1 277
6
#13
Что такое Form Type не равная Document я уже и забыл.
А я забыл, что такое Form Type РАВНАЯ Document :)

Ну если у нас есть документ (сделаный респонсом методом MakeReponse, например) на форме, у которой Form Type = Document,
то потом, при пересохранении через UI, документ теряет поле $REF и перестаёт быть респонсом.

С этим полем, я могу строить иерархии из документов с Form Type = Document без страха, что при пересохранении что-то сломается.
Т.е. у меня у всех форм в базе Form Type = Document.
Но при этом так же присутсвуюет многоуровневые иерархии. :O_0:
Всё проще даже без поля $RefOptions.
Формы, по которым планируется создание ответов делаются типом Response, доки создаются методом CreateDocument - никаких проблем с пересохранением в UI, "отцеплением" и "прикреплением" по новой, и никаких лишних полей типа $RefOptions..
 

Omh

Lotus team
04.07.2007
2 210
1
#14
А если есть формы, по которым планируется создание как парентов, так и респонсов?
 

hosm

* so what *
18.05.2009
2 442
6
#15
Вот после вышеуказанного VladSh интересно узнать насчет выделенного в цитате, кто сталкивался - таки ругается? /* ссылка из темы, которую приводили выше */
$refOptions забивает свойство формы Type и позволяет сохранять респонсные документы по форме с тайп Document и наоборот
Разместите cwd-поле $refOptions с формулой @If(@IsResponseDoc; "1"; "0")
в форме документа Подразделения (только не в подформе) - иначе при интерфейсном сохранении ответные документы станут главными (если тип формы - Document) или нотес будет ругаться при сохранении главных документов (если тип формы - Response)
 

VladSh

начинающий
Lotus team
11.12.2009
1 277
6
#16
А если есть формы, по которым планируется создание как парентов, так и респонсов?
В том-то вся и прелесть, что работает абсолютно для любых типов! Только в форме обязательно должно стоять Response и док создавать CreateDocument. Все лаги при пересохранении от UI-функционала, т.е. от создания документа с помощью Compose.
У меня для простых доков (справочники и т.п.) в форме установлено Document и эти доки я создаю с помощью Compose, а для сложных (где есть возможность "ответности") в форме установлено Response и док создаю CreateDocument, всё равно при создании более-менее сложных доков туда приходится прописывать какие-то поля. При уходе от Compose минуем ещё гору возможных ошибок + в новом доке сразу же доступен айтем Form, UniversaliD уже есть, к Source.Document можно обращаться уже на QO - плюсы налицо..
 

nvyush

Lotus team
22.04.2009
2 317
0
#17
В том-то вся и прелесть, что работает абсолютно для любых типов! Только в форме обязательно должно стоять Response и док создавать CreateDocument. Все лаги при пересохранении от UI-функционала, т.е. от создания документа с помощью Compose.
У меня для простых доков (справочники и т.п.) в форме установлено Document и эти доки я создаю с помощью Compose, а для сложных (где есть возможность "ответности") в форме установлено Response и док создаю CreateDocument, всё равно при создании более-менее сложных доков туда приходится прописывать какие-то поля. При уходе от Compose минуем ещё гору возможных ошибок + в новом доке сразу же доступен айтем Form, UniversaliD уже есть, к Source.Document можно обращаться уже на QO - плюсы налицо..
Только нужно помнить, что в данном случае в QuerySave будет Source.IsNewDoc = [strike]True[/strike] False, соответственно проверять нужно Source.Document.IsNewNote

Кстати, не вижу проблем/противопоказаний использования $RefOptions — оно всё равно CFD и в доке не сохраняется/память не занимает.
 

nvyush

Lotus team
22.04.2009
2 317
0
#20
Source.IsNewDoc = False, насколько я помню, поправь
Насколько я понял, предлагаемый VladSh алгоритм:
Код:
...
set doc = db.CreateDocument
...
call ws.EditDocument(True, doc)
...
Сам иногда так делаю, и мой опыт подсказывает, что в данном случае перед первым сохранением QuerySave покажет Source.IsNewDoc = False, а Source.Document.IsNewNote = True.

OKEN Спасибо, что-то я стормозил, действительно наборот.