К статье
Практический материал

Администрирование · 12 мин

Как восстановить автоматическую нумерацию в 1С

Как восстановить автоматическую нумерацию документов в 1С: причины сбоев, ручное и автоматическое восстановление, обновление нумерации и профилактика ошибок.

Автоматическая нумерация документов в 1С сбивается чаще всего из-за ручного изменения номера, удаления документов, обмена данными между базами или нештатного завершения работы. Внешне это проявляется одинаково: новый документ получает номер с пропуском, дублем или неожиданным префиксом, а при проведении появляется сообщение о нарушении уникальности.

Хорошая новость в том, что механизм нумерации в 1С устроен просто: платформа хранит последние выданные номера в служебных регистрах и при создании документа предлагает следующий. Если этот счётчик «отстал» от реальности или, наоборот, ушёл вперёд, его можно скорректировать штатными средствами без программирования.

Важно понимать, что сбой нумерации — это симптом, а не самостоятельная болезнь. Прежде чем чинить счётчик, стоит выяснить причину: если нумерацию ломает обмен данными или внешняя обработка, проблема вернётся после первого же сеанса синхронизации.

Как устроена нумерация в 1С и почему она сбивается

При записи нового документа платформа обращается к служебной информации о нумераторе объекта и выдаёт следующий номер. Номер хранится как строка, поэтому «следующий» определяется с учётом префиксов, лидирующих нулей и длины номера. Именно строковая природа номера — источник большинства недоразумений: для платформы «9» больше, чем «10», если сравнение идёт посимвольно без учёта длины.

Типовые причины сбоев выглядят так. Пользователь вручную вписал номер «999999» — и следующий документ пытается получить «1000000», выходя за допустимую длину. Документ с максимальным номером удалили, а счётчик остался на месте — появляются «дыры». В базу загрузили документы из другой системы с чужими префиксами — нумератор ориентируется на чужой максимум. Реже встречаются повреждения служебных таблиц после аварийного завершения или восстановления из копии.

Новый документ получает заниженный номерСчётчик отстал

Проверьте, нет ли документов с большими номерами, созданных вручную или загруженных обменом

Ошибка «Номер не уникален» при записиСчётчик выдаёт уже существующий номер

Найдите документ с этим номером — возможно, он помечен на удаление или создан в другой организации

Номер с неожиданным префиксомСработала нумерация по префиксам

Проверьте настройки префиксации и обмен данными

Номера идут с пропускамиУдалялись документы или откатывались транзакции

Пропуски сами по себе не критичны; проверьте, не нарушена ли хронология

Подготовка перед восстановлением: резервная копия и диагностика

Любые действия с нумерацией начинайте с резервной копии. В файловой базе достаточно скопировать каталог с файлом 1Cv8.1CD или сделать выгрузку через конфигуратор («Администрирование» → «Выгрузить информационную базу»). В клиент-серверном варианте используйте средства СУБД или ту же выгрузку в dt. Правка номеров — обратимая операция, но только если есть к чему откатываться.

Далее определите реальный «правильный» номер. Откройте журнал документов нужного вида, отсортируйте по номеру и найдите последний корректный документ за текущий период (нумерация обычно периодическая — годовая). Исключите из анализа документы с чужими префиксами, загруженные обменом, и явно ошибочные ручные номера.

Заодно проверьте, не действует ли в базе несколько нумераторов: в типовых конфигурациях документы одного вида могут нумероваться в разрезе организаций или подразделений. В этом случае «сбой» может оказаться нормой — у каждой организации своя последовательность.

Способ 1: ручное восстановление через исправление номера

Самый простой и безопасный метод подходит, когда сбой точечный. Создайте новый документ проблемного вида и посмотрите, какой номер предлагает программа. Если он неверный, исправьте его вручную на правильный следующий номер и запишите документ. При записи платформа обновит счётчик: последующие документы продолжат нумерацию уже от исправленного значения.

Если поле «Номер» недоступно для редактирования, включите возможность ручного изменения. В типовых конфигурациях на управляемых формах это делается через меню «Ещё» → «Изменить форму» либо команду «Редактировать номер» (в некоторых конфигурациях доступна по кнопке рядом с полем). В старых интерфейсах помогает команда «Действия» → «Изменить» либо включение режима технолога.

Учтите ограничение: если при записи появляется ошибка «Номер не уникален», значит, документ с таким номером уже существует. Найдите его через журнал — возможно, это помеченный на удаление дубль, который стоит удалить окончательно, либо документ другого периода или организации, и тогда конфликта на самом деле нет.

Ручное восстановление нумерации
  1. 1
    Сделайте резервную копию базы
  2. 2
    Откройте журнал документов и определите последний корректный номер за период
  3. 3
    Создайте новый документ и посмотрите предлагаемый номер
  4. 4
    Исправьте номер вручную на правильный следующий и запишите документ
  5. 5
    Создайте ещё один документ и убедитесь, что номер продолжился автоматически

Способ 2: обновление нумерации штатными средствами

В ряде типовых конфигураций есть встроенный механизм обновления нумерации. В конфигурациях на БСП (Библиотека стандартных подсистем) при смене номера вручную программа сама предлагает пересчитать последующие номера. Кроме того, в разделах администрирования некоторых решений присутствует сервис «Обновление нумерации объектов» — он проходит по документам выбранного вида и перенумеровывает их по дате, начиная с заданного номера.

Для файловых баз существует подход через конфигуратор: в режиме «Тестирование и исправление» есть опции, затрагивающие служебные таблицы. Однако напрямую «сброса нумераторов» этот инструмент не выполняет — не стоит рассчитывать на него как на универсальное лекарство.

Если штатного сервиса в конфигурации нет, используются внешние обработки перенумерации. Их принцип одинаков: выбирается вид документа, период и начальный номер, обработка сортирует документы по дате и присваивает номера заново. Запускайте такие обработки только на копии сначала и только из источников, которым доверяете.

Способ 3: восстановление нумерации через запрос или код

Когда документов много и ручная правка нереальна, задачу решают программно. Типовой сценарий: запросом выбираются документы нужного вида за период с упорядочиванием по дате и ссылке, затем в транзакции каждому присваивается следующий номер с сохранением префикса и длины. Такой код выполняется через консоль кода или внешнюю обработку под полными правами.

Для сброса самого нумератора в языке 1С есть метод ОбновитьНумерациюОбъектов менеджера вида документов — он пересчитывает служебные данные нумерации по фактическим номерам в базе. Это как раз тот случай, когда счётчик отстал или ушёл вперёд, а сами документы править не нужно. Вызов выглядит примерно так: Документы.РеализацияТоваровУслуг.ОбновитьНумерациюОбъектов().

bsl
Документы.РеализацияТоваровУслуг.ОбновитьНумерациюОбъектов();

После выполнения метода создайте тестовый документ и проверьте предлагаемый номер. Если он по-прежнему неверен, значит, в базе есть документ с «максимальным» номером, который платформа считает отправной точкой, — найдите его и решите, что с ним делать: исправить, перенести в другой период или удалить.

Особые случаи: префиксы, обмены и несколько организаций

В распределённых базах и при обмене с другими системами нумерация работает с префиксами: каждая база добавляет свой код, чтобы номера не пересекались. Если после обмена нумерация «слетела», проверьте настройки префикса в разделе синхронизации данных и в параметрах информационной базы. Документы, пришедшие с чужим префиксом, не должны влиять на ваш счётчик — если влияют, это повод проверить настройки нумератора.

Нумерация по организациям

В конфигурациях, где ведётся учёт по нескольким организациям, у каждой может быть своя последовательность. Убедитесь, что сравниваете номера внутри одной организации: «дыра» в общем журнале часто оказывается документом соседней организации.

Смена периода нумерации

Большинство нумераторов периодичны — с нового года отсчёт начинается заново. Если в январе документы получают огромные номера, проверьте, не созданы ли документы с датой прошлого или будущего года с ручными номерами: именно они смещают счётчик.

Маршрут решения

Как выбрать действие

Сбой разовый, документов с неправильными номерами 1–2Исправьте номер вручную и запишите документ — счётчик подхватит значение
Счётчик отстал или ушёл вперёд, сами документы корректныВыполните ОбновитьНумерациюОбъектов через консоль кода
Номера нарушены массово за период, документы не печаталисьИспользуйте обработку перенумерации по дате, предварительно проверив на копии
Сбои повторяются после каждого обменаПроверьте префиксы и настройки синхронизации, правкой номеров проблему не решить

Проверка результата и профилактика повторных сбоев

После восстановления проверьте три вещи: новый документ получает ожидаемый следующий номер; запись не вызывает ошибки уникальности; в журнале нет дублей и неожиданных префиксов за текущий период. Полезно создать и записать два-три тестовых документа подряд, а затем удалить их, если это допустимо по регламенту.

Чтобы проблема не вернулась, ограничьте ручное изменение номеров правами доступа — в типовых конфигурациях это делается через профили групп доступа. Настройте префиксы для всех баз, участвующих в обменах. Раз в период (например, перед сдачей отчётности) проверяйте нумерацию на дубли и пропуски штатными отчётами или экспресс-проверкой ведения учёта, если она есть в конфигурации.

Отдельно отметьте для пользователей правило: удалять проведённые документы нельзя, их нужно отменять или сторнировать. Удаление середины цепочки — самая частая бытовая причина «дыр» и последующих попыток «починить» номер вручную, которые и ломают счётчик.

Типичные ошибки
01
Перенумерация документов, которые уже распечатаны или отправлены контрагентам — расхождение бумажных и электронных номеров
02
Ручная правка номера без резервной копии — при ошибке откатить изменения нечем
03
Исправление счётчика без устранения причины — сбой возвращается после очередного обмена
04
Сравнение номеров по разным организациям или префиксам — ложный вывод о сбое
05
Запуск непроверенных внешних обработок в рабочей базе — риск массовой порчи данных
Итог

Что важно запомнить

Сначала найдите причину сбоя и сделайте копию, затем выберите способ: ручная правка для точечных случаев, ОбновитьНумерациюОбъектов — для сбитого счётчика, перенумерация — для массовых ошибок по неотправленным документам. Завершайте работу проверкой на тестовых документах.

Частые вопросы

Почему после удаления документа номер не освобождается?

Платформа не переиспользует номера автоматически: счётчик хранит последнее выданное значение, а не список свободных. Пропуск в нумерации сам по себе не ошибка. Если нужно занять освободившийся номер, исправьте номер у нового документа вручную — дальше отсчёт продолжится от него.

Можно ли восстановить нумерацию без прав администратора?

Ручное исправление номера доступно пользователю с правами на изменение документов, если в конфигурации не запрещено редактирование номера. Обновление нумерации кодом и запуск внешних обработок требуют полных прав или прав администратора.

Ошибка «Номер не уникален» при записи — что делать?

Найдите документ с конфликтующим номером через журнал. Часто это помеченный на удаление дубль — удалите его окончательно через «Удаление помеченных объектов». Если дубль реальный, измените номер одного из документов с учётом правил нумерации.

Сбилась нумерация после обмена с другой базой — в чём причина?

Чаще всего не настроены или совпадают префиксы баз. Проверьте префикс информационной базы в настройках синхронизации и убедитесь, что у каждого узла обмена он уникален. Документы с чужим префиксом не должны влиять на ваш счётчик.

Опасно ли запускать «Тестирование и исправление» для нумерации?

Само по себе тестирование не перенумеровывает документы, но проверять его стоит только на копии и в монопольном режиме. Для восстановления нумерации этот инструмент не предназначен — используйте ОбновитьНумерациюОбъектов или перенумерацию.

Как сделать, чтобы нумерация начиналась с нужного номера в новом году?

Создайте первый документ нового периода и вручную установите нужный стартовый номер, затем запишите. Платформа запомнит его как отправную точку, и последующие документы продолжат отсчёт автоматически.