Администрирование · 13 мин
Автонумерация в 1С: настройка и исправление номеров документов
Как работает автонумерация в 1С: где настраивается, почему сбиваются номера документов, как исправить нумерацию вручную и программно. Пошаговые инструкции и ответы на вопросы.
Автонумерация в 1С — это механизм, который автоматически присваивает номера новым документам, элементам справочников и другим объектам при их создании. Платформа сама отслеживает последний выданный номер и при записи очередного объекта предлагает следующий. Пользователю не нужно запоминать, какой номер был последним, — система делает это за него.
Механизм работает в типовых конфигурациях «из коробки»: достаточно создать документ, и поле «Номер» заполнится автоматически. Однако на практике возникают ситуации, когда нумерация сбивается: после ручного ввода номера, обмена данными между базами, переноса документов или изменения префиксов. Тогда номера дублируются, появляются «дырки» в последовательности или документы получают неожиданные значения.
Разобраться в автонумерации нужно на двух уровнях: пользовательском (как исправить номер в интерфейсе) и настройки (как конфигуратор управляет длиной, типом и периодичностью номеров). Ниже рассмотрены оба уровня, а также типичные ошибки и способы восстановить корректную последовательность.
Как устроена автонумерация в 1С
Платформа 1С:Предприятие хранит для каждого вида документов (и нумеруемых справочников) служебную информацию о последнем выданном номере. Когда пользователь создаёт новый документ, система берёт это значение, увеличивает числовую часть на единицу и подставляет результат в поле «Номер». После записи документа новое значение запоминается как последнее.
Важная особенность: номер присваивается в момент создания объекта, но окончательно закрепляется при записи. Если два пользователя одновременно открыли новые документы, оба могут получить один и тот же предложенный номер. Платформа разрешает такой конфликт при записи — второй документ получит следующий свободный номер. Поэтому в многопользовательском режиме кратковременные совпадения на экране — это норма, а не ошибка.
Номер документа в 1С — это строка, а не число. Он может содержать префикс (например, «00БП-000123»), буквы и разделители. При автонумерации платформа увеличивает только числовую часть в конце строки, сохраняя префикс и лидирующие нули. Именно поэтому ручной ввод номера в нестандартном формате может «сломать» последовательность: система не всегда сможет корректно определить, какую часть увеличивать.
Где настраивается нумерация в конфигураторе
Основные параметры нумерации задаются в конфигураторе в свойствах объекта метаданных — документа или справочника. Откройте конфигурацию, найдите нужный объект и перейдите на закладку «Нумерация» в палитре свойств. Там задаются три ключевых параметра.
Первый параметр — длина номера. Она ограничивает максимальное количество символов в строке номера, включая префикс. Если длина исчерпана числовой частью (например, все 9 разрядов заняты), при попытке создать следующий номер платформа выдаст ошибку уникальности. Второй параметр — периодичность: в пределах какого интервала номера должны быть уникальны — год, квартал, месяц, день или весь период. Третий параметр — контроль уникальности, который запрещает запись документов с повторяющимися номерами.
Дополнительно на закладке «Нумерация» доступен признак «Автонумерация». Если его снять, платформа перестанет предлагать номер автоматически, и заполнять поле придётся вручную или программно. Для документов этот признак обычно включён, снимать его имеет смысл только при полностью программной нумерации.
Как работает периодичность нумерации
Периодичность определяет, в рамках какого интервала времени номера должны быть уникальными и когда начинается новый отсчёт. Самая распространённая настройка для документов — «В пределах года»: первого января нумерация начинается заново с единицы (или с номера, заданного вручную), а внутри года дубли запрещены.
Для справочников чаще выбирают периодичность «Непериодический» (в пределах всей базы), потому что элементы справочника не привязаны к дате. Для документов с большим оборотом иногда применяют месячную или квартальную периодичность, но в типовых конфигурациях чаще встречается годовая.
Учтите: смена периодичности не перенумеровывает существующие документы. Если вы перевели нумерацию с непериодической на годовую, старые номера останутся как есть, а новый отсчёт начнётся с текущего года. Это может создать видимость «сбоя», хотя система работает штатно.
| Периодичность | Когда уникальность обязательна | Типичное применение |
|---|---|---|
| Непериодический | Во всей базе без привязки к дате | Справочники, редкие документы |
| В пределах года | С 1 января по 31 декабря | Большинство документов: счета, накладные, приказы |
| В пределах квартала / месяца / дня | Внутри соответствующего интервала | Документы с очень большим оборотом |
Почему сбивается нумерация и как её исправить вручную
Самая частая причина сбоя — ручной ввод номера. Например, пользователь создал документ и вписал номер «999» вместо предложенного «125». Платформа запомнила 999 как последний номер, и следующий документ получил номер 1000, хотя реально в базе их всего 125. Обратная ситуация: ввели номер с буквой в конце («125а»), и система перестала корректно увеличивать числовую часть.
Вторая причина — обмен данными между базами. При загрузке документов из другой базы их номера приходят «как есть», и если префиксы не настроены, возникают дубли или скачки последовательности. Третья причина — удаление последнего документа: иногда после удаления платформа продолжает отсчёт от удалённого номера, оставляя «дырку».
Самый простой способ исправить нумерацию вручную — создать новый документ и в поле «Номер» вписать правильный следующий номер (последний реально существующий плюс один), затем записать документ. Платформа примет это значение как последнее и продолжит отсчёт от него. Если следующий автоматический номер снова неправильный, повторите операцию — обычно одной корректировки достаточно.
- 1Откройте журнал документов и отсортируйте по номеру, чтобы найти реальный последний номер за текущий период
- 2Создайте новый документ и вручную введите номер: последний существующий плюс один, с сохранением префикса и лидирующих нулей
- 3Запишите документ, затем создайте ещё один и проверьте, что номер подставился автоматически и продолжает последовательность
- 4Если номер снова неверный, проверьте формат: уберите буквы из числовой части и лишние символы, повторите ввод
Программная установка номера и обработки перенумерации
Когда исправить нужно не один номер, а целую последовательность, ручной метод не подходит. В этом случае используют обработки перенумерации или код на встроенном языке. В типовых конфигурациях иногда есть встроенные сервисные обработки (например, в разделе «Администрирование» или «Сервис»), для нетиповых ситуаций применяют универсальные обработки «Перенумерация документов», которые проходят по документам за период и присваивают номера заново по порядку дат.
Программно номер объекта задаётся через свойство Номер перед записью. Чтобы назначить конкретное значение, достаточно присвоить его и записать объект:
Док = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
Док.Дата = ТекущаяДата();
Док.УстановитьНовыйНомер("00БП-"); // номер с нужным префиксом
// либо вручную:
Док.Номер = "00БП-000457";
Док.Записать();
Метод УстановитьНовыйНомер() формирует очередной номер с указанным префиксом — это штатный способ, когда документы создаются из кода. Прямое присвоение свойства Номер используют при перенумерации существующих объектов, но перед массовым запуском такого кода обязательно проверьте его на копии базы.
Префиксы и нумерация в распределённых базах
Префиксы решают две задачи: визуально различают документы разных организаций или баз и предотвращают дубли при объединении данных. В типовых конфигурациях префикс организации задаётся в карточке организации (поле «Префикс»), а префикс информационной базы — в настройках синхронизации данных или параметрах учёта.
При обмене между базами (например, между «Управлением торговлей» и «Бухгалтерией» или в распределённой базе с периферийными узлами) каждому узлу присваивается свой префикс. Документы, созданные в разных узлах, получают разные префиксы и не конфликтуют при загрузке в центральную базу. Если префиксы не заданы, после обмена почти гарантированно появятся документы с одинаковыми номерами.
Проверьте настройки префиксов до первого обмена, а не после появления дублей. Исправлять нумерацию в уже работающей распределённой системе значительно сложнее: придётся перенумеровывать документы в одном из узлов и контролировать, чтобы изменения корректно ушли по обмену.
Как проверить, что нумерация работает правильно
После любых действий с нумерацией — ручной корректировки, обработки или изменения настроек — результат нужно проверить. Базовая проверка занимает пару минут: откройте журнал документов, отсортируйте по номеру и убедитесь, что последовательность непрерывна в пределах текущего периода, а новый документ получает ожидаемый следующий номер.
Дополнительно проверьте отсутствие дублей: в журнале документов не должно быть двух документов с одинаковым номером в рамках одного периода (если включён контроль уникальности, платформа сама не даст записать дубль, но дубли могли остаться с момента, когда контроль был выключен). Для больших журналов удобно использовать группировку по номеру в отчёте или консоли запросов.
Если база участвует в обмене, после проверки локальной нумерации выполните тестовый обмен и убедитесь, что в принимающей базе номера загрузились без конфликтов. Только после этого можно считать настройку завершённой.
Как проверить результат
Номер подставляется автоматически и равен последнему существующему плюс один
Номер пустой, сильно больше ожидаемого или содержит лишние символы
Номера идут по порядку без дублей, префикс одинаковый
Есть повторяющиеся номера или документы с чужим префиксом
Номер в печатной форме совпадает с номером в базе
На печати выводится другой номер — проверьте макет и настройки префикса
Документы загружаются в другую базу без ошибок уникальности
Ошибки дублирования номеров при загрузке — проверьте префиксы узлов
Частые вопросы об автонумерации в 1С
Почему 1С не присваивает номер новому документу автоматически?
Чаще всего в конфигураторе для этого вида документов снят флажок «Автонумерация» или номер заполняется программно в коде, а код завершается с ошибкой. Проверьте закладку «Нумерация» в свойствах объекта и модуль объекта. Также поле «Номер» может быть просто скрыто на форме — тогда номер присваивается, но пользователь его не видит.
Можно ли сделать, чтобы нумерация начиналась заново каждый месяц?
Да. В конфигураторе в свойствах документа на закладке «Нумерация» установите периодичность «В пределах месяца». С первого числа каждого месяца уникальность будет контролироваться заново, и отсчёт можно начинать с единицы. Учтите, что уже созданные документы перенумерованы не будут.
Удалили последний документ, а номер пропал — как вернуть?
Платформа не переиспользует номера автоматически. Создайте новый документ и вручную введите нужный номер (тот, что был у удалённого), затем запишите. Дальше автонумерация продолжится от этого значения. Если контроль уникальности мешает записи, проверьте, не занят ли номер другим документом.
Чем отличается номер документа от кода справочника?
Механизм одинаковый, но термины разные: у документов поле называется «Номер», у справочников — «Код». У кода дополнительно есть тип: числовой или строковый. Числовой код проще увеличивать, строковый позволяет использовать префиксы и буквы. Настройки длины и автонумерации задаются аналогично на закладке «Нумерация».
Опасно ли менять длину номера в работающей базе?
Увеличение длины обычно безопасно, уменьшение — рискованно: существующие номера, не помещающиеся в новую длину, вызовут ошибку при обновлении конфигурации базы данных. Перед изменением сделайте резервную копию, проверьте максимальную фактическую длину номеров в базе и выполняйте обновление в нерабочее время.
Как перенумеровать документы за прошлый год без последствий?
Полностью без последствий — никак: номера уже фигурируют в печатных формах, отчётах и, возможно, в других базах. Если перенумерация всё же необходима, сделайте копию базы, выполните перенумерацию обработкой в тестовой среде, проверьте печатные формы и обмены, и только потом повторяйте в рабочей базе, предупредив пользователей о недопустимости использования старых распечаток.
Что важно запомнить
Автонумерация в 1С работает по принципу «последний номер плюс один» и управляется настройками длины, периодичности и контроля уникальности в конфигураторе. Разовый сбой исправляется ручным вводом правильного номера в новом документе, массовый — обработками с обязательной резервной копией. Для обменов между базами всегда настраивайте префиксы заранее, а результат любых изменений проверяйте по журналу документов и печатным формам.