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

· 9 мин

Содержание

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

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

Приёмы ниже работают на платформе 8.3 с интерфейсом «Такси», в типовых конфигурациях — Бухгалтерии 3.0, ЗУП 3.1, Управлении торговлей 11. Сам механизм нумерации один и тот же, он живёт на уровне платформы.

Что именно не так с нумерацией?

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

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

Отсюда два следствия. Удалили последний документ — его номер освободится, и новый документ его займёт. А вот пропуск в середине диапазона платформа сама не закрывает: если удалить документ №45, между №44 и №46 так и останется дыра.

Поведение номера задаёт объект-нумератор. Его свойства прописаны в конфигураторе, и именно от них зависит, как идёт счёт:

  • 🔢 Периодичность — непериодический, в пределах года, квартала, месяца или дня. По умолчанию у большинства документов «в пределах года»: с 1 января нумерация начинается заново с №1. Это штатное поведение, а не сбой.
  • 🔤 Тип номера — число или строка.
  • 📏 Длина — сколько знаков в значащей части.
  • 🔗 Общий или собственный нумератор — общий нумератор задаёт сквозной счёт сразу для нескольких видов документов.
  • 🚦 Контроль уникальности — разрешать ли два документа с одинаковым номером.

В готовом виде номер часто выглядит как УТ-000000123 или 0000-000123: впереди идёт префикс (информационной базы и/или организации), затем значащая часть с ведущими нулями. Значащую часть ведёт нумератор, а префиксы подставляет механизм префиксации. Поэтому один и тот же порядковый номер у двух организаций не конфликтует, пока префиксы у них разные.

Нумерация «ломается» по понятным причинам: сменили префикс организации (новые документы идут с новым, старые остаются со старым); загрузили документы из другой базы; включили РИБ, а узлы получили одинаковые префиксы; кто-то правил номера вручную.

Пропуски допустимы даже для счетов-фактур. ФНС и Минфин не раз подтверждали: разрыв в нумерации счёта-фактуры не лишает покупателя права на вычет НДС. Так что гоняться за сплошной нумерацией ради «красоты» смысла нет.

Изменить номер у одного документа вручную

Если поправить нужно один-два документа, никакие обработки не требуются — номер правится прямо в форме.

  1. Откройте документ.
  2. Щёлкните по полю Номер. Платформа предупредит, что автоматическая нумерация может быть нарушена, и спросит, продолжить ли редактирование. Ответьте «Да» — поле станет доступным для ввода.
  3. Введите нужный номер и запишите документ.

Вводить нужно только значащую часть — префикс организации платформа подставит сама, по настройке. Формат (ведущие нули, длина) тоже определяется нумератором.

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

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

Этот способ хорош для точечных правок: поправить номер входящего счёта-фактуры, выровнять один выбившийся документ. Для сотен документов руками ходить бессмысленно — для этого есть массовая перенумерация.

Массовая перенумерация через обработку

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

Ключевой метод — УстановитьНовыйНомер() у объекта документа: платформа выдаёт очередной свободный номер по своим правилам. Простой цикл по документам за период выглядит так:

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
|   Док.Ссылка КАК Ссылка
|ИЗ
|   Документ.РеализацияТоваровУслуг КАК Док
|ГДЕ
|   Док.Дата МЕЖДУ &Начало И &Конец
|УПОРЯДОЧИТЬ ПО
|   Док.Дата,
|   Док.Ссылка";
Запрос.УстановитьПараметр("Начало", '20250101000000');
Запрос.УстановитьПараметр("Конец",  '20251231235959');

Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
    ДокОбъект = Выборка.Ссылка.ПолучитьОбъект();
    ДокОбъект.УстановитьНовыйНомер();   // платформа выдаст очередной номер
    ДокОбъект.Записать();               // запись без перепроведения
КонецЦикла;

Перебор идёт строго по дате, поэтому номера ложатся по возрастанию в хронологическом порядке — ровно то, что обычно и нужно. Имя документа (Документ.РеализацияТоваровУслуг) и границы периода подставьте под свою задачу.

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

Есть и обработка «Групповое изменение реквизитов» (главное меню → Все функции → Стандартные → Групповое изменение реквизитов; команду Все функции сначала включают в Сервис → Параметры). Но она ставит одно и то же значение на все выбранные объекты, а не последовательность, поэтому для простановки номеров-цепочки не годится. Её удобно использовать, чтобы массово поправить другой реквизит — например, организацию, после чего уже перенумеровать документы кодом.

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

Если документы проведены и важно сохранить движения, записывайте их в режиме проведения — замените ДокОбъект.Записать() на ДокОбъект.Записать(РежимЗаписиДокумента.Проведение). Учтите: перепроведение пересчитает движения регистров и на большом массиве займёт заметно больше времени, чем простая запись.

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

Можно ли править номера напрямую в базе

Короткий ответ — нет, этого делать не стоит, и «таблицы нумераторов», которую можно было бы отредактировать, в 1С попросту нет.

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

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

Правильных путей два:

  • 🖥️ Через «Предприятие» — ручная правка номера или обработка с УстановитьНовыйНомер(), как в разделах выше. Платформа сама следит за целостностью.
  • 🔧 Через конфигуратор — если менять нужно само поведение нумерации (периодичность, длину, общий нумератор, контроль уникальности). Это свойства нумератора, и правятся они в метаданных, а не в данных. Для типовой конфигурации потребуется снятие с поддержки соответствующего объекта.

Дубли и конфликты номеров: как убрать

Одинаковые номера у двух документов — классика после объединения баз или при неверно настроенном РИБ. Причины почти всегда одни:

  • у нумератора выключен контроль уникальности;
  • документы загружены или перенесены из другой базы;
  • у разных организаций или узлов РИБ совпали префиксы;
  • номера вводили вручную и промахнулись.

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

Найти такие дубли проще всего запросом с группировкой по номеру. Через консоль запросов:

ВЫБРАТЬ
    Док.Номер КАК Номер,
    КОЛИЧЕСТВО(Док.Ссылка) КАК Количество
ИЗ
    Документ.РеализацияТоваровУслуг КАК Док
СГРУППИРОВАТЬ ПО
    Док.Номер
ИМЕЮЩИЕ
    КОЛИЧЕСТВО(Док.Ссылка) > 1

В выборку попадут только номера, встречающиеся больше одного раза. Дальше их разруливают так:

  1. Разведите конфликтующие группы разными префиксами — задайте организациям или узлам РИБ непересекающиеся двухсимвольные префиксы.
  2. Перенумеруйте меньшую группу обработкой из раздела выше, чтобы номера не пересекались.
  3. Включите у нумератора контроль уникальности в конфигураторе — тогда повтор просто не запишется впредь.

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

Префиксы, периодичность и как не ловить проблему снова

Большинство «сбоев» нумерации лечатся не перенумерацией, а правильной настройкой на входе.

Префиксы. Это главный инструмент, чтобы развести номера между организациями и узлами. У каждой организации — свой двухсимвольный префикс; он задаётся в карточке организации (Главное → Организации, поле префикса в настройках карточки). Разные префиксы — и номера физически не пересекутся, даже если значащая часть совпадёт.

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

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

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

Эти три настройки закрывают почти все причины, по которым вообще заходит речь о перенумерации.

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

Пропуски в нумерации документов — это нарушение?
Нет. Законодательство не требует сплошной нумерации без разрывов. Для счетов-фактур ФНС и Минфин подтверждали, что пропуск номера не лишает покупателя вычета НДС. Перенумеровывать ради устранения пропусков не нужно.
Можно ли вести сквозную нумерацию по всем годам?
По умолчанию номер обнуляется с 1 января. Чтобы счёт шёл непрерывно через годы, нужно изменить периодичность нумератора в конфигураторе. Через режим «Предприятие» или правку данных это не делается.
Почему после удаления документа его номер занимает новый?
Платформа не хранит отдельный счётчик, а вычисляет следующий номер по максимальному среди существующих документов. Удалили последний — максимум уменьшился, и новый документ получает освободившийся номер.
Повлияет ли перенумерация на проведённые движения и отчётность?
На суммы движений регистров и на итоги номер не влияет — это реквизит документа. Но номер изменится на печатных формах и в уже переданных контрагентам или в отчётность документах. Такие изменения согласуйте заранее.
Нужен ли монопольный режим, чтобы перенумеровать документы?
Нет, монопольный доступ для перенумерации не требуется. Но массовую обработку лучше запускать в нерабочее время и предварительно проверять на копии базы, чтобы не мешать пользователям и не потерять данные при ошибке.

Источники

  • Налоговый кодекс РФ, статья 169 (реквизиты счёта-фактуры)
  • Федеральный закон от 06.12.2011 № 402-ФЗ «О бухгалтерском учёте», статья 9