• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

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

FixeR

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

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

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

TIA

Всё же надо удалить $REF и сохранить документ.
 
K

Klido

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

FixeR

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

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

Omh

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

nvyush

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

hosm

тут хорошую ссылку дали:
 
O

Omh

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

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

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

nvyush

Omh
Нашёл про $RefOptions на этом же форуме
link removed
OKEN Может в FAQ положить?
 
O

Omh

Я сам не помню, где это нашёл.
Но штука рульная. :newconfus:
 
H

hosm

OKEN Может в FAQ положить?
думаю, эту тему можно и в FAQ, я вот сама название поля помнила примерно, так как встречала в коде на прошлой работе (вот тогда знала).
Я еще посмотрю в КБ, если есть подходящая тема-помещу туда, если нет-была мысль сделать в FAQ разделе темку вроде мини-FAQ (после того, как народ начал обсмактывать по кругу свойство IsOnServer, всерьез задумалась о подобном)
 

VladSh

начинающий
Lotus Team
11.12.2009
1 784
157
BIT
57
Что такое 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..
 
O

Omh

А если есть формы, по которым планируется создание как парентов, так и респонсов?
 
H

hosm

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

VladSh

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

nvyush

В том-то вся и прелесть, что работает абсолютно для любых типов! Только в форме обязательно должно стоять 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 и в доке не сохраняется/память не занимает.
 
N

nvyush

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

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!