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

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

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

Ошибка "Недопустимый универсальный код"

  • Автор темы Автор темы Guest
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
G

Guest

Помогите пожалуйста,
пишу такой код:

Set uidoc = ws.CurrentDocument
Set doc = uidoc.Document
Set pdoc = db.GetDocumentByUNID(doc.ParentDocumentUNID) - и вот на этой строке выдается сообщение об ошибке "Недопустимый универсальный код"
Подскажите может кто знает почему так происходит?

А код этот находится в событии QuerySave()
 
Set uidoc = ws.CurrentDocument
Set doc = uidoc.Document
Set pdoc = db.GetDocumentByUNID(doc.NoteID)
попробуй так
 
ParentDocumentUNID это точно UNID? Поле текстовое ?
 
Документ точно является респонсом
 
Проблема решилась переносом кода в событие QueryClose()
 
Для: Светлана1342
Проверте в деббагере что есть doc.ParentDocumentUNID - что он показывает, да кстати ф-ция db.GetDocumentByUNID работает со СТРОКОЙ
 
<!--QuoteBegin-Светлана1342+1:02:2007, 13:58 -->
<span class="vbquote">(Светлана1342 @ 1:02:2007, 13:58 )</span><!--QuoteEBegin-->Помогите пожалуйста,
пишу такой код:

Set uidoc = ws.CurrentDocument
Set doc = uidoc.Document
Set pdoc = db.GetDocumentByUNID(doc.ParentDocumentUNID) - и вот на этой строке выдается сообщение об ошибке "Недопустимый универсальный код"
Подскажите может кто знает почему так происходит?
[snapback]54688" rel="nofollow" target="_blank[/snapback]​
[/quote]

Такая ошибка вылезает когда документ по Unid-у не находится. Чтобы пользователя не смущать, можно поставить такое:

On error resume next
Set pdoc = db.GetDocumentByUNID(doc.ParentDocumentUNID)
on error goto ErrorHandler
if pdoc is nothing then .....
 
Народ, в чем загвостка у меня?

То же Set CopyDoc = dbCS.GetDocumentByUNID(IDstr) выдает ошибку, что недопустимый универсальный код!

Агент выполняет следующее:
рабочая база -db
через getDatabase получаю вторую базу dbCS

в обеихх базах ищу получаю колекцию документов
потом из каждой коллекции беру нужные поля и запихиваю их в массив, получаю два массива, одно из значений массива - UNID

тоесть у меня получился массив для db и для dbCS
сравниваю массивы и в резульиате сравнения получаю массив со значениями UNID для dbCS.

По значениям массива пытаюсь получить документ через Set CopyDoc = dbCS.GetDocumentByUNID(IDstr) (чтобы в дальнейшем этот документ удалить), но выдает ошибку!!
при чем в db все нормально открывается!

Не могу понять в чем дело!
 
если ЮНИД не является таковым - то и ошибка будет
ЮНИД и НОТЕИД - суть разные вещи
строка д.б. буквенно-цифровая (без всяких разделителей)
ежели ЮНИД получен из вновь-соданного дока и его не сохранили - получить из базы не получится
 
Использую UNID, из давно созданных документов, которые толькочто юзал в коллекции! Сделал обработку на ошибки,получается так, что те документы, которые я хочу удалить уже не существуют или повреждены!
 
db.GetDocumentByUNID
если такого унида в базе нету то будет ошибка
унида может не быть в базе так как это новый документ
или вообще чужой и к этой базе отношения не имеет
 
Проблема решилась переносом кода в событие QueryClose()
А код этот находится в событии QuerySave()
судя по всему ошибка вылазила только на вновь созданных дочерних доках.
ответный документ становится таковым только после сохранения, соотв., в первый раз в событии QuerySave документ не является дочерним, и не имеет свойства ParentDocumentUNID.

если надо получить унид родительского дока до сохранения, то надо на форме ответного документа сделать поле с формулой @Text(@InheritedDocumentUniqueID), и в коде QuerySave можно использовать значение этого поля.
кроме того, у формы должно быть отмечено свойство Formulas inherit values from selected document, иначе поле будет содержать унид текущего, а не родительского дока.
тип формы может быть любой doc/resp.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

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