Не работает автонумерация в 1С:Документооборот: разбираем причины и исправляем ошибки

Системный администратор 1С v8.3 (Управляемые формы) 1С:Документооборот IT и автоматизация бизнеса
← На главную

При настройке системы 1С:Документооборот (как в редакции 2.1, так и в новой 3.0) пользователи часто сталкиваются со следующей проблемой: при создании или регистрации новых документов программа упорно присваивает им один и тот же номер (например, «1») или выдает ошибку уникальности номера. Казалось бы, автонумерация включена, правила настроены, но цепочка последовательных номеров 1, 2, 3, 4 постоянно прерывается.

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

Причина 1. Избыточные настройки независимой нумерации

Проанализируем классическую ситуацию, с которой часто сталкиваются начинающие администраторы системы. Допустим, вы настроили общий нумератор и привязали его к нескольким видам документов. Однако при создании документов номера начинают дублироваться или постоянно сбрасываются на «1».

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

  1. Вид документа: Если этот флаг установлен, а нумератор назначен, к примеру, 20 различным видам документов, то для каждого из этих видов счетчик начнется заново с единицы. В результате у вас в системе будет множество документов с номером «1» разных видов. Если вы хотите иметь единый сквозной номер для всей входящей или исходящей корреспонденции, этот флаг необходимо снять.
  2. Подразделение: При включении этого разреза документы, подготовленные в разных отделах (например, в бухгалтерии и в отделе продаж), будут получать свои независимые цепочки номеров начиная с «1».
  3. Организация (Учреждение): Актуально для многофирменного учета. Номера будут уникальны только в пределах конкретного юридического лица.
  4. Связанный документ: Этот флаг чрезвычайно полезен для нумерации дополнительных соглашений (чтобы к Договору А шли доп. соглашения №1 и №2, а к Договору Б — свои №1 и №2). Но если применить такой нумератор к обычным независимым документам, нумерация полностью сломается и будет постоянно сбрасываться на единицу.

Решение: Перейдем в настройки нумератора. Для этого откроем карточку нумератора, дважды кликнем по полю формата номера (где отображается шаблон, например, «..12345»), нажмем кнопку открытия (или сочетание клавиш Ctrl+Shift+F4) и перейдем на вкладку «Независимая нумерация». Проанализируем установленные флаги и снимем лишние (в большинстве случаев требуется снять флаги «Виду документа» и «Подразделению»).

Причина 2. Сбой кэша нумерации на стороне сервера «1С:Предприятие»

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

Кэш может некорректно обновиться или «зависнуть» в следующих случаях:

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


// Сброс и обновление кэша автонумерации для внутренних документов
ОбновитьНумерациюОбъектов(Метаданные.Справочники.ВнутренниеДокументы);

Если программный метод не помог, гарантированным решением является перезапуск службы сервера «1С:Предприятие» (1C:Enterprise 8.3 Server Agent) в нерабочее время.

Причина 3. Ручное изменение номеров пользователями

Механизм автонумерации в экосистеме «1С» работает по простому математическому принципу: алгоритм ищет в базе данных документ с самым большим номером в рамках текущего пространства номеров (с учетом периодичности) и прибавляет к нему единицу. Ручное вмешательство пользователей ломает эту логику.

Рассмотрим две типичные ошибки ручного ввода:

  1. Потеря лидирующих нулей. Стандартный номер имеет строго заданную длину и выглядит, к примеру, так: 0000-000015. Если пользователь вручную отредактирует его и запишет как 15 или 15-А, алгоритм платформы больше не сможет корректно распознать числовую часть для инкремента. При попытке создать следующий документ система либо выдаст ошибку неуникальности, либо сбросит автонумерацию на единицу.
  2. Буквенные индексы в конце номера. Если вручную дописать букву в конец числового поля (например, 000025б), алгоритм автоинкремента споткнется на символе «б» и не сможет прибавить единицу, вновь выдав ошибку.

Решение: Разберем по шагам, как исправить последствия ручного ввода:

Причина 4. Влияние периодичности нумератора

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

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

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

Причина 5. Разделение временных и регистрационных номеров

Посмотрим на процесс создания документа в 1С:Документооборот. В этой системе четко разделены понятия временного номера (присваивается проекту документа в момент его первичной записи) и регистрационного номера (присваивается только в момент официального завершения согласования и регистрации документа).

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

Как правильно продолжить нумерацию с нужного числа?

Очень часто организация начинает работать в 1С:Документооборот не с начала года, а, например, в середине отчетного периода. Нам необходимо продолжить существующую бумажную или стороннюю нумерацию (например, начать регистрацию документов в системе с номера 534), не регистрируя при этом 533 фиктивных документа в базе.

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

  1. Перейдем в карточку нужного нумератора.
  2. В панели навигации карточки найдем и нажмем ссылку «Все номера».
  3. В открывшемся списке (регистре сведений) мы увидим записи о текущих номерах в разрезе периодов и настроенных параметров независимой нумерации.
  4. Создадим новую запись или отредактируем существующую: укажем текущий период (например, текущий год) и в поле «Текущий номер» внесем число 533 (последний использованный номер вне системы).
  5. Запишем изменения. Следующий документ, зарегистрированный по этому нумератору, автоматически получит корректный номер 534.
← На главную