К статье
Практический материал

Администрирование · 11 мин

Где хранится номер документа в 1С и как его найти

Где в 1С хранится номер документа: в таблицах SQL, в реквизитах объекта и в нумераторах. Как найти, изменить номер и настроить нумерацию без ошибок.

Номер документа в 1С — это не отдельный файл и не запись в справочнике, а значение стандартного реквизита Номер, который хранится вместе с самим документом в таблице базы данных. В файловой базе это таблица внутри файла 1Cv8.1CD, в клиент-серверном варианте — таблица вида _DocumentXXX в базе MS SQL Server, PostgreSQL или другой СУБД. Правила формирования номера при этом задаются отдельно — в настройках нумерации объекта конфигурации.

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

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

Как платформа 1С хранит номер документа

У каждого объекта типа «Документ» в конфигурации есть набор стандартных реквизитов, которые платформа создаёт автоматически: ссылка, дата, номер, признак проведения и другие. Номер — один из них. Физически он записывается в ту же строку таблицы базы данных, где хранятся все остальные реквизиты документа.

В клиент-серверном варианте каждому виду документов соответствует отдельная таблица с техническим именем вида _Document123, где число — внутренний идентификатор объекта метаданных. Поле номера в этой таблице обычно называется _Number. В файловой базе структура аналогична, но таблицы упакованы внутрь единого файла 1Cv8.1CD и недоступны для прямого чтения штатными средствами.

Важно понимать: номер — это строковое или числовое значение, а не уникальный идентификатор. Уникальность документа в базе обеспечивает ссылка (GUID), а номер может повторяться у документов разных видов и даже внутри одного вида, если нумерация сбилась или настроена с периодичностью.

Как найти номер документа через интерфейс

Для пользователя номер виден прямо в списке документов — это колонка «Номер» в журнале. Если колонки нет, её можно вывести через меню «Ещё» → «Изменить форму» или настройку списка. Поиск по номеру выполняется через поле поиска в журнале или через отбор.

В типовых конфигурациях (1С:Бухгалтерия, Управление торговлей, ERP) номер часто отображается с префиксом и без лидирующих нулей, хотя в базе хранится полное значение. Это вызывает путаницу при поиске: документ с номером «0000-001234» может отображаться как «БП00-1234» или «1234». При поиске используйте отбор «содержит» вместо точного совпадения.

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

В журнале документовКолонка «Номер»

Если не видна — включить через настройку формы списка

В базе SQLТаблица _DocumentXXX, поле _Number

Имя таблицы узнать через функцию ПолучитьСтруктуруХраненияБазыДанных()

В коде 1СДокументОбъект.Номер

Стандартный реквизит, доступен для чтения и записи

Правила нумерацииКонфигуратор, свойства документа

Проверить нумератор, периодичность и длину номера

Как узнать имя таблицы и поля в SQL-базе

Технические имена таблиц в СУБД не совпадают с именами объектов в конфигураторе, поэтому искать таблицу «РеализацияТоваровУслуг» в SQL Management Studio бесполезно. Платформа предоставляет штатный способ получить соответствие — функцию ПолучитьСтруктуруХраненияБазыДанных().

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

bsl
СтруктураХранения = ПолучитьСтруктуруХраненияБазыДанных();
Для Каждого Строка Из СтруктураХранения Цикл
    Если СтрНайти(Строка.ИмяТаблицыНазначение, "РеализацияТоваровУслуг") > 0 Тогда
        Сообщить(Строка.ИмяТаблицыХранения);
    КонецЕсли;
КонецЦикла;

Получив имя таблицы, можно выполнить запрос к СУБД. Например, посмотреть номера документов за период:

sql
SELECT _Number, _Date_Time, _Posted
FROM _Document123
WHERE _Date_Time >= '2026-01-01'
ORDER BY _Number;

Прямые запросы на чтение относительно безопасны, но любые изменения данных напрямую в таблицах обходят логику платформы. Об этом подробнее в разделе про риски.

Где настраиваются правила нумерации

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

  • Длина номера — максимальное количество символов. Платформа дополняет номер лидирующими нулями до этой длины.
  • Периодичность — в пределах года, месяца, дня или непериодическая. Определяет, когда нумерация начинается заново.
  • Нумератор — ссылка на объект метаданных «Нумератор», который может объединять несколько видов документов в единую последовательность номеров.
  • Контроль уникальности — платформа не даст записать два документа с одинаковым номером в пределах периода, если контроль включён.

Префиксы (например, по организации или информационной базе при обмене) обычно добавляются программно — в подписке на событие «ПриУстановкеНовогоНомера». В типовых конфигурациях за это отвечают механизмы префиксации, настраиваемые в разделе синхронизации данных или в настройках организации.

Почему нумерация сбивается и как её восстановить

Типичная ситуация: новый документ получает номер, который уже занят, или нумерация «перескакивает» на неожиданное значение. Причины обычно такие: документ с большим номером был создан вручную, номер изменили вручную после записи, произошёл обмен данными с другой базой или нумератор используется несколькими видами документов.

Платформа присваивает новый номер по принципу «максимальный существующий плюс один» с учётом префикса и периода. Если кто-то вручную ввёл номер «9999», следующий документ попытается получить «10000», что может не влезть в заданную длину номера и вызвать ошибку.

Восстановление нумерации делается так:

Порядок восстановления нумерации
  1. 1
    Найдите документы с некорректными номерами: отсортируйте журнал по номеру или выполните запрос с группировкой по номеру для поиска дублей
  2. 2
    Исправьте или перенумеруйте проблемные документы вручную, начиная с самых ранних по дате
  3. 3
    Проверьте, что в пределах текущего периода нумерации нет дублей и «выброшенных» вперёд номеров
  4. 4
    Создайте новый документ и убедитесь, что он получил ожидаемый следующий номер
  5. 5
    Если используется обмен данными — проверьте префиксы в обеих базах, чтобы исключить повторный сбой

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

Риски прямой работы с таблицами базы

Чтение данных напрямую из SQL-таблиц — допустимая практика для анализа и интеграций. А вот прямая запись в таблицы (UPDATE, INSERT, DELETE) обходит всю логику платформы: проверки заполнения, подписки на события, движения по регистрам, контроль уникальности номеров.

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

Типичные ошибки
01
Поиск по точному номеру без учёта лидирующих нулей и префикса — документ «не находится», хотя существует
02
Ручной ввод номера «с запасом» (например, 99999) — ломает автоматическую нумерацию для всех последующих документов
03
Изменение длины номера в конфигураторе без проверки существующих данных — ошибки при записи старых документов
04
Правка номера прямым SQL-запросом — рассинхронизация служебных полей и повреждение данных
05
Игнорирование префиксов при обмене между базами — дубли номеров после синхронизации

Проверка результата после работы с номерами

После любых манипуляций с нумерацией убедитесь, что система ведёт себя корректно. Контрольные точки простые, но их стоит пройти полностью.

Контрольные точки

Как проверить результат

Создание нового документа
Норма

Присваивается следующий по порядку номер с правильным префиксом

Тревожный признак

Ошибка «Номер не уникальный» или номер далеко за пределами ожидаемого

Поиск по номеру в журнале
Норма

Документ находится по полному номеру и по части номера

Тревожный признак

Документ не находится или находится чужой документ с таким же номером

Печатная форма
Норма

Номер на печати совпадает с номером в базе

Тревожный признак

На печати старый или обрезанный номер

Обмен данными
Норма

Документы из разных баз имеют разные префиксы, конфликтов нет

Тревожный признак

После синхронизации появляются дубли номеров

Если после исправлений новые документы продолжают получать неверные номера, проверьте подписки на событие «ПриУстановкеНовогоНомера» в конфигурации — возможно, прикладной код принудительно формирует номер по своим правилам, и логику нужно искать там.

Итог

Что важно запомнить

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

Частые вопросы

Можно ли изменить номер уже проведённого документа?

Технически да: откройте документ, измените поле «Номер» и запишите. Но учтите последствия: печатные формы, счета-фактуры и данные, уже переданные контрагентам или в отчётность, содержат старый номер. Если документ участвует в обмене, изменение номера может создать конфликт при следующей синхронизации. Безопаснее исправлять номера до отправки документов вовне.

Почему в журнале номер отображается без нулей, а в базе с нулями?

Платформа хранит номер строкой фиксированной длины с лидирующими нулями (например, «0000-001234»), а типовые конфигурации при выводе часто отрезают нули для читаемости. Это чисто визуальное представление — физическое значение не меняется. При поиске и в запросах учитывайте полный формат.

Два разных вида документов могут иметь одинаковые номера?

Да, и это нормально: уникальность номера контролируется только внутри одного вида документов (или внутри общего нумератора, если он настроен). Счёт-фактура №125 и реализация №125 — разные объекты, конфликта нет. Если нужна сквозная нумерация нескольких видов, создайте общий нумератор в конфигураторе.

Как узнать, какой номер будет присвоен следующему документу?

Штатной кнопки «показать следующий номер» нет, но логика проста: платформа берёт максимальный номер за текущий период нумерации с учётом префикса и добавляет единицу. Найдите документ с самым большим номером за текущий год (или месяц) — следующий будет на единицу больше.

Что делать, если при записи появляется ошибка «Номер не уникальный»?

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

Можно ли сбросить нумерацию, чтобы она началась с единицы?

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