Как исправить и настроить нумерацию документов в 1С
Содержание
Пропуск в нумерации — не ошибка и не повод для штрафа. Ни закон о бухучёте, ни налоговая не требуют, чтобы номера документов в 1С шли сплошь, без разрывов. Поэтому прежде чем перенумеровать все документы, честно ответьте себе: это реальная необходимость или попытка навести косметический порядок.
Перенумерация оправдана в трёх случаях: вы сменили префикс или организацию, и старые документы остались со старыми номерами; объединили две базы и получили дубли; удалили тестовые данные, из-за которых счёт сбился. В остальных ситуациях массовое изменение номеров — лишний риск.
Приёмы ниже работают на платформе 8.3 с интерфейсом «Такси», в типовых конфигурациях — Бухгалтерии 3.0, ЗУП 3.1, Управлении торговлей 11. Сам механизм нумерации один и тот же, он живёт на уровне платформы.
Как 1С присваивает номера и почему счёт «сбивается»
Главное, что нужно понять: 1С не хранит отдельный счётчик «последний выданный номер». Следующий номер платформа вычисляет на лету — берёт максимальный среди уже существующих документов этого вида (в пределах периода нумерации и с тем же префиксом) и прибавляет единицу.
Отсюда два следствия. Удалили последний документ — его номер освободится, и новый документ его займёт. А вот пропуск в середине диапазона платформа сама не закрывает: если удалить документ №45, между №44 и №46 так и останется дыра.
Поведение номера задаёт объект-нумератор. Его свойства прописаны в конфигураторе, и именно от них зависит, как идёт счёт:
- 🔢 Периодичность — непериодический, в пределах года, квартала, месяца или дня. По умолчанию у большинства документов «в пределах года»: с 1 января нумерация начинается заново с №1. Это штатное поведение, а не сбой.
- 🔤 Тип номера — число или строка.
- 📏 Длина — сколько знаков в значащей части.
- 🔗 Общий или собственный нумератор — общий нумератор задаёт сквозной счёт сразу для нескольких видов документов.
- 🚦 Контроль уникальности — разрешать ли два документа с одинаковым номером.
В готовом виде номер часто выглядит как УТ-000000123 или 0000-000123: впереди идёт префикс (информационной базы и/или организации), затем значащая часть с ведущими нулями. Значащую часть ведёт нумератор, а префиксы подставляет механизм префиксации. Поэтому один и тот же порядковый номер у двух организаций не конфликтует, пока префиксы у них разные.
Нумерация «ломается» по понятным причинам: сменили префикс организации (новые документы идут с новым, старые остаются со старым); загрузили документы из другой базы; включили РИБ, а узлы получили одинаковые префиксы; кто-то правил номера вручную.
Пропуски допустимы даже для счетов-фактур. ФНС и Минфин не раз подтверждали: разрыв в нумерации счёта-фактуры не лишает покупателя права на вычет НДС. Так что гоняться за сплошной нумерацией ради «красоты» смысла нет.
Изменить номер у одного документа вручную
Если поправить нужно один-два документа, никакие обработки не требуются — номер правится прямо в форме.
- Откройте документ.
- Щёлкните по полю
Номер. Платформа предупредит, что автоматическая нумерация может быть нарушена, и спросит, продолжить ли редактирование. Ответьте «Да» — поле станет доступным для ввода. - Введите нужный номер и запишите документ.
Вводить нужно только значащую часть — префикс организации платформа подставит сама, по настройке. Формат (ведущие нули, длина) тоже определяется нумератором.
Если у нумератора включён контроль уникальности, а номер, который вы вводите, уже занят, платформа не даст записать документ. Сначала освободите этот номер у другого документа или выберите свободный.
Есть ещё одна ловушка. Если вручную проставить номер заметно больше текущего максимума — скажем, №9000 вместо №90 — все последующие документы платформа начнёт нумеровать уже от него, и в счёте появится резкий скачок. Поэтому при ручной правке держитесь в пределах существующего диапазона номеров.
Этот способ хорош для точечных правок: поправить номер входящего счёта-фактуры, выровнять один выбившийся документ. Для сотен документов руками ходить бессмысленно — для этого есть массовая перенумерация.
Массовая перенумерация через обработку
Отдельной кнопки «перенумеровать всё» в типовых конфигурациях нет. Массовая перенумерация — это внешняя обработка с небольшим кодом, которая перебирает документы в нужном порядке и переназначает им номера.
Ключевой метод — УстановитьНовыйНомер() у объекта документа: платформа выдаёт очередной свободный номер по своим правилам. Простой цикл по документам за период выглядит так:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Док.Ссылка КАК Ссылка
|ИЗ
| Документ.РеализацияТоваровУслуг КАК Док
|ГДЕ
| Док.Дата МЕЖДУ &Начало И &Конец
|УПОРЯДОЧИТЬ ПО
| Док.Дата,
| Док.Ссылка";
Запрос.УстановитьПараметр("Начало", '20250101000000');
Запрос.УстановитьПараметр("Конец", '20251231235959');
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
ДокОбъект = Выборка.Ссылка.ПолучитьОбъект();
ДокОбъект.УстановитьНовыйНомер(); // платформа выдаст очередной номер
ДокОбъект.Записать(); // запись без перепроведения
КонецЦикла;
Перебор идёт строго по дате, поэтому номера ложатся по возрастанию в хронологическом порядке — ровно то, что обычно и нужно. Имя документа (Документ.РеализацияТоваровУслуг) и границы периода подставьте под свою задачу.
Чтобы перенумеровать документы
только одной организации, добавьте в запрос условие по реквизиту Организация и соответствующий параметр. Тогда обработка пройдёт по нужному юрлицу и не затронет документы остальных.
Есть и обработка «Групповое изменение реквизитов» (главное меню → Все функции → Стандартные → Групповое изменение реквизитов; команду Все функции сначала включают в Сервис → Параметры). Но она ставит одно и то же значение на все выбранные объекты, а не последовательность, поэтому для простановки номеров-цепочки не годится. Её удобно использовать, чтобы массово поправить другой реквизит — например, организацию, после чего уже перенумеровать документы кодом.
Любую массовую перенумерацию сначала прогоняйте на копии базы. Переназначение номеров затрагивает печатные формы и, если документы проведены, требует аккуратности с перепроведением. Запускать лучше в нерабочее время, чтобы не пересечься с пользователями.
Если документы проведены и важно сохранить движения, записывайте их в режиме проведения — замените ДокОбъект.Записать() на ДокОбъект.Записать(РежимЗаписиДокумента.Проведение). Учтите: перепроведение пересчитает движения регистров и на большом массиве займёт заметно больше времени, чем простая запись.
Отдельная, более тонкая задача — перенумеровать всё «с единицы». Платформа отсчитывает очередной номер от максимума существующих, поэтому для чистой последовательности с №1 обработку пишут так, чтобы сначала освободить занятые номера и только потом присваивать их по порядку. Если делать это бездумно, легко получить старые и новые номера вперемешку — такую обработку стоит доверить специалисту или тщательно проверить на копии.
Можно ли править номера напрямую в базе
Короткий ответ — нет, этого делать не стоит, и «таблицы нумераторов», которую можно было бы отредактировать, в 1С попросту нет.
Как уже сказано выше, номер хранится в самом документе, а следующее значение платформа считает из существующих данных. Отдельного персистентного счётчика, который задаёт нумерацию, в базе не существует — редактировать «нечего».
Прямая правка номеров через SQL в рабочей базе — прямой путь к повреждению данных. В обход платформы нарушается ссылочная целостность, рассыпаются итоги и движения регистров, а база фактически становится неподдерживаемой. Ни одна легальная задача этого не требует.
Правильных путей два:
- 🖥️ Через «Предприятие» — ручная правка номера или обработка с
УстановитьНовыйНомер(), как в разделах выше. Платформа сама следит за целостностью. - 🔧 Через конфигуратор — если менять нужно само поведение нумерации (периодичность, длину, общий нумератор, контроль уникальности). Это свойства нумератора, и правятся они в метаданных, а не в данных. Для типовой конфигурации потребуется снятие с поддержки соответствующего объекта.
Дубли и конфликты номеров: как убрать
Одинаковые номера у двух документов — классика после объединения баз или при неверно настроенном РИБ. Причины почти всегда одни:
- у нумератора выключен контроль уникальности;
- документы загружены или перенесены из другой базы;
- у разных организаций или узлов РИБ совпали префиксы;
- номера вводили вручную и промахнулись.
Сначала уточните, настоящий ли это дубль. Номер уникален в пределах периода нумерации и префикса, поэтому одинаковая значащая часть у документов разных организаций или разных лет — не конфликт, а штатная ситуация. Реальная проблема — только совпадение номеров внутри одной группы.
Найти такие дубли проще всего запросом с группировкой по номеру. Через консоль запросов:
ВЫБРАТЬ
Док.Номер КАК Номер,
КОЛИЧЕСТВО(Док.Ссылка) КАК Количество
ИЗ
Документ.РеализацияТоваровУслуг КАК Док
СГРУППИРОВАТЬ ПО
Док.Номер
ИМЕЮЩИЕ
КОЛИЧЕСТВО(Док.Ссылка) > 1
В выборку попадут только номера, встречающиеся больше одного раза. Дальше их разруливают так:
- Разведите конфликтующие группы разными префиксами — задайте организациям или узлам РИБ непересекающиеся двухсимвольные префиксы.
- Перенумеруйте меньшую группу обработкой из раздела выше, чтобы номера не пересекались.
- Включите у нумератора контроль уникальности в конфигураторе — тогда повтор просто не запишется впредь.
Если дубли появились после разовой загрузки, часто достаточно перенумеровать именно загруженную партию, а «родные» документы не трогать. Так вы меняете минимум данных и не рискуете сбить уже выверенную нумерацию.
Префиксы, периодичность и как не ловить проблему снова
Большинство «сбоев» нумерации лечатся не перенумерацией, а правильной настройкой на входе.
Префиксы. Это главный инструмент, чтобы развести номера между организациями и узлами. У каждой организации — свой двухсимвольный префикс; он задаётся в карточке организации (Главное → Организации, поле префикса в настройках карточки). Разные префиксы — и номера физически не пересекутся, даже если значащая часть совпадёт.
В распределённой базе к этому добавляется префикс информационной базы: его получает каждый узел РИБ, и он гарантирует, что документы, созданные в разных узлах, не столкнутся номерами при обмене. Если РИБ настраивали без префиксов узлов — это первая вещь, которую стоит поправить.
Периодичность. По умолчанию счёт обнуляется каждый год — это и есть «в пределах года». Если бизнесу нужна сквозная нумерация через годы без сброса, меняют периодичность нумератора в конфигураторе осознанно и один раз, а не перенумеровывают документы каждый январь.
Дисциплина работы. Не удаляйте проведённые документы задним числом без необходимости и не правьте номера руками в рабочей базе. Копия документа, созданная командой Создать на основании или Скопировать, получает новый свободный номер автоматически — вручную его трогать не нужно. Перед любой массовой операцией с номерами делайте резервную копию: откатиться из неё быстрее, чем разбирать последствия.
Эти три настройки закрывают почти все причины, по которым вообще заходит речь о перенумерации.
Частые вопросы
Пропуски в нумерации документов — это нарушение?
Можно ли вести сквозную нумерацию по всем годам?
Почему после удаления документа его номер занимает новый?
Повлияет ли перенумерация на проведённые движения и отчётность?
Нужен ли монопольный режим, чтобы перенумеровать документы?
Источники
- Налоговый кодекс РФ, статья 169 (реквизиты счёта-фактуры)
- Федеральный закон от 06.12.2011 № 402-ФЗ «О бухгалтерском учёте», статья 9