Разработка и Конфигурация · 10 мин
Нумератор в 1С: как создать и настроить нумерацию
Как создать нумератор в 1С: настройка стратегии нумерации метаданных, объект Нумераторы, подписки на события и типовые ошибки. Пошаговая инструкция.
Нумерация документов и справочников в 1С — механизм, который автоматически присваивает номера новым объектам. Стандартный встроенный механизм подходит для большинства задач, но часто требуется особая логика: отдельная нумерация по подразделениям, сброс счётчика каждый год, префиксы по организациям. Для этого создают собственный нумератор.
В зависимости от задачи «создать нумератор» может означать три разных действия: настроить свойства нумерации метаданных в конфигураторе, добавить объект метаданных «Нумераторы» для общей нумерации нескольких видов документов либо реализовать программную нумерацию через подписку на событие. Ниже разобраны все три подхода с точными шагами.
Материал ориентирован на работу в конфигураторе 1С:Предприятие 8.3. Для типовых конфигураций (Бухгалтерия, Управление торговлей) часть задач решается в пользовательском режиме, без изменения конфигурации.
Как устроена нумерация в 1С
Каждый документ и справочник в 1С имеет реквизит «Номер» (или «Код» для справочников). При создании нового объекта платформа автоматически вычисляет следующий номер, опираясь на свойства нумерации, заданные в метаданных. Платформа хранит таблицу максимальных номеров и увеличивает счётчик при записи объекта.
Ключевые свойства нумерации задаются на закладке «Нумерация» палитры свойств объекта метаданных. Там определяются вид нумерации (автонумерация или нет), длина номера, тип номера (число или строка), периодичность и признак контроля уникальности.
Важно понимать: номер — это реквизит объекта, а не отдельная сущность. «Нумератор» как самостоятельный механизм появляется только когда нужна нестандартная логика, которую стандартные свойства не покрывают.
Базовая настройка нумерации в конфигураторе
Для большинства случаев достаточно настроить свойства самого объекта. Откройте конфигуратор, найдите нужный документ или справочник в дереве конфигурации и откройте его палитру свойств.
- 1Откройте конфигуратор и дерево конфигурации
- 2Найдите нужный документ, откройте палитру свойств
- 3Перейдите на закладку «Нумерация»
- 4Установите длину номера, тип (число или строка), периодичность
- 5Включите «Контроль уникальности» и «Автонумерация»
- 6Обновите конфигурацию базы данных (F7)
- 7Проверьте: создайте новый документ и убедитесь, что номер присваивается автоматически
Обратите внимание на тип номера. Если выбрано «Число», номера будут строго числовыми, без префиксов, и сортировка будет естественной. Тип «Строка» позволяет использовать префиксы информационной базы и организаций, но сортировка становится лексикографической: «10» окажется раньше «2». Именно поэтому в типовых конфигурациях строковые номера дополняются ведущими нулями.
После изменения свойств обязательно обновите конфигурацию базы данных. Если в базе уже есть документы с номерами, не влезающими в новую длину, платформа при обновлении выдаст предупреждение — сначала приведите существующие номера к новому формату.
Периодичность и сброс счётчика
Свойство «Периодичность» определяет, в каких границах платформа ведёт счётчик номеров: непериодический (сквозная нумерация за всё время), в пределах года, квартала, месяца или дня. Наиболее распространённый вариант для первичных документов — годовая периодичность: с 1 января нумерация начинается заново.
Частая ошибка — ожидать, что смена периодичности мгновенно пересчитает номера. Платформа применяет новые правила только к новым объектам. Если нужно сбросить текущий счётчик вручную (например, нумерация «убежала» из-за тестовых документов), это делается обработкой перенумерации или установкой нужного номера у последнего документа периода.
Объект метаданных «Нумераторы»: сквозная нумерация
Если несколько видов документов должны иметь общую последовательность номеров (например, «Счёт на оплату» и «Акт» нумеруются в едином ряду), используется объект метаданных «Нумераторы». Он создаётся в ветке «Документы» → «Нумераторы» дерева конфигурации.
Создайте нумератор, задайте ему имя, длину номера и тип. Затем у каждого документа, который должен участвовать в общей нумерации, в палитре свойств на закладке «Нумерация» в поле «Нумератор» выберите созданный объект. После этого платформа будет вести единый счётчик для всех связанных видов документов.
Ограничение подхода: нумератор доступен только для документов, справочники общий нумератор не поддерживают. Также при использовании нумератора свойства длины и типа номера документа должны совпадать со свойствами нумератора, иначе конфигуратор выдаст ошибку проверки конфигурации.
Программная нумерация: подписка на событие
Когда стандартных механизмов недостаточно — нужна нумерация по подразделениям, смена префикса по виду операции, «дырки» в номерах недопустимы по бизнес-правилам — логику реализуют программно. Классический способ: подписка на событие ПриУстановкеНовогоНомера для документов.
В обработчике события можно отменить стандартную обработку (параметр «СтандартнаяОбработка = Ложь») и присвоить номер самостоятельно, например вычислив максимальный номер запросом с нужными отборами. Это даёт полный контроль, но требует аккуратности с конкурентным доступом: два пользователя, одновременно создающие документы, могут получить одинаковый номер.
Процедура УстановкаНомераДокумента(Источник, СтандартнаяОбработка, Префикс) Экспорт
СтандартнаяОбработка = Ложь;
Запрос = Новый Запрос("ВЫБРАТЬ МАКСИМУМ(Номер) КАК МаксНомер ИЗ Документ.РеализацияТоваров ГДЕ Дата МЕЖДУ &Начало И &Конец");
// ... вычисление следующего номера и присвоение Источник.Номер
КонецПроцедурыБолее безопасная альтернатива — не отменять стандартную обработку, а корректировать результат: дать платформе вычислить номер, а затем добавить префикс или пересчитать его в пределах своей серии. Так сохраняется встроенная защита от дублей.
Нумерация в типовых конфигурациях без изменения кода
В типовых решениях (1С:Бухгалтерия, Управление торговлей, ERP) часть задач решается в пользовательском режиме. Префиксы организаций и информационной базы настраиваются в разделе администрирования: «Настройки синхронизации данных» → «Префиксы номеров». Префикс организации задаётся в карточке организации.
Для перенумерации существующих документов в типовых конфигурациях используются встроенные обработки (например, «Перенумерация объектов» в составе стандартных подсистем) или групповое изменение реквизитов. Внешние универсальные обработки перенумерации тоже распространены, но запускайте их только на копии базы.
Как выбрать подход
Типичные ошибки и их устранение
Самая частая проблема — «сбитая» нумерация: платформа предлагает номер, который уже занят, или наоборот, пропускает большой диапазон. Причина обычно в ручном редактировании номеров или в документах с «большим» номером, созданном вручную. Решение — перенумерация периода обработкой.
Вторая типичная ситуация — дубли номеров при обмене данными между базами. Это признак того, что не настроены префиксы узлов обмена. Каждой базе-участнице обмена должен быть назначен уникальный префикс, тогда номера из разных баз не пересекутся.
Как проверить результат
Номер присваивается автоматически и следует за последним
Номер пустой, дублируется или далеко от реального последнего
Документы идут в хронологическом порядке
«10» стоит раньше «2» — проблема с ведущими нулями
Нумерация сбрасывается согласно периодичности
Счётчик продолжается — периодичность не задана
Общая последовательность без пересечений
У каждого вида свой ряд — нумератор не привязан
Частые вопросы
Можно ли создать нумератор без доступа к конфигуратору?
Да, частично. В типовых конфигурациях префиксы организаций и базы настраиваются в пользовательском режиме, а перенумерация выполняется штатными обработками. Но изменить длину номера, периодичность или создать объект «Нумераторы» можно только в конфигураторе.
Почему нумерация началась заново, хотя год не сменился?
Чаще всего причина в ручном изменении номера последнего документа или в удалении документа с максимальным номером. Проверьте периодичность нумерации и выполните перенумерацию периода обработкой.
Как сделать разную нумерацию для разных организаций в одной базе?
Стандартный механизм такой возможности не даёт. Используйте префиксы организаций (в типовых конфигурациях) или программную нумерацию через подписку на событие с отбором по организации.
Можно ли применить нумератор к справочникам?
Нет, объект метаданных «Нумераторы» работает только с документами. Для справочников общая нумерация реализуется программно через событие «ПриУстановкеНовогоКода».
Что делать, если после обновления конфигурации появились дубли номеров?
Проверьте, включён ли контроль уникальности, и нет ли документов с номерами, созданными вручную в обход механизма. Выполните перенумерацию проблемного периода, предварительно сделав резервную копию базы.
Нужно ли изменять конфигурацию для смены префикса?
Нет. В типовых конфигурациях префикс информационной базы задаётся в настройках синхронизации данных, префикс организации — в её карточке. Изменение конфигурации требуется только для нестандартной логики.
Что важно запомнить
Простая нумерация настраивается свойствами объекта в конфигураторе, сквозная для нескольких видов документов — объектом «Нумераторы», нестандартная логика — подпиской на событие. Перед изменением свойств номера в рабочей базе сделайте резервную копию и проверьте существующие данные.