ОБСУЖДЕНИЕ

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

33 ответов 17,3 тыс.
AI-выжимка обсуждения скоро

Краткие тезисы обсуждения со ссылками на ключевые ответы появятся здесь.

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

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

Удалить поле $REF почему-то не получается.
 
Всё же надо удалить $REF и сохранить документ.
 
кстати, а на что влияет в случае разрушения родительской связи респонсовость самой формы бывшего респонса? не стоит ли и форму поменять на main тип?
 
А других способов нет?

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

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

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

Что такое Form Type не равная Document я уже и забыл.
 
Omh
Нашёл про $RefOptions на этом же форуме
link removed
OKEN Может в FAQ положить?
 
Я сам не помню, где это нашёл.
Но штука рульная. :newconfus:
 
OKEN Может в FAQ положить?
думаю, эту тему можно и в FAQ, я вот сама название поля помнила примерно, так как встречала в коде на прошлой работе (вот тогда знала).
Я еще посмотрю в КБ, если есть подходящая тема-помещу туда, если нет-была мысль сделать в FAQ разделе темку вроде мини-FAQ (после того, как народ начал обсмактывать по кругу свойство IsOnServer, всерьез задумалась о подобном)
 
Что такое 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..
 
А если есть формы, по которым планируется создание как парентов, так и респонсов?
 
Вот после вышеуказанного VladSh интересно узнать насчет выделенного в цитате, кто сталкивался - таки ругается? /* ссылка из темы, которую приводили выше */
$refOptions забивает свойство формы Type и позволяет сохранять респонсные документы по форме с тайп Document и наоборот
Разместите cwd-поле $refOptions с формулой @If(@IsResponseDoc; "1"; "0")
в форме документа Подразделения (только не в подформе) - иначе при интерфейсном сохранении ответные документы станут главными (если тип формы - Document) или нотес будет ругаться при сохранении главных документов (если тип формы - Response)
 
А если есть формы, по которым планируется создание как парентов, так и респонсов?
В том-то вся и прелесть, что работает абсолютно для любых типов! Только в форме обязательно должно стоять Response и док создавать CreateDocument. Все лаги при пересохранении от UI-функционала, т.е. от создания документа с помощью Compose.
У меня для простых доков (справочники и т.п.) в форме установлено Document и эти доки я создаю с помощью Compose, а для сложных (где есть возможность "ответности") в форме установлено Response и док создаю CreateDocument, всё равно при создании более-менее сложных доков туда приходится прописывать какие-то поля. При уходе от Compose минуем ещё гору возможных ошибок + в новом доке сразу же доступен айтем Form, UniversaliD уже есть, к Source.Document можно обращаться уже на QO - плюсы налицо..
 
В том-то вся и прелесть, что работает абсолютно для любых типов! Только в форме обязательно должно стоять 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 и в доке не сохраняется/память не занимает.
 
Source.IsNewDoc = False, насколько я помню, поправь
Насколько я понял, предлагаемый VladSh алгоритм:
Код:
...
set doc = db.CreateDocument
...
call ws.EditDocument(True, doc)
...
Сам иногда так делаю, и мой опыт подсказывает, что в данном случае перед первым сохранением QuerySave покажет Source.IsNewDoc = False, а Source.Document.IsNewNote = True.

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

Статистика тем

Создано
FixeR,
Последний ответ от
VladSh,
Ответы
33
Просмотры
17 287