Ja, Du denkst um zu viele Kurven.
Vergiss die Maske. Die Maske hat technisch mit dem Dokument überhaupt nichts zu tun. Ein kleines Beispiel:
Du hast eine Maske mit einem Autorenfeld "Autor1". Mit dieser Maske wird ein Dokument in der Datenbank erzeugt. Danach änderst Du in der Maske den Feldnamen des Autorenfeldes in "Autor2". Schau in die Felderliste des vorher erstellten Dokuments (ohne es zu öffnen), dann findest Du dort immer noch das Item "Autor1", aber nicht das "Autor2".
Nun öffnest Du das Dokument im Bearbeitenmodus und speicherst es wieder ab. Die Felderliste wird dann "Autor1" und "Autor2" ausweisen. Das ist auch völlig korrekt, denn keine Maske löscht Items in einem Dokument, nur weil es das entsprechende Feld nicht in der Maske gibt.
Du kannst auch Items per Agent oder anderen Routinen im Dokument erstellen, ohne dass es jemals dazu in einer Maske ein Feld gegeben hätte. Und Du kannst auch noch weitergehen und Dokumente erzeugen, die kein Item "Form" haben. Diese Dokumente sind natürlich real vorhanden, Du kannst Sie nur nicht öffnen, da Notes nicht weiß. mit welcher Maske (ich ignoriere bewußt die Möglichkeiten von Vorgabemasken usw.).
Das ist für mich das Geniale an Notes, dass man einfach Daten in Dokumente schreiben kann, ohne diese vorher irgendwo definiert zu haben. Versuche das mal mit SQL.
Langer Rede kurzer Sinn: Gehe direkt über die Items in den Dokumenten, die Du verarbeiten willst (Forall item In doc.Items) und prüfe anhand der Items, welche Eigenschaft die haben. Wie die Eigenschaften heißen, findest Du in der Hilfe zu NotesItem. Nur die Items steuern das Verhalten des Dokuments, nicht die Definitionen in der Maske.
(EDIT: Hat Tode sinngemäß auch so geschrieben, wollte den langen Text aber nicht einfach in die Tonne schieben)
Im Übrigen hat Urs Dir in der ersten Antwort genau das Script geschrieben, das Du benötigst