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

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

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

1. Виды нумерации в 1С: что можно настроить

В 1С:Предприятие существует три основных типа нумерации, каждый из которых применяется в разных объектах:

  • 📌 Автоматическая нумерация — система присваивает номер при создании документа или элемента справочника. Используется по умолчанию в большинстве конфигураций (например, Бухгалтерия 3.0 или Управление торговлей 11).
  • 🔢 Ручная нумерация — пользователь вводит номер самостоятельно. Актуально для внутренних документов, где требуется специальная кодировка (например, приказы по личному составу).
  • 🔄 Сквозная нумерация — последовательность номеров не сбрасывается при начале нового периода (месяца, года). Часто применяется в Зарплата и Управление Персоналом для кадровых приказов.

Кроме того, нумерация может быть:

  • 📅 Периодической — сброс счетчика в начале каждого месяца/квартала (типично для бухгалтерских документов).
  • 🏷️ С префиксами/суффиксами — например, ПК-001 для приказов или СЧ-2026/05 для счетов-фактур.
  • 🔗 Связанной с другими объектами — когда номер документа формируется на основе данных из справочника (например, номер заказа клиента включает код контрагента).

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

⚠️ Внимание: В конфигурациях на базе БСП (Библиотека стандартных подсистем) часть параметров нумерации может быть скрыта в настройках подсистемы "Нумераторы". Проверьте этот раздел, если не находите нужные опции в свойствах документа.

2. Настройка автоматической нумерации для документов

Автоматическая нумерация — самый распространенный вариант. Рассмотрим, как ее настроить на примере документа Поступление товаров и услуг в 1С:Управление торговлей 11:

  1. Откройте конфигуратор (Файл → Конфигуратор или через ярлык запуска с ключом /Config).
  2. Перейдите в ветку Документы → ПоступлениеТоваровУслуг.
  3. В палитре свойств найдите поле Нумератор (или Автонумерация в зависимости от конфигурации).
  4. Установите флажок Автонумерация и укажите параметры:
    • 📆 Периодичность: "В пределах года" или "В пределах месяца".
    • 🔢 Длина номера: количество знаков (например, 5 для номеров от 00001 до 99999).
    • 🔤 Префикс: например, ПТ- для поступлений.
  • Сохраните конфигурацию и обновите базу данных (Конфигурация → Обновить конфигурацию базы данных).
  • Если документ уже существует в базе, но нумерация настроена неправильно, можно сбросить счетчик:

    // Код для сброса нумерации (выполняется в режиме "Отладка" или через внешнюю обработку)
    

    ДокументОбъект = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();

    ДокументОбъект.УстановитьНовыйНомер(1); // Сброс на 1

    ДокументОбъект.Записать();

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

    Изучите текущие номера документов в журнале|Создайте резервную копию базы|Проверьте права доступа (требуется роль "Администратор" или "Полные права")|Уточните требования к формату номеров (префиксы, длина) у бухгалтерии

    -->

    3. Ручное присвоение номеров и комбинированные схемы

    В некоторых случаях автоматическая нумерация не подходит. Например, для внутренних приказов может требоваться ручное присвоение номеров с учетом департамента (ПР-ИТ-01, ПР-БУХ-01). Для этого:

    1. В конфигураторе откройте свойства документа (например, ПриказПоПерсоналу).
    2. Снимите флажок Автонумерация.
    3. В модуле объекта (Модуль объекта в дереве конфигурации) добавьте процедуру проверки номера при записи:
      Процедура ПередЗаписью(Отказ)
      

      Если НЕ ЗначениеЗаполнено(Номер) Тогда

      Сообщить("Номер документа не заполнен!", СтатусСообщения.Важное);

      Отказ = Истина;

      КонецЕсли;

      КонецПроцедуры

    4. Для удобства пользователей добавьте в форму документа кнопку "Сформировать номер" с логикой генерации (например, на основе даты и кода подразделения).
    5. Комбинированная схема подразумевает частичную автоматизацию. Например, префикс проставляется автоматически, а цифровую часть вводит пользователь. Для этого:

      • 🔧 В свойствах документа оставьте Автонумерация включенной.
      • 📝 В модуле объекта добавьте обработчик события ПриСозданииНаСервере, который будет формировать префикс:
        Процедура ПриСозданииНаСервере(Отказ)
        

        Префикс = "ПР-" + Формат(ТекущаяДата(), "ГГГГ") + "-";

        Номер = Префикс + "001"; // Стартовое значение

        КонецПроцедуры

    Такие схемы часто используются в 1С:Зарплата и Управление Персоналом для кадровых документов, где важно сохранять историческую нумерацию при переходе на новую версию программы.

    Автоматическая (система присваивает номера сама)|Ручная (ввожу номера самостоятельно)|Комбинированная (префикс + ручной ввод)|Не знаю, как настроено у нас

    -->

    4. Нумерация в справочниках: особенности и ограничения

    Справочники в также поддерживают нумерацию, но с некоторыми нюансами. В отличие от документов, здесь нет жесткой привязки к датам, поэтому чаще используется сквозная нумерация или ручное присвоение кодов. Рассмотрим настройку на примере справочника Номенклатура:

    1. В конфигураторе откройте ветку Справочники → Номенклатура.
    2. В палитре свойств найдите поле Автонумерация и установите флажок.
    3. Укажите параметры:
      • 🔢 Длина кода: обычно 9 или 12 (для крупных баз).
      • 🔤 Префикс: например, НОМ- для номенклатуры.
      • 🔄 Контроль уникальности: включите, чтобы избежать дублей.
  • Если требуется иерархическая нумерация (например, 01.001 для группы и 01.002 для подгруппы), используйте свойство Иерархический справочник и настройте формат кода вручную.
  • Для справочников с ручной нумерацией (например, Контрагенты) полезно добавить обработчик, который проверяет уникальность кода при записи:

    Процедура ПередЗаписью(Отказ)
    

    Если НЕ ПустаяСтрока(Код) Тогда

    Запрос = Новый Запрос;

    Запрос.Текст = "ВЫБРАТЬ ССЫЛКА КАК Ссылка

    ИЗ Справочник.Контрагенты

    ГДЕ Код = &Код И Ссылка <> &Ссылка";

    Запрос.УстановитьПараметр("Код", Код);

    Запрос.УстановитьПараметр("Ссылка", Ссылка);

    Результат = Запрос.Выполнить();

    Если Результат.Выбрать() Тогда

    Сообщить("Код " + Код + " уже используется!", СтатусСообщения.Важное);

    Отказ = Истина;

    КонецЕсли;

    КонецЕсли;

    КонецПроцедуры

    ⚠️ Внимание: В справочниках с большим количеством элементов (более 100 000 записей) автоматическая нумерация может замедлять работу. В таких случаях используйте ГUID в качестве уникального идентификатора, а код присваивайте вручную или по специальному алгоритму.
    Тип объекта Рекомендуемая нумерация Примеры форматов
    Документы (бухгалтерские) Автоматическая, периодическая СФ-2026/05-001, ПКО-00001
    Документы (кадровые) Сквозная или ручная ПР-24/01, ТД-001-2026
    Справочник "Номенклатура" Автоматическая сквозная НОМ-000001, 1000001
    Справочник "Контрагенты" Ручная или комбинированная КЛ-001, ПОСТ-01
    Регистры сведений Без нумерации (используется период)

    5. Решение проблем с нумерацией: дубли, пропуски, сбросы

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

    • 🔄 Дубли номеров:

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

      1. Проверьте журнал регистрации (Администрирование → Журнал регистрации) на ошибки.
      2. Восстановите последовательность с помощью обработки "Поиск и исправление дублей номеров" (доступна в 1С:ИТС).
      3. Для документов с регламентными операциями (например, Закрытие месяца) используйте блокировку на время выполнения:
        Объект.ЗаблокироватьДляИзменения();
  • 🕳️ Пропуски в нумерации:

    Причина: удаление документов или сброс счетчика. Решение:

    • Используйте обработку "Перенумерация документов" (доступна в 1С:Конвертация данных).
    • Для справочников выполните запрос на поиск "дыр" в последовательности:
      ВЫБРАТЬ МАКСИМУМ(Код) КАК МаксКод ИЗ Справочник.Номенклатура
  • 🔙 Сброс нумерации на 1:

    Причина: обновление конфигурации или регламентная операция. Решение:

    • Проверьте настройки нумератора в Библиотеке стандартных подсистем (БСП).
    • Восстановите счетчик из резервной копии или вручную установите актуальное значение:
      ДокументОбъект.УстановитьНовыйНомер(ПоследнийНомер + 1);
  • Если проблема возникает регулярно, проверьте:

    • 🔧 Права пользователей: у всех ли есть доступ к созданию документов?
    • 🕒 Регламентные задания: не сбрасывают ли они счетчики (например, ОбновлениеИБ).
    • 🔌 Интеграции: не передают ли внешние системы документы с ручной нумерацией?
    • 💡

      Перед массовой перенумерацией документов всегда делайте резервную копию базы и тестируйте процесс на копии! В крупных базах (более 50 ГБ) операция может занять несколько часов.

      6. Нумерация в регистрах и особенности для разработчиков

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

      1. В конфигураторе откройте свойства регистра (например, РегистрСведений.ЦеныНоменклатуры).
      2. Добавьте реквизит УникальныйИдентификатор типа Строка(36) (для GUID).
      3. В модуле регистра добавьте обработчик записи:
        Процедура ПередЗаписью(Отказ)
        

        Если ПустаяСтрока(УникальныйИдентификатор) Тогда

        УникальныйИдентификатор = Новый УникальныйИдентификатор;

        КонецЕсли;

        КонецПроцедуры

    Для разработчиков полезно знать:

    • 🔧 Метод УстановитьНовыйНомер() работает только для объектов с включенной автонумерацией.
    • 📊 Для получения текущего максимального номера используйте запрос:
      Запрос = Новый Запрос;
      

      Запрос.Текст = "ВЫБРАТЬ МАКСИМУМ(Номер) КАК МаксНомер ИЗ Документ.ПоступлениеТоваровУслуг";

    • 🔄 Для сброса нумерации в коде используйте:
      Документы.ПоступлениеТоваровУслуг.СброситьНумератор();

    При работе с распределенными информационными базами (РИБ) нумерация должна быть согласована между узлами. Используйте:

    • 🌐 Глобальные нумераторы — централизованное управление номерами.
    • 🔗 Префиксы узлов — например, МСК-001 для московского офиса.
    Как работает нумератор в БСП?

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

    7. Оптимизация нумерации для крупных баз

    В базах с высокой нагрузкой (более 1000 документов в день) стандартная нумерация может стать узким местом. Рекомендации по оптимизации:

    • 📈 Разделение по периодам:

      Используйте ежемесячную или ежеквартальную нумерацию вместо сквозной. Это уменьшает конкуренцию за блокировки.

    • 🔧 Асинхронное присвоение номеров:

      Для документов, создаваемых в фоновом режиме (например, через Регламентные задания), присваивайте номера пачками:

      МассивДокументов = Новый Массив;
      

      Для Сч = 1 По 100 Цикл

      Док = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();

      Док.Номер = ""; // Пока не присваиваем

      МассивДокументов.Добавить(Док);

      КонецЦикла;

      // Присваиваем номера пакетом

      ТекущийНомер = ПолучениеТекущегоНомера();

      Для Каждого Док Из МассивДокументов Цикл

      Док.Номер = Формат(ТекущийНомер, "ЧГ=0; ДЛ=5");

      Док.Записать();

      ТекущийНомер = ТекущийНомер + 1;

      КонецЦикла;

    • 🗃️ Архивирование старых документов:

      Переносите документы старше 3–5 лет в архивную базу. Это уменьшит размер основной таблицы нумераторов.

    Для 1С:ERP и 1С:КА 2.4 актуальны дополнительные настройки:

    • 🔄 Используйте распределенные нумераторы для филиалов.
    • 📊 Настройте кеширование номеров в кластерном варианте работы.
    ⚠️ Внимание: В облачных решениях (1С:Fresh) часть параметров нумерации управляется на стороне сервера. Для изменений обращайтесь в поддержку с указанием ID вашей базы.

    8. Проверка и аудит нумерации

    Регулярный аудит нумерации помогает избежать проблем. Используйте следующие инструменты:

    • 🔍 Стандартные отчеты:

      В 1С:Бухгалтерии 3.0 откройте Отчеты → Стандартные → Анализ нумерации документов.

    • 📊 Запросы для анализа:

      Пример запроса для поиска дублей в документах РеализацияТоваровУслуг:

      ВЫБРАТЬ
      

      Номер,

      КОЛИЧЕСТВО(*) КАК Количество

      ИЗ

      Документ.РеализацияТоваровУслуг

      СГРУППИРОВАТЬ ПО

      Номер

      ИМЕЮЩИЕ

      КОЛИЧЕСТВО(*) > 1

    • 🛠️ Внешние обработки:

      Используйте обработки из 1С:ИТС:

      • "Проверка нумерации документов"
      • "Поиск и исправление дублей"
      • "Анализ цепочек документов"

    Для автоматизации аудита настройте регламентное задание, которое будет еженедельно проверять нумерацию и отправлять отчет на email:

    Процедура ВыполнитьПроверкуНумерации()
    
    

    // Формируем отчет

    Отчет = Новый ТабличныйДокумент;

    Запрос = Новый Запрос;

    Запрос.Текст = "ВЫБРАТЬ ...

    |(ваш запрос для проверки нумерации)";

    Результат = Запрос.Выполнить();

    Отчет.Вывести(Результат);

    // Отправляем по email

    Почта = Новый Почта;

    Сообщение = Новый СообщениеЭлектроннойПочты;

    Сообщение.Текст = "Отчет по нумерации документов";

    Сообщение.Тема = "Аудит нумерации 1С от " + ТекущаяДата();

    Сообщение.Вложения.Добавить(Отчет.ЗаписатьВФайл());

    Почта.Отправить(Сообщение, "admin@company.ru");

    КонецПроцедуры

    💡

    Регулярный аудит нумерации (раз в квартал) позволяет выявлять проблемы на ранних стадиях и избегать ошибок при сдаче отчетности.

    FAQ: Частые вопросы по нумерации в 1С

    Как сделать, чтобы номера документов начинались с определенного значения (например, 1000)?

    В конфигураторе откройте свойства документа, найдите параметр Начальное значение нумерации и установите 1000. Если документ уже существует в базе, используйте код:

    ДокументОбъект = Документы.ВашДокумент.СоздатьДокумент();
    

    ДокументОбъект.УстановитьНовыйНомер(1000);

    ДокументОбъект.Записать();

    После этого новые документы будут нумероваться с 1001.

    Можно ли использовать буквы в номерах документов (например, А001, А002)?

    Да, но нужно учитывать:

    • 🔤 В свойствах документа установите тип номера как Строка (а не Число).
    • 📌 В модуле объекта добавьте логику генерации номера, например:
      Процедура ПриСозданииНаСервере(Отказ)
      

      ПоследнийНомер = ПолучениеПоследнегоНомера();

      Номер = "А" + Формат(ПоследнийНомер + 1, "ЧГ=0; ДЛ=3");

      КонецПроцедуры

    • ⚠️ Буквенные номера могут вызвать проблемы при обмене данными с внешними системами (например, Диадок или Контур.Диадок), если они ожидают числовые значения.
    Почему после обновления 1С нумерация сбросилась на 1?

    Это типичная проблема при обновлении конфигураций на базе БСП. Причины:

    • 🔄 В новой версии изменилась структура нумераторов (регистр БСП.Нумераторы).
    • 📦 При обновлении не были перенесены данные из старого регистра.
    • Решение:

      1. Восстановите нумерацию из резервной копии.
      2. Или вручную установите актуальные значения через конфигуратор:
        Нумератор = РегистрыСведений.БСП_Нумераторы.СоздатьМенеджерЗаписи();
        

        Нумератор.Объект = Метаданные.Документы.ВашДокумент;

        Нумератор.ТекущийНомер = 1000; // Ваше актуальное значение

        Нумератор.Записать();

    Как сделать сквозную нумерацию для документов разных типов (например, для всех расходных документов)?

    Для этого нужно:

    1. Создать общий нумератор в регистре сведений (например, ОбщийНумераторРасходныхДокументов).
    2. В модуле каждого документа (например, РасходныйКассовыйОрдер, СписаниеТоваров) добавить обработчик:
      Процедура ПередЗаписью(Отказ)
      

      Запрос = Новый Запрос;

      Запрос.Текст = "ВЫБРАТЬ МАКСИМУМ(Номер) КАК МаксНомер

      ИЗ РегистрСведений.ОбщийНумераторРасходныхДокументов";

      Результат = Запрос.Выполнить();

      Если Результат.Пустой() Тогда

      Номер = 1;

      Иначе

      Номер = Результат.МаксНомер + 1;

      КонецЕсли;

      // Записываем новый номер в регистр

      Запись = РегистрыСведений.ОбщийНумераторРасходныхДокументов.СоздатьМенеджерЗаписи();

      Запись.Номер = Номер;

      Запись.Записать();

      КонецПроцедуры

    Минус такого подхода — необходимость блокировки регистра при одновременной записи документов.

    Можно ли изменить формат нумерации для уже существующих документов?

    Да, но это требует осторожности:

    1. С