• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Unid Родителя В Новом Документе

  • Автор темы Автор темы Anatoly
  • Дата начала Дата начала
A

Anatoly

Есть необходимость в действии получить UNID родителя.
Пока документ новый - $REF еше нет, @InheritedDocumentUniqueID в формуле экшн возвращает UNID текущего документа.
Вариантов 2
1) В начале экшн сохранять документ и юзать $REF - не нравиться, не факт, что юзер не передумает вводить данный документ
2) Вычисляемое поле=@Text(@InheritedDocumentUniqueID) (пока так и сделал - Computed for display) и обращаться к нему.

Но есть ли вариант прямее? Как в еше несохраненном доке получить UNID родителя?
 
Как создается документ?
Что мешает нужный юнид записать в поле ещё ДО открытия формы?
 
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">не обратил...</div></div><div class="sp-body"><div class="sp-content">
@InheritedDocumentUniqueID в формуле экшн возвращает UNID текущего документа
А свойство наследовать поля включено на форме?

Syntax

@InheritedDocumentUniqueID

Usage

This function works in a document being created with a form with field values inherited from the selected document.

In documents that do not inherit, @InheritedDocumentUniqueID returns the same value as @DocumentUniqueID.

Не обратил внимания сразу... Вероятно, что эта функция не работает корректно в действиях.
Вариант работы со значением поля вполне достойный. Причем значение надо вычислять в поле ComputedWhenComposed, а в других полях использовать его значение, т.к. эта функция работает корректно лишь при создании документа. Если поле сделать CFD, то оно будет некорректно расчитано для сохраненного документа.
 
@InheritedDocumentUniqueID возращает UNID "документа-родителя". При использовании в коде кнопки на форме, им, похоже, считается родитель кнопки - открытый через форму документ.
Поле сделал CFD, потому как нет в нем никакого смысла после сохранения дока.

У меня только 1 вопрос: и поле, и кнопка - объекты на форме. Так почему родителем кнопки на форме считается открытый док, а для поля на форме возвращается родитель открытого дока?
 
@InheritedDocumentUniqueID возращает UNID "документа-родителя". При использовании в коде кнопки на форме, им, похоже, считается родитель кнопки - открытый через форму документ.
Поле сделал CFD, потому как нет в нем никакого смысла после сохранения дока.

У меня только 1 вопрос: и поле, и кнопка - объекты на форме. Так почему родителем кнопки на форме считается открытый док, а для поля на форме возвращается родитель открытого дока?

Вы наверное у формы забыли установить свойство: Тип создаваемого документа - Responce, скорее всего по умолчанию стоит тип Document.
 
Anatoly
Если кнопка создания "ответа" на формулах, то

Код:
tm := @DocumentUniqueID 
@Command([Compose];"Response");
@UpdateFormulaContext;
FIELD ParUNID := tm;

phantom76 - ага, тоже так думаю
 
Вы наверное у формы забыли установить свойство: Тип создаваемого документа - Responce, скорее всего по умолчанию стоит тип Document
phantom76 - ага, тоже так думаю

phantom76
Morpheus
срамота :) читайте справку!
Я уже выше в спойлере писал цитату об нужном свойстве:
Syntax
@InheritedDocumentUniqueID
Usage
This function works in a document being created with a form with field values inherited from the selected document.
In documents that do not inherit, @InheritedDocumentUniqueID returns the same value as @DocumentUniqueID.
От типа не зависит.
В действиях не работает ((
 
Я ответы создаю только скриптом. На формулах были несколько случаев, когда документ забывал становиться ответным. Так что ну эти формулы.
 
Medevic ,
а... как бы ниче писать на формуле и не надо - тут уже тип документа в полном ходу.
 
:)
Так, еще раз:
- документ наследник (тип Responce, не забыл)
- пока не сохранил, к полю $REF обращаться нет смысла
- @InheritedDocumentUniqueID в фомулах полей нового(!) документа возвращает UNID родителя - все чОтко.
В действиях тоже работает, но возвращает UNID родителя кнопки - текущего документа.

Без расчетного поля DocID=@InheritedDocumentUniqueID, в новом доке никак не обойтись...
 
:)
Так, еще раз:
- документ наследник (тип Responce, не забыл)
- пока не сохранил, к полю $REF обращаться нет смысла
- @InheritedDocumentUniqueID в фомулах полей нового(!) документа возвращает UNID родителя - все чОтко.
В действиях тоже работает, но возвращает UNID родителя кнопки - текущего документа.

Без расчетного поля DocID=@InheritedDocumentUniqueID, в новом доке никак не обойтись...
Создавай документ скриптом. Поле $REF доступно сразу.

Добавлено:
Medevic ,
а... как бы ниче писать на формуле и не надо - тут уже тип документа в полном ходу.
Как же не надо? А документ создать?
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab