Как настроить автонумерацию документов с начала года в 1С:Управление торговлей 11

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

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

Разберем логику работы автонумерации в 1С

Для начала проанализируем ситуацию: почему платформа продолжает старую нумерацию? В системе 1С за автоматическое присвоение номера отвечает механизм платформы, который опирается на свойство объекта Периодичность. Это свойство задается в Конфигураторе для каждого вида документа отдельно. Если для документа установлена периодичность В пределах года, то при наступлении 1 января 1С автоматически начнет искать максимальный номер именно в новом году. Если же номеров за этот год еще нет, она должна предложить «000000001».

Однако в УТ 11 и других современных конфигурациях иногда возникают сбои или настройки установлены таким образом, что «обнуления» не происходит. Рассмотрим, как мы можем на это повлиять.

Способ 1. Изменение периодичности в Конфигураторе

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

Рассмотрим, как это проверить и изменить:

  1. Откроем базу в режиме Конфигуратор.
  2. В дереве метаданных найдем нужный нам документ (например, РеализацияТоваровУслуг).
  3. Перейдем на закладку Нумерация.
  4. Найдем свойство Периодичность.
  5. Если там стоит значение Непериодический, это означает, что номера будут уникальными в пределах всей таблицы за все годы. Чтобы нумерация сбрасывалась каждый год, необходимо установить значение В пределах года.

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

Способ 2. Метод «Первого документа» в режиме Предприятия

Часто бывает, что периодичность в Конфигураторе уже стоит «Годовая», но нумерация все равно «подхватывает» старые значения. Это происходит из-за того, что платформа 1С всегда ориентируется на максимальный существующий номер в текущем периоде.

Выясним причину: если в начале года кто-то из пользователей по ошибке перенес документ из прошлого года в текущий (сменил дату с 31.12 на 01.01), сохранив старый номер (например, УТ-001540), платформа увидит этот номер как максимальный для текущего года. Следующий документ получит номер УТ-001541.

Как мы можем это исправить без программирования:

  1. Найдем самый первый документ в текущем году.
  2. Вручную отредактируем его номер, установив его в значение 000000001 (с учетом ваших префиксов, например, ФР-00000001).
  3. Критически важно сохранить общую длину номера и все ведущие нули. Если номер должен состоять из 11 символов, их должно остаться 11.
  4. Запишем документ. Все последующие документы, созданные автоматически, будут инкрементировать этот новый номер.

Способ 3. Программное обновление нумерации объектов

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

Посмотрим на пример кода, который можно запустить через внешнюю обработку или консоль кода:


// Обновим нумерацию для конкретных типов документов
ОбновитьНумерациюОбъектов(Метаданные.Документы.РеализацияТоваровУслуг);
ОбновитьНумерациюОбъектов(Метаданные.Документы.ЗаказПокупателя);
// Теперь платформа заново вычислит следующий свободный номер

Этот метод абсолютно безопасен и часто решает проблему «зависших» номеров без изменения логики системы.

Способ 4. Использование расширений для изменения периодичности

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

Разберем по шагам:

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

Таким образом, основная конфигурация остается на замке (на поддержке), а логика нумерации меняется так, как нам нужно.

Проблема «битых» номеров и лишних префиксов

Выясним еще одну частую причину сбоя — нарушение структуры номера. Платформа 1С умеет автоматически увеличивать только ту часть номера, которая является числовой и находится в конце строки. Рассмотрим примеры:

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

Рекомендации по исправлению массовых ошибок

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

  1. Воспользоваться типовой обработкой «Групповое изменение реквизитов» (если она позволяет менять номера) или специализированными обработками по перенумерации с диска ИТС.
  2. Перед массовым изменением обязательно сделайте резервную копию базы данных.
  3. После перенумерации обязательно выполните команду ОбновитьНумерациюОбъектов, чтобы сбросить внутренние счетчики платформы.

Подводя итог, можно сказать: хотя в самом интерфейсе «1С:Предприятия» нет галочки «Сбрасывать номер каждый год», мы имеем полный арсенал инструментов для решения этой задачи — от административного воздействия на «шаловливые руки» пользователей до гибкой настройки метаданных через расширения.

← На главную