При ведении учета в конфигурации 1С:Бухгалтерия предприятия 3.0 нередко возникает неприятная ситуация: в базе появились документы с некорректными номерами или лишними буквами, например, 0000-В00001. Бухгалтер или администратор вручную либо с помощью групповой обработки приводит номера в порядок, заменяя их на стандартные 0000-000001. Однако при создании следующего документа система упорно подставляет старый префикс и выдает номер 0000-В000010. Разберем по шагам, почему платформа запоминает ошибочную нумерацию и какими способами можно сбросить этот счетчик.
Для понимания корня проблемы проанализируем внутренние механизмы автонумерации платформы 1С:Предприятие 8.3. Механизм автонумерации оптимизирован для высокой производительности и параллельной работы пользователей, поэтому он функционирует по следующим правилам:
rphost, в файловом — в кэше локального процесса или веб-сервера). Когда номер исправляется в таблице базы, счетчик в оперативной памяти автоматически не сбрасывается.0000-В). Для этого префикса создается собственное пространство автонумерации, которое продолжает увеличивать счетчик, даже если исходные документы уже отредактированы.Самый правильный и быстрый способ заставить платформу пересчитать счетчики по фактическим данным таблиц — использовать штатный метод глобального контекста ОбновитьНумерациюОбъектов(). Этот метод аннулирует кэшированные сервером номера и производит повторное чтение максимального значения непосредственно из базы данных.
Выполним вызов этого метода через внешнюю обработку или консоль кода в привилегированном режиме на стороне сервера. Рассмотрим пример кода для конкретного документа и для всех объектов конфигурации:
// Сброс кэша автонумерации для конкретного вида документов
ОбновитьНумерациюОбъектов(Метаданные.Документы.СчетНаОплатуПокупателю);
// Либо полный сброс счетчиков для всех объектов метаданных конфигурации
ОбновитьНумерациюОбъектов();
После вызова этого метода платформа синхронизирует кэш с актуальными записями таблиц базы данных, и новые документы начнут создаваться с правильным порядковым номером.
В файловых базах данных (особенно опубликованных через веб-серверы IIS или Apache) кэш автонумератора часто удерживается служебными процессами и вспомогательными файлами. Разберем порядок действий, который гарантированно решает проблему в файловом режиме:
1Cv8.1CD и различные вспомогательные файлы (журнал регистрации, файлы блокировок, временные таблицы кэша).1Cv8.1CD.%LOCALAPPDATA%\1C\1cv8 и %APPDATA%\1C\1cv8).Если база данных работает в режиме клиент-сервер под управлением кластера серверов 1С, кэш счетчиков удерживается процессами rphost. Проанализируем действия администратора:
ragent) либо перезапустим рабочие процессы кластера. В результате выгрузки процесса rphost из оперативной памяти кэшированные значения автонумерации полностью сбросятся.Если после сброса кэша нумератор продолжает выдавать неверный номер, обязательно проверим два критических фактора:
Нумератор у проблемного документа. Если документ привязан к общему объекту метаданных (например, единый нумератор для поступлений и реализаций), ошибочный номер с префиксом мог остаться в другом связанном типе документов. Исправлять нумерацию в таком случае необходимо сразу по всей группе документов.