Как исправить сбой автонумерации счетов-фактур в 1С при наличии нестандартного номера с дефисами

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Бухгалтерский учет
← На главную

В процессе работы в программах «1С:Предприятие» пользователи иногда сталкиваются с ситуацией, когда при создании нового документа «Счет-фактура выданный» система начинает подставлять некорректные номера. Например, вместо ожидаемого очередного номера 0000-0001025 программа настойчиво предлагает 0000-0253-31. Даже после ручного исправления номера в новом документе следующий созданный документ все равно получает номер 0000-0253-32. Рассмотрим подробно, почему возникают такие сбои и как правильно настроить нумерацию, не нарушая учетных данных.

Причина работы автонумератора платформы 1С

Проанализируем алгоритм, по которому платформа «1С:Предприятие» формирует новые номера документов. Встроенный нумератор разбирает строковое значение номера справа налево:

  1. Числовая часть: платформа находит непрерывную последовательность цифр с правого края строки. Это значение считается числовым номером документа, который автоматически увеличивается на единицу при создании следующего объекта.
  2. Префиксная часть: всё, что располагается левее найденной числовой части (буквы, дефисы, нули и промежуточные символы), платформа воспринимает как префикс.

Если в базе появляется документ с номером вида 0000-0253-30, платформа разбирает его следующим образом:

Префиксом становится строка 0000-0253-, а числовой частью — значение 30. При попытке сгенерировать следующий номер автонумератор платформы видит данный префикс и увеличивает его числовую часть, выдавая номер 0000-0253-31.

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

Решение 1. Изменение префикса нестандартного документа

Рассмотрим самый простой и эффективный способ исправления ситуации без необходимости менять программный код. Если главный бухгалтер запрещает изменять сам содержательный номер документа (в нашем примере это 0253-30), достаточно вынести его из основного диапазона нумерации за счет изменения префикса.

Стандартный номер счетов-фактур имеет вид 0000-0000001 (где 0000- — стандартный префикс организации или базы). Чтобы исключить документ из общей цепочки нумерации, изменим первый дефисный блок:

  1. Зайдем в журнал документов «Счет-фактура выданный».
  2. Найдем проблемный документ с номером 0000-0253-30.
  3. Изменим его системный номер на 0001-0253-30 или зададим уникальный буквенный префикс, например, СП00-0253-30.

После такого изменения платформа будет считать данный документ принадлежащим отдельному префиксу (0001-0253- или СП00-0253-). Теперь основной нумератор с префиксом 0000- вернется к правильной последовательности и предложит следующий номер из основного диапазона — 0000-0001025.

Решение 2. Вызов метода сброса кэша нумератора

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

ОбновитьНумерациюОбъектов(Метаданные.Документы.СчетФактураВыданный);

Метод ОбновитьНумерациюОбъектов() заставляет платформу сбросить закэшированные на сервере значения номеров, заново прочитать все документы из базы данных и корректно определить максимальный текущий номер для каждого префикса.

Решение 3. Разделение системного номера и номера для печати

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

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

  1. Оставить системный номер документа Номер стандартным для обеспечения непрерывной автонумерации платформой.
  2. Для формирования особого номера в печатных формах и регламентированной отчетности доработать печатную форму или переопределить логику в расширении конфигурации через событие УстановитьНовыйНомер.

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

← На главную