Isvalid в 7ке и 8ке

abbatik

Lotus team
20.10.2008
277
0
#1
Всем привет!

Тут столкнулся со странной проблемой.

Код в 7ке и 8ке работает по разному. В 7ке документ не проходит проверку If doc.IsValid And Not doc.IsDeleted Then, а в 8ке проходит :eek:oo:

doc получен из коллекции, коллекция из FTSearch.

Документ должен быть не видим пользователю, т.к. у него нет к нему доступа, соответственно в коллекции он с незаполненными полями.

Кто-нибудь знает, что с этим делать? PMR что-ли заводить? :)
 

hosm

* so what *
18.05.2009
2 442
6
#5
abbatik - проверяй на пустоту юнида. Так работает.
nvy соррь, я забыла и так и не проверила (
 

abbatik

Lotus team
20.10.2008
277
0
#6
Хм, вариант конечно..

но это же бага...

PMR все равно не помешает :eek:oo:

Спасибо за советы :)
 

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 233
18
#9
а чем не устраивает проверка на итем Form?
 

hosm

* so what *
18.05.2009
2 442
6
#13
abbatik
в топике писалось насчет IsValid, воркэраунды с проверкой на унид помогали.
А версия сервера и клиента 8-ка какая (поточнее) у Вас?
 

nvyush

Lotus team
22.04.2009
2 317
0
#14
Каким образом?

Что-то не работает проверка ни на Size <> 0, ни на UniversalID <> "", ни doc.HasItem ( "Form" )... везде Type Missmatch

Кстати отличие именно в IsValid. В 7ке оно False, в 8ке True.
У меня проверка If doc.Size > 0 Then работает. Я правда невалидные документы получал не поиском, db.GetDocumentByUNID
 

hosm

* so what *
18.05.2009
2 442
6
#15
abbatik
С коллекцией, полученной по фт-поиску, после получения документа из коллекции работала и такая проверка:
Код:
If doc.IsValid And Not doc.IsDeleted Then
If doc.UniversalID <> "" Then
приводи код :)
 

abbatik

Lotus team
20.10.2008
277
0
#16
abbatik
С коллекцией, полученной по фт-поиску, после получения документа из коллекции работала и такая проверка:
Код:
If doc.IsValid And Not doc.IsDeleted Then
If doc.UniversalID <> "" Then
приводи код :ya_lamo:

Без проблем :) Соответственно, там где проверка на форму, подставлялись другие.

Код:
		Dim doc As NotesDocument
Dim result As Long

Set doc=collection.GetFirstDocument

Do Until doc Is Nothing
If doc.IsValid And Not doc.IsDelete And doc.HasItem ( "Form" ) Then
Call Me.Add(doc)
result&=result&+1
End If

Set doc=collection.GetNextDocument(doc)
Loop
 

abbatik

Lotus team
20.10.2008
277
0
#18
И что? Если вы про отрицание, то все так и должно быть.

Собственно разница в том, что IsValid возвращает True в 7ке, и False в 8ке.

При это проверки на поля возвращают тайа мистматч.
 

hosm

* so what *
18.05.2009
2 442
6
#19
и тайп миссматч )

Добавлено: To get: flag = notesDocument.IsDeleted
Legal values
True indicates that the document is a deletion stub.
False indicates that the document exists.