Администрирование · 11 мин
Автонумерация в 1С 8.3: как исправить сбитую нумерацию
Почему в 1С 8.3 сбивается автонумерация документов и справочников. Пошаговые способы исправить номер вручную, через обработку и кодом, профилактика сбоев.
Автонумерация в 1С 8.3 — это механизм, который автоматически присваивает очередной номер новому документу или элементу справочника. Сбой проявляется типично: программа предлагает номер, который уже занят, выдаёт ошибку о нарушении уникальности при записи, или нумерация «уезжает» вперёд с огромным запасом после ручного вмешательства. Чаще всего причина в том, что кто-то вручную изменил номер, удалил последний документ или загрузил данные обменом с «чужими» номерами.
Исправить ситуацию можно несколькими способами: от простого ручного ввода правильного номера до программного обновления нумерации через встроенный язык. Выбор зависит от масштаба проблемы — единичный документ, целый вид документов за период или систематические сбои после обменов между базами.
Перед любыми действиями сделайте резервную копию информационной базы. Операции с нумерацией затрагивают ссылки и связанные данные, а в типовых конфигурациях номера используются в печатных формах, отчётах и регламентированной отчётности — ошибка здесь заметна и проверяющим.
Как устроена автонумерация и почему она сбивается
Платформа 1С:Предприятие 8.3 хранит для каждого вида документов (и справочников с автонумерацией) внутренний счётчик. Когда вы создаёте новый объект, система берёт текущее значение счётчика, увеличивает его и подставляет в поле «Номер». Важная особенность: счётчик не привязан жёстко к максимальному существующему номеру в базе — он живёт своей жизнью и корректируется при определённых событиях.
Основные причины сбоев:
- ручное изменение номера документа на «красивый» или ошибочный (например, ввели номер с большим значением — счётчик перескочил);
- удаление последнего документа — счётчик не откатывается назад автоматически;
- загрузка данных через обмен (конвертацию, синхронизацию), когда приходят номера из другой базы;
- восстановление базы из копии, созданной до части операций;
- смена префикса или периодичности нумерации в настройках;
- программное создание документов с явным присвоением номера в обход механизма автонумерации.
Как определить, что нумерация действительно сломана
Не всякий «неправильный» номер — признак сбоя. Сначала убедитесь, что проблема реальна, а не является следствием штатного поведения платформы.
Проверьте несколько вещей. Откройте журнал документов, отсортируйте по номеру и посмотрите: существует ли документ с номером, который программа пытается присвоить новому. Посмотрите на префиксы — если в базе работают несколько организаций или узлов обмена, номера могут идти параллельными рядами. Проверьте периодичность нумерации: во многих конфигурациях с нового года отсчёт начинается заново, и это норма.
Найти документ с максимальным номером за период и сравнить с предлагаемым
Вспомнить, не вводил ли кто-то номер вручную; проверить журнал на аномальные номера
Проверить, не помечены ли документы на удаление; пропуски сами по себе не ошибка
Проверить настройки префиксов организаций и узлов обмена
Способ 1: ручное исправление номера
Самый простой и безопасный метод, когда проблема точечная. Создайте новый документ, и когда платформа подставит неверный номер, просто введите в поле «Номер» правильное значение — следующее за максимальным существующим. Запишите документ. В большинстве случаев платформа при ручном вводе номера обновляет внутренний счётчик, и следующие документы получат корректные номера автоматически.
Нюансы: если поле «Номер» недоступно для редактирования, проверьте настройки — в некоторых конфигурациях ручное изменение номера запрещено правами или свойствами объекта. Тогда понадобится либо включить возможность ручной нумерации в настройках, либо воспользоваться программным способом.
- 1Сделайте резервную копию базы или убедитесь, что актуальная копия есть
- 2Откройте журнал документов и найдите максимальный корректный номер за текущий период с нужным префиксом
- 3Создайте новый документ и вручную введите следующий за максимальным номер
- 4Запишите документ и создайте ещё один — проверьте, что номер подставился правильно
- 5Если счётчик не исправился, переходите к программному способу
Способ 2: программное обновление нумерации
Когда ручной ввод не помогает или объектов много, используется метод встроенного языка ОбновитьНумерациюОбъектов(). Он заставляет платформу пересчитать внутренние счётчики по фактическим данным таблиц.
Метод вызывается у менеджера конкретного вида объектов. Выполнить код можно через консоль кода (внешнюю обработку) в режиме предприятия, имея права администратора.
ОбновитьНумерациюОбъектов(Метаданные.Документы.РеализацияТоваровУслуг);
// Для справочника:
ОбновитьНумерациюОбъектов(Метаданные.Справочники.Номенклатура);После выполнения создайте тестовый документ и проверьте присвоенный номер. Учтите, что метод обновляет нумерацию по всему виду объектов, а не по отдельному префиксу или периоду, — в конфигурациях со сложной нумерацией результат стоит проверить по каждому ряду.
Способ 3: перенумерация документов за период
Если требуется устранить «дырки» или привести номера к непрерывному виду (например, перед сдачей отчётности), применяют перенумерацию. В типовых конфигурациях иногда есть встроенные обработки перенумерации; если их нет, используют универсальные внешние обработки или пишут простой код: выборка документов за период, сортировка по дате, последовательное присвоение номеров.
Критически важно понимать последствия: номер документа фигурирует в печатных формах, уже выданных контрагентам, в регистрах и связанных документах. Перенумерация «задним числом» за закрытый период может создать расхождения с бумажными документами и данными контрагентов. Безопасное правило: перенумеровывать только неотправленные документы текущего периода.
Сравнение вариантов исправления
Подходит для единичного сбоя. Быстро и безопасно, но не решает массовые проблемы и требует доступности поля номера
Подходит при систематическом отставании счётчика. Требует прав и консоли кода, действует на весь вид объектов сразу
Подходит для устранения пропусков перед отчётностью. Рискованна для закрытых периодов — меняет номера уже оформленных документов
Для случаев, когда причина в настройках: длина номера, периодичность, автонумерация. Требует навыков разработчика и обновления конфигурации
Проверка настроек нумерации в конфигураторе
Если сбои повторяются регулярно, причина может быть в метаданных. Откройте конфигуратор, найдите нужный вид документов и проверьте на закладке «Нумерация»: признак автонумерации, длину и тип номера, периодичность (в пределах года, квартала, месяца или неперiodично), контроль уникальности.
Типичная проблема — недостаточная длина номера: когда счётчик достигает максимума для заданной длины, начинаются ошибки. Другая ситуация — отключённый контроль уникальности, из-за чего в базе появляются дубли. Изменение этих свойств требует обновления конфигурации базы данных и монопольного доступа, поэтому такие работы проводят в нерабочее время.
Как выбрать действие
Профилактика: как не ломать нумерацию снова
Большинство сбоев нумерации — следствие ручных вмешательств и неправильно настроенных обменов. Несколько правил существенно снижают риск.
Запретите пользователям ручное изменение номеров там, где это не нужно, — настройками прав или свойствами формы. В распределённых базах и при синхронизации всегда используйте уникальные префиксы для каждого узла — это исключает пересечение рядов. При загрузке данных из внешних источников не присваивайте номера явно, если объект создаётся штатно — доверьте это автонумерации. После восстановления из копии или массовых загрузок проверяйте нумерацию на тестовом документе.
Как проверить результат
Подставлен следующий за максимальным корректный номер, документ записывается без ошибок
Ошибка уникальности или снова неверный номер
Номера идут последовательно в рамках каждого префикса
Дубли номеров с одинаковым префиксом
Номер в форме совпадает с номером в базе
Расхождение номеров — проверьте, не зашит ли номер где-то ещё
Часто задаваемые вопросы
Почему после удаления документа номер не освобождается?
Платформа не откатывает счётчик автонумерации назад при удалении — это штатное поведение, защищающее от повторного использования номеров. Если нужно продолжить с освободившегося номера, введите его вручную в новом документе или обновите нумерацию программно.
Опасно ли менять номер документа вручную?
Для нового, ещё не распечатанного и не отправленного документа — безопасно. Для документа, номер которого уже попал в печатные формы, к контрагенту или в отчётность, изменение создаст расхождения. Всегда оценивайте, где номер уже использован.
Что делать, если нумерация сбивается после каждого обмена?
Проверьте префиксы узлов обмена: каждая база должна иметь уникальный префикс. Также проверьте правила конвертации — номера из другой базы не должны загружаться «как есть» без префикса. После настройки обновите нумерацию программно.
Можно ли исправить нумерацию без прав администратора?
Ручной ввод номера в новом документе доступен обычному пользователю, если поле не заблокировано настройками. Программное обновление нумерации и работа в конфигураторе требуют полных прав — обратитесь к администратору или специалисту по 1С.
Почему с нового года номера начались с единицы — это сбой?
Нет, это норма, если в свойствах объекта установлена периодичность нумерации «в пределах года». Проверить можно в конфигураторе на закладке «Нумерация» у нужного вида документов.
ОбновитьНумерациюОбъектов() не помог — что дальше?
Проверьте, не задан ли номер вручную в коде при создании документов (подписки на события, обработчики), не используется ли в конфигурации собственный механизм нумерации вместо платформенного. В таком случае анализируйте прикладной код или привлеките разработчика.
Что важно запомнить
Единичный сбой нумерации в 1С 8.3 лечится ручным вводом правильного номера, систематический — методом ОбновитьНумерациюОбъектов(). Перед любыми действиями делайте копию базы, не трогайте номера закрытых периодов и настройте уникальные префиксы в обменах, чтобы проблема не вернулась.