Администрирование · 9 мин
Где хранится нумерация в 1С и как ею управлять
Где хранится нумерация документов и справочников в 1С: регистр сведений «Нумерация», таблицы СУБД, сброс счётчиков, восстановление номеров и типовые ошибки.
Нумерация документов, справочников и кодов элементов в 1С — это не просто текст, записанный в самом объекте. Платформа хранит текущие счётчики номеров отдельно от данных, поэтому удаление последнего документа не возвращает счётчик назад, а перенос базы между серверами иногда «ломает» последовательность номеров. Понимание того, где физически и логически хранится нумерация, помогает быстро находить причину сбоев и безопасно их исправлять.
Механизм зависит от режима работы: файловая или клиент-серверная база, управляемая или обычная нумерация, использование префиксов и периодичности. В типовых конфигурациях на базе БСП (библиотека стандартных подсистем) за счётчики отвечает отдельный регистр сведений, а в самописных решениях нумерация может лежать в константах или собственных регистрах.
Ниже разобраны все основные места хранения: от объекта «Нумератор» в конфигураторе до физических таблиц SQL Server и PostgreSQL, а также практические сценарии — как найти текущее значение счётчика, сбросить нумерацию с нового года и восстановить пропавшие номера.
Как устроена нумерация в платформе 1С
У каждого документа есть реквизит «Номер», у справочника — «Код». Платформа автоматически присваивает следующее значение при записи объекта, опираясь на настройки нумератора: длину номера, периодичность (в пределах года, месяца, дня или неперiodически) и признак автонумерации. Сам присвоенный номер сохраняется вместе с объектом в его основной таблице.
Счётчик «какой номер следующий» платформа вычисляет по-разному. В простых случаях — поиском максимального номера в таблице объектов с учётом периода и префикса. Именно поэтому удаление последнего документа иногда приводит к повторному использованию его номера, а иногда — нет: всё зависит от того, задействован ли механизм нумераторов или регистр БСП.
Где хранятся счётчики в типовых конфигурациях (БСП)
В конфигурациях на базе библиотеки стандартных подсистем (УТ, ERP, БП, ЗУП) действует подсистема «Префиксация объектов». Текущие значения счётчиков хранятся в регистре сведений «Нумерация» (в некоторых версиях — «Нумерация объектов»). Каждая запись регистра привязана к виду объекта, префиксу, периоду и содержит последнее выданное значение.
Посмотреть содержимое регистра можно из режима 1С:Предприятие через меню «Все функции» (включается в параметрах интерфейса): «Все функции → Регистры сведений → Нумерация». Там видно, какое значение счётчика записано для конкретного вида документа и префикса. Это первое место, куда стоит смотреть, если нумерация «прыгает» или начинается не с того числа.
Физическое хранение: таблицы СУБД и файл 1Cv8.1CD
В файловом варианте все данные, включая регистр нумерации и номера документов, лежат внутри единого файла 1Cv8.1CD. Прямого доступа к внутренним таблицам этого файла штатными средствами нет — работа ведётся только через платформу или специализированные утилиты просмотра структуры.
В клиент-серверном варианте каждому объекту метаданных соответствует таблица в базе SQL Server, PostgreSQL или Oracle. Регистры сведений хранятся в таблицах вида _InfoRgNNNN, документы — _DocumentNNNN, справочники — _ReferenceNNNN. Соответствие имён таблиц объектам конфигурации можно получить через функцию ПолучитьСтруктуруХраненияБазыДанных() в конфигураторе или обработкой структуры хранения.
Прямые запросы к таблицам СУБД допустимы только для чтения и диагностики. Изменение счётчиков нумерации напрямую в SQL нарушает логику платформы: кэши сеансов и механизмы блокировок не узнают о вмешательстве, что приводит к конфликтам номеров и повреждению целостности данных.
Как найти текущее значение счётчика
Самый безопасный способ — просмотр регистра «Нумерация» через «Все функции», как описано выше. Если регистр пуст или отсутствует, значит, конфигурация использует платформенную автонумерацию, и следующий номер определяется максимальным номером в таблице документов за текущий период.
Программно текущий номер проверяют запросом к таблице документа с упорядочиванием по номеру в обратном порядке и отбором по периоду и префиксу. Для регистра БСП — обычный запрос к регистру сведений с отбором по виду объекта. Оба варианта безопасны, так как выполняются средствами платформы.
- 1Откройте «Все функции → Регистры сведений» и найдите регистр «Нумерация» или похожий по названию.
- 2Если регистр есть и содержит записи по нужному виду документов — счётчик хранится там.
- 3Если регистра нет — проверьте в конфигураторе, назначен ли виду документа нумератор и включена ли автонумерация.
- 4При отсутствии и того и другого счётчик вычисляется по максимальному номеру в таблице документов за период.
- 5Зафиксируйте найденное значение перед любыми изменениями.
Сброс и изменение нумерации
Типовая ситуация — сброс нумерации с начала нового года. В конфигурациях с БСП для этого есть штатная обработка «Сброс нумерации документов» (обычно в разделе «Администрирование → Обслуживание» или аналогичном). Она обнуляет или устанавливает заданное значение счётчика для выбранных видов объектов.
Если штатной обработки нет, счётчик корректируют программно: записью нужного значения в регистр «Нумерация» через встроенный язык или удалением устаревших записей регистра, чтобы платформа пересчитала номер заново. Перед изменением обязательно сделайте резервную копию и проверьте результат на тестовом документе.
Учитывайте периодичность нумератора: если она установлена «в пределах года», платформа сама начнёт нумерацию заново с первого документа нового года, и ручной сброс не потребуется. Ручное вмешательство нужно в основном при нестандартных префиксах, после переноса данных или при ошибочно выданных «больших» номерах.
Проблемы с нумерацией после переноса и обменов
После выгрузки-загрузки базы через dt или переноса данных конвертацией счётчики могут не совпадать с реальными номерами документов: регистр нумерации переносится не всегда, особенно при частичной конвертации. Признак проблемы — новые документы получают номера, которые уже заняты, либо нумерация стартует с единицы при заполненной базе.
В распределённых базах (РИБ) и при обменах с другими системами номера формируются с префиксами узлов. Префикс хранится в константе или настройках узла плана обмена, а счётчики ведутся раздельно по каждому префиксу. Если префикс узла случайно изменён, нумерация начнётся заново с новым префиксом — это нормальное поведение, а не сбой.
Как проверить результат
Следующий по порядку после последнего существующего с учётом префикса
Номер уже занят или начинается с единицы при заполненной базе
Значение счётчика соответствует максимальному номеру документов за период
Счётчик сильно меньше или больше реальных номеров
Каждый узел выдаёт номера со своим уникальным префиксом
Разные узлы выдают одинаковые номера с одинаковым префиксом
Частые вопросы
Почему после удаления последнего документа номер не освобождается?
Если используется регистр «Нумерация» БСП, счётчик в нём не уменьшается при удалении документа — следующий номер выдаётся с учётом сохранённого значения. Чтобы переиспользовать номер, нужно скорректировать запись регистра штатной обработкой сброса.
Можно ли посмотреть таблицу нумерации в файловой базе?
Штатных средств прямого просмотра внутренних таблиц файла 1Cv8.1CD нет. Используйте режим «Все функции → Регистры сведений → Нумерация» в самой программе — этого достаточно для диагностики и корректировки.
Где хранится нумерация кодов справочников?
Коды элементов хранятся в самой таблице справочника (_ReferenceNNNN), а счётчик, если подключена подсистема нумерации БСП, — в том же регистре «Нумерация» с привязкой к виду справочника. При стандартной автонумерации следующий код вычисляется по максимальному существующему.
Опасно ли менять значение в регистре «Нумерация» вручную?
Риск умеренный, если делать это через интерфейс платформы при отсутствии активных сеансов пользователей и после резервной копии. Опасно править данные напрямую в СУБД и менять счётчик, не проверив реальные номера документов — можно получить дубли.
Нумерация сбросилась сама после обновления конфигурации — это нормально?
Нет, само по себе обновление счётчики не обнуляет. Обычно причина в изменении периодичности нумератора, смене префикса или обработчиках обновления, пересоздающих записи регистра. Проверьте журнал регистрации и настройки нумератора в конфигураторе.
Как сделать сквозную нумерацию для разных видов документов?
Назначьте обоим видам документов один общий нумератор в конфигураторе — тогда счётчик будет единым, и номера не будут пересекаться. Учтите, что изменение применится только к новым документам, существующие номера останутся как есть.
Что важно запомнить
Счётчики номеров в типовых конфигурациях лежат в регистре сведений «Нумерация», сами номера — в полях объектов, физически всё это — таблицы _InfoRg и _Document в СУБД или файл 1Cv8.1CD. Диагностику ведите через «Все функции», корректировку — только штатными средствами после резервной копии, прямое вмешательство в SQL недопустимо.