# Настройка автонумерации 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`)