# Настройка автонумерации
1. Откройте `odm` класса;
1. Укажите для нужного атрибута свойство `type` = `autonum`;
1. Создайте внутри тега `attr` вложенный тег `autonum`. Укажите в нем следующие свойства:
- `id` - уникальный в рамках класса идентификатор автонумерации.
- `isHoleFill` - заполнение пропусков (опционально). Если в настройках автонумерации указан разрез, то автоматически включено. Чтобы выключить нужно прописать `isHoleFill` = `false`.
1. Внутри тега `autonum` создайте вложенные теги:
- `mask` - маска автонумерации. Маска должна собой представлять jexl-скрипт, с экранированием спец. символов. Для каждого автонумерующегося атрибута может быть настроена своя маска автонумерации. В маске доступен для использования параметр сounter, который будет заменен на значение счетчика.
- `dimension` - разрез автонумерации:
+ Установите у тега следующие свойства:
* `name` - название разреза. Задается всегда, даже если используется автонумерация без разреза;
* `attr` - атрибут, в рамках которого рассматривается разрез. Разрезы указываются из атрибутов класса. Используется только для автонумерации с разрезом.
* `order` - порядковый номер. Если его не задать, то разрезы будут обрабатываться в алфавитном порядке. Используется для автонумерации с разрезом по нескольким атрибутам.
+ Дополнительные возможности:
* При необходимости можно добавить более одного тега `dimension`. В этом случае разрез будет реализован по нескольким атрибутам.
* К значениям атрибутов разреза возможно применение выражений, они указываются во вложенном теге `expression` для `dimension`. На каждый разрез может быть не больше одного выражения. Значение, указанное в элементе `expression`, будет передано в обработчик Jexl-скриптов, параметр, заменяемый на значение атрибута разреза, называется `dimValue`.
Пример автонумерации без разреза:
```xml
lpad(counter,3,"0")
```
Пример указания нескольких разрезов:
```xml
lpad(counter,3,"0")
truncDate(dimValue)
```
1. Сформируйте окружение класса:
- Сформируйте исходный код для класса (`generate sources`);
- Выполните сборку проекта (`build`);
- Сформируйте таблицы класса (`generate tables`)