Автонумерация объектов документа
Во время работы приложения стандартным поведением является автоматическое формирование Номера для нового объекта Документа. Это избавляет пользователя от необходимости каждый раз вводить Номер.
Простые номера
В простейшем случае в качестве Номера сервер присваивает новому объекту Документа некоторый номер.
Если в проекте стандартный реквизит Документа Номер имеет тип Число, то во время работы приложения для вычисления номера нового объекта сервер возьмет максимальный Номер из имеющихся объектов Документа и добавит к нему единицу. Таким образом, объекты Документа будут иметь номера, идущие последовательно: 1, 2, 3, 4 и т. д.
Если, например, объект с Номером 3 был впоследствии удален и сервер не перезапускался, то для нового объекта Документа сервер снова выберет номер 3. Таким образом он заполняет пропущенные номера. А для следующего объекта он выберет номер 5.
Однако если после удаления объекта Документа сервер был перезапущен, то информация о пропущенных номерах теряется и для следующего объекта сервер сразу же предложит номер 5.
Если в проекте у Документа стандартный реквизит Номер имеет тип Строка, то сервер вычисляет номер для нового объекта Документа по таким же правилам. Отличие заключается только в типе Номера — Строка. То есть это строковое представление числа, и оно может иметь лидирующие нули, чтобы длина номера была одинаковой у всех объектов Документа. За это отвечает свойство реквизита Номер — Автонумерация.ДлинаНумерации.
Сложные номера типа «Строка»
- АА-00345/ББ
- АА-00346/ББ
- НК-00022/ПС
- НК-00023/ПС
Формальная запись такого номера выглядит следующим образом:
<Префикс><РазделительПрефикса><Номер><РазделительПостфикса><Постфикс>
Вид Документ содержит набор свойств для настройки каждого из перечисленных компонентов Номера.
- Стандартные префикс и постфикс
- Вы можете задать в проекте стандартные значения префикса и постфикса, которые сервер будет использовать для всех объектов документа. За это отвечают свойства стандартного реквизита документа Номер: Автонумерация.Префикс и Автонумерация.Постфикс. Также вы можете задать разделители: Автонумерация.Формат.РазделительПрефикса и Автонумерация.Формат.РазделительПостфикса.
- Длина префикса и постфикса
- Префикс и постфикс могут вычисляться во время работы приложения и устанавливаться
с помощью встроенного языка. В этом случае в проекте у стандартного реквизита
документа Номер необходимо задать префикс и постфикс, а
также указать их длину:
Затем в модуле объекта задайте значения префикса и постфикса с помощью свойств имя-документа.ПараметрыЗаписи.Префикс и имя-документа.ПараметрыЗаписи.Постфикс:ВидЭлемента: Документ Ид: d8a962a8-631d-4857-a2b7-21c4983e9ea7 Имя: МойДокумент ОбластьВидимости: ВПодсистеме Реквизиты: - Имя: Дата Тип: ДатаВремя - Имя: Номер Автонумерация: Формат: РазделительПрефикса: "#" РазделительПостфикса: "#" ДлинаПрефикса: -1 ДлинаПостфикса: -1 Префикс: "" Постфикс: ""
// В обработчике ПередЗаписью в модуле объекта документа МойДокумент // устанавливаются значения префикса и постфикса автонумерации @Обработчик метод ПередЗаписью(ПредыдущееЗначение: МойДокумент.Данные, ПараметрыЗаписи: МойДокумент.ПараметрыЗаписи) ПараметрыЗаписи.Префикс = "PREF" ПараметрыЗаписи.Постфикс = "POST" ;
- Автонумерация в пределах префикса, постфикса и периода
- Номер для нового объекта Документа может вычисляться на
основе анализа как всех имеющихся объектов, так и только их части. Например,
объекты с одним префиксом имеют одну нумерацию, а объекты с другим префиксом —
другую. Таким образом, у объектов могут быть одинаковые номера, но с разные
префиксы. Например:
- АА-00002/ББ
- НК-00002/ПС
- Ограничения по символам
- Если длина префикса или постфикса не ограничена или если не используются
разделители, то серверу может быть трудно определить, где заканчивается префикс и
начинается номер. Например: в Номере НК001245 префиксом
может быть как НК, так и НК0 или НК00. В этом случае можно установить свойство
стандартного реквизита Документа
Номер —
Автонумерация.Формат.ОграниченияПоСимволам. Оно
накладывает следующие ограничения:
- префикс не может заканчиваться на цифру;
- постфикс не может содержать цифры.
- Отключение контроля формата
- Если вы хотите использовать возможности автонумерации Документа, но при этом иногда (например, при импорте данных из другой системы) вам нужно записать объект с «неправильным» Номером, используйте свойство стандартного реквизита документа Номер — Автонумерация.КонтрольФормата. Установите его в значение Выключено.