> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Modèle objet

> Notions de base du modèle objet pour les scripts ABBYY FlexiCapture : méthodes des collections, champs récurrents et lignes de tableau, et création de chemins d’accès aux champs du document.

Les particularités du modèle objet utilisé sont décrites ci-dessous.

<div id="working-with-collections">
  ## Utilisation des collections
</div>

Toutes les collections du modèle objet prennent en charge les méthodes suivantes :

<table width="100%"><thead><tr><th style={{textAlign: 'left'}}><p><strong>Nom</strong></p></th><th style={{textAlign: 'left'}}><p><strong>Type</strong></p></th><th style={{textAlign: 'left'}}><p><strong>Accès</strong></p></th><th style={{textAlign: 'left'}}><p><strong>Description</strong></p></th></tr></thead><tbody><tr><td><p>Count</p></td><td><p>int</p></td><td><p>Lecture seule</p></td><td><p>Nombre d'éléments dans la collection</p></td></tr><tr><td><p>Item( index : int )</p></td><td><p>ItemInterface</p></td><td><p>Lecture seule</p></td><td><p>Récupère l'élément de la collection correspondant à l'indice spécifié.</p><p>L'indexation commence à "0".</p></td></tr></tbody></table>

<Note>
  Au lieu d'utiliser la méthode Item, vous pouvez également accéder aux éléments de la collection à l'aide de parenthèses ou de crochets, selon le langage sélectionné. Dans les langages **JScript**, **VBScript** et **Visual Basic.Net**, des parenthèses sont utilisées. En **C#.Net**, seuls les crochets peuvent être utilisés. En **JScript.Net**, il est possible d'utiliser à la fois les parenthèses et les crochets.
</Note>

Par exemple,

```
Items( 1 ).Text = "Hello" or Items[ 1 ].Text = "Hello"
```

Toutes les collections peuvent être utilisées dans des constructions "for each" et d’autres constructions similaires.

<div id="working-with-recurring-fields-and-tables">
  ## Utilisation des champs récurrents et des tableaux
</div>

Tous les champs du document, à l’exception des tableaux, peuvent être récurrents.

Dans la structure du document, les champs récurrents sont représentés par un champ prototype spécial doté d’une collection **Items** non vide.

Un champ prototype n’a ni éléments enfants ni valeur. Il sert uniquement à stocker l’ensemble des occurrences du champ. Les champs enfants et/ou les valeurs des champs ne peuvent être des attributs que des instances de champ, accessibles via la méthode **Items** de l’objet [IField](/fr/flexi-capture/appendix/scripts/ifield).

Les tableaux possèdent toujours la collection **Rows** (**Rows** est synonyme de **Items**). La collection **Rows** contient uniquement les lignes du tableau dont les cellules sont accessibles via la méthode **Children** des lignes.

## <a id="pathforming" />Composition des chemins d’accès aux champs

Les méthodes Field, HasField et IndexedItemValue de l’objet [IDocument](/fr/flexi-capture/appendix/scripts/idocument) utilisent des chemins d’accès aux champs du formulaire comme paramètres. La manière formelle de représenter le chemin en BNF (forme de Backus-Naur) est la suivante :

\<Path> ::= \<Path\_component> | \<Path> "" \<Path\_component>

\<Path\_component> ::= \<Field\_name> | \<Field\_name> "\["\<Field\_iteration\_number>"]"

Où **Field\_name** désigne les noms des champs du document tels qu’ils sont définis dans Document Definition, et **Field\_iteration\_number** correspond au numéro d’itération du champ répétitif (le numéro de ligne pour les tableaux), à partir de "0".

Le chemin peut être complet ou relatif. Les chemins complets sont construits en commençant par le nom de la section du document, tandis que les chemins relatifs sont construits en commençant par le nom de l’élément enfant du groupe.

Par exemple, pour désigner la troisième ligne de la colonne "Total" dans le tableau "Table", situé dans la section "Section", vous devez écrire ce qui suit :

```
"Section\Table[2]\Total"
```

Un tel nom complet peut être obtenu à l’aide de la méthode **FullName** de l’objet [IField](/fr/flexi-capture/appendix/scripts/ifield).
