А если задать себе вопрос - отрабатывает ли вообще в вашем контексте событие Querymodechange? например из view нажимаем Ctrl + E либо action с @Command([EditDocument]) и благополучно минуем сие событие и открываем документ в режиме редактирования. Тут нужно проверять еще и как отрабатывает QueryOpen.
Ну и для полноты ощущений - doc.Edit(0) = "0" - это что такое и зачем ?
Свойство EditMode класса NotesUIDocument вам в помощь, читаем подробнее в хелпе и будет вам счастье.
Но это решает проблему запрета\разрешения открытия всего документа в режиме редактирования. А если нужно конкретное поле, причем RichText, да еще в зависимости от роли, то по идее в секцию с контролируемым доступом его
/////////////////////////////////////////////
да я учёл этот момент , на postopen я проверяю режим открытия:
If doc.edit(0) = "1" Then
uidoc.EditMode = False
End If
на querymodechange:
Sub Querymodechange(Source As Notesuidocument, Continue As Variant)
Dim s As New Notessession
Dim db As NotesDatabase
Dim ws As New NotesUIWorkspace
Dim doc As NotesDocument
Set db = s.CurrentDatabase
Set doc = ws.CurrentDocument.Document
If doc.Edit(0) = "0" Then
continue = True
Else
If doc.Edit(0) = "0" And Source.EditMode = True Then
continue = True
Else
If doc.Edit(0) = "1" And Source.EditMode = False Then
continue = False
End If
End If
End If
If Source.EditMode = True Then
Call Source.Save
End If
End Sub
а поле Edit документа на queryopen записывается 0 если чувак имеет роль для редактирования и 1 если не имеет этой роли (это поле нужно и для других целей)
А проблема в следующем, нужно чтоб содержимое поля открылось для чтения всем пользователям (даже если они не имеют роли) но нельзя чтоб они смогли его редактировать.
В данном случае почему не знаю редактирование запрещено но удаление проходит на ура.
Спасибо что отозвались. Ещё я видел варианты (не знаю как это реализовано) когда кнопки Edit Delet при открытии файла в полях типа richtext вообще не доступно.