Сделаю вброс шоколада в вентилятор.
Мой вариант:
Код:
Function CheckReqFields(Doc As NotesDocument, Flds List As String, ShowMsg As Boolean) As Boolean
On Error Goto Errh
CheckReqFields = False
If Doc Is Nothing Then Exit Function
Dim FldName As String
Forall x In Flds
FldName = Listtag(x)
If Trim$(FldName) <> "" Then
If Trim$(Implode(Doc.GetItemValue(FldName), "")) = "" Then
If ShowMsg Then Messagebox {Field "} + x + {" is required!}, 0 + 64, "Attention!"
Exit Function
End If
End If
End Forall
CheckReqFields = True
Exit Function
Errh:
Call ErrHandler
Exit Function
End Function
Flds List As String - переменная вида Flds("НАЗВАНИЕ ПОЛЯ") = "Литературное название поля"
Фокус не переопределяю, но это сделать несложно.
Ща перечитал, и вижу, что она, по идее, только с текстовыми полями работает

Но, похоже, мне этого хватает.
Если что, вместо If Trim$(Implode(Doc.GetItemValue(FldName), "")) = "" Then можно юзать Item.Text
Ну это так для иллюстрации.
На последнюю инстанцию далеко не претендую.