Ситуация, когда в программе 1С:Бухгалтерия внезапно сбивается нумерация документов, — одна из самых распространенных и при этом неприятных проблем. Представьте: вы вели учет, номера шли последовательно (1, 2, 3...), и вдруг следующий документ получает номер 2252. При этом в списке вы не видите документов с такими огромными номерами. Давайте разберем по шагам, почему это происходит и как вернуть правильный порядок нумерации.
Прежде чем приступать к исправлению, проанализируем ситуацию. Платформа 1С хранит последний использованный номер в специальном кэше или ориентируется на физически существующий в базе документ с максимальным номером. Если вы ввели документ с номером 2252, а затем его удалили или пометили на удаление, система все равно может «запомнить» этот порог. В таких случаях может возникать ошибка уникальности, для решения которой часто используется исправление ошибки "Значение поля Номер не уникально". Рассмотрим основные причины сбоя:
0000-000001 написать 2251), чтобы автонумерация сломалась.Если визуально в списке документов «виновника» не видно, первым делом попробуем применить штатный метод платформы. Рассмотрим подробнее использование метода `ОбновитьНумерациюОбъектов`. Этот метод заставляет систему пересчитать последний номер на основе реально существующих данных в базе. Также для восстановления порядка можно использовать внешнее исправление нумерации документов — для этого подойдёт обработка настройки автонумерации и восстановления номеров.
Для выполнения этой операции программисту или администратору необходимо запустить внешнюю обработку или выполнить код в консоли кода (для этого подойдёт групповая обработка объектов и консоль выполнения кода):
// Обновление нумерации для конкретного типа документа
ОбновитьНумерациюОбъектов(Метаданные.Документы.СчетФактураВыданный);
После выполнения этого кода система проанализирует все существующие документы СчетФактураВыданный и установит следующий номер как Максимальный + 1. Если после этого номер все равно остается огромным, значит, документ с номером 2251 или 2252 физически существует в базе, но скрыт от ваших глаз фильтрами.
Разберем ситуацию, когда программное обновление не помогло. Это верный признак того, что документ с некорректным номером существует. Часто он скрыт настройками списка. Посмотрим, как его найти с помощью Универсального отчета:
Документ, а в поле «Имя объекта» — Счет-фактура выданный.Номер.Номер по убыванию.Этот отчет покажет абсолютно все документы данного типа, включая помеченные на удаление, авансовые и корректировочные. Проанализируем список: скорее всего, вы увидите тот самый документ с номером 2252, который «сбивает прицел» системе.
В типовой конфигурации 1С:Бухгалтерия счета-фактуры на реализацию и авансовые счета-фактуры имеют единую нумерацию. Часто бухгалтер ищет ошибку в списке «Счета-фактуры выданные (реализация)», но не заглядывает в авансовые. Проанализируем журнал «Счета-фактуры выданные» без установленных фильтров по видам документов. Если вы обнаружите авансовый счет-фактуру с некорректным номером, его необходимо исправить вручную (или используя перенумерацию счетов-фактур в БП 3.0), после чего выполнить Решение 1.
Иногда причина кроется в префиксации. Система 1С воспринимает номера как строки. Рассмотрим пример: номера 0000-000001 и 0000-00001 визуально похожи, но для программы это разные последовательности из-за разного количества символов. Выясним, не менялся ли префикс организации или префикс информационной базы в настройках синхронизации. Если в середине года префикс изменился (или вам нужно изменение префикса у документов "Реализация товаров и услуг" и "Счет-фактура выданный"), система может начать нумерацию заново или с ошибочного значения.
Важный совет: Никогда не удаляйте ведущие нули в номере документа. Вместо 1 всегда должно быть 0000-000001. Как только вы вручную сокращаете длину номера, автонумерация перестает работать корректно. Если такая ошибка уже допущена в прошлых периодах, поможет автоматическое добавление лидирующих нулей в номер документа.
Если стандартные списки и отчеты не помогают, проанализируем базу данных напрямую через запрос. Это исключит влияние любых прав доступа (RLS) и настроек интерфейса. Используем следующий запрос:
ВЫБРАТЬ ПЕРВЫЕ 10
СчетФактура.Ссылка,
СчетФактура.Номер,
СчетФактура.Дата
ИЗ
Документ.СчетФактураВыданный КАК СчетФактура
УПОРЯДОЧИТЬ ПО
СчетФактура.Номер УБЫВ
Этот запрос выведет документы с самыми большими номерами. Найдя документ-нарушитель, вы сможете перейти по ссылке прямо из консоли запросов и исправить его номер на правильный.
Прежде чем массово менять номера, нужно помнить о последствиях. Счета-фактуры — это фискальные документы. Если они уже переданы контрагентам или отправлены через ЭДО (Диадок, Контур, СБИС), менять их номера в базе 1С крайне опасно. Это приведет к расхождениям при встречных проверках и в книге продаж/покупок. Для безопасного массового изменения, если это все же необходимо, лучше использовать специализированный перенумератор документов с учетом префикса.
Посмотрим на правильный алгоритм действий, если документы уже ушли клиентам:
ОбновитьНумерациюОбъектов().Таким образом, мы восстановим логику автонумерации, минимизировав количество исправленных вручную документов.