Как проставить нумерацию документов и справочников в 1С 8.3
Содержание
Номер документа в 1С складывается из двух частей: префикса и собственно порядкового номера. Префикс — это буквы или цифры в начале (например, БП- или код организации), а номер платформа присваивает сама при записи документа. Поэтому «проставить нумерацию» почти всегда означает одно из трёх: настроить префикс организации, задать свой номер вручную или разобраться, почему появились дубли и пропуски.
Ниже — как это устроено в 1С:Бухгалтерия 3.0 и других типовых конфигурациях на платформе 8.3 (интерфейс «Такси»), чем нумерация документов отличается от нумерации справочников, и что доступно разработчику при программной записи.
Из чего состоит номер и как он назначается
У каждого документа 1С номер — это строка, а не просто число. В ней три логических блока:
- 🔹 префикс информационной базы — нужен в распределённых базах (РИБ), чтобы номера из разных узлов не совпадали;
- 🔹 префикс организации — две буквы или цифры, которые отличают документы разных фирм в одной базе;
- 🔹 порядковый номер — то, что платформа увеличивает на единицу.
Номер назначается не в момент создания документа, а в момент записи. Пока вы не нажали «Записать» или «Провести», поля номера либо пусто, либо стоит временное значение. Это важно помнить: именно отсюда растут пропуски в нумерации.
Ещё два свойства задаются в конфигураторе и в пользовательском режиме не меняются:
- Периодичность номера — с какого момента счётчик начинается заново: каждый день, месяц, квартал, год или никогда (сквозная нумерация). У большинства документов в типовых конфигурациях — «в пределах года», поэтому 1 января счётчик обнуляется.
- Длина и тип номера — сколько знаков отведено под номер. Если длины не хватит на годовой объём документов, нумерация упрётся в потолок, поэтому в крупных базах периодичность и длину подбирают заранее (об этом ниже).
Сброс номера 1 января — это не ошибка, а штатное поведение периодической нумерации. Два документа с номером 1 за разные годы не конфликтуют: период входит в проверку уникальности.
Автонумерация документов и настройка префикса
Автонумерация в типовых конфигурациях включена по умолчанию: создаёте документ, записываете — номер подставляется сам. Настраивать здесь, по сути, нечего, кроме префикса организации.
Когда в базе одна фирма, префикс обычно не нужен. Как только организаций становится две и больше, префикс разводит их документы:
- Откройте
Главное → Организации. - Зайдите в карточку организации.
- Найдите поле
Префикс(как правило, два символа — буквы или цифры). - Задайте короткий и понятный префикс, например
ТДиПРдля «Торгового дома» и «Производства».
После этого номера примут вид ТД-000001, ПР-000001 и перестанут пересекаться между фирмами.
Менять префикс у организации, по которой уже введены документы, без необходимости не стоит. Старые документы сохранят прежний номер, а новые пойдут с новым префиксом — в списке появится «разнобой», и отчёты по нумерации станут читаться хуже.
Префикс информационной базы — отдельная история. Он задаётся при настройке распределённой базы: каждому узлу РИБ назначают свой префикс в настройках синхронизации данных, чтобы номера из центральной и периферийной баз не совпадали. В обычной (не распределённой) базе этот префикс пустой, и трогать его не нужно.
Как задать или изменить номер вручную
Иногда нужен конкретный номер — например, бухгалтерия продолжает ручную книгу договоров или требуется вписать документ «в середину» уже существующей нумерации.
Платформа это допускает. Логика такая: если вписать значение в поле «Номер» до записи документа, платформа сохранит именно его и больше не будет менять автоматически. То есть ручной ввод для этого конкретного документа отменяет автонумерацию.
Порядок действий:
- Откройте или создайте документ.
- Очистите поле
Номери впишите нужное значение (с учётом префикса — его обычно вводить не надо, он подставится). - Запишите документ.
Что важно учесть при ручном номере:
Контроль уникальности в типовых конфигурациях включён. Если задать номер, который уже занят в этом периоде, платформа выдаст ошибку и не даст записать документ.
- Формат лучше сохранять единым: если автонумерация даёт
000123, не вводите просто123— в сортировке списка строковые номера123и000123встанут в разных местах. - После ручной вставки следующий автоматический номер платформа возьмёт от максимального, так что «дыры» в середине останутся — это нормально.
Комбинированная схема (часть документов — автоматически, часть — вручную) рабочая, но требует дисциплины: как только в одном типе документов смешиваются форматы 123 и 000123, наводить порядок приходится запросом (см. раздел про аудит).
Нумерация элементов справочников: код вместо номера
У справочников нет «номера» — у них есть Код. Логика похожа на документы, но свойств чуть больше, и настраиваются они в конфигураторе.
Ключевое отличие — серии кодов. Они определяют, в каких границах код должен быть уникальным:
| Серия кодов | Где уникален код | Типичный пример |
|---|---|---|
| Во всём справочнике | Один код на весь справочник | Контрагенты, Номенклатура |
| В пределах подчинения | Уникален внутри своей группы | Иерархический справочник с нумерацией по папкам |
| В пределах подчинения владельцу | Уникален внутри владельца | Договоры контрагента, Единицы измерения номенклатуры |
Остальное совпадает с документами: у кода есть тип (строка или число), длина, автонумерация и контроль уникальности. Новому элементу код присваивается при записи; вручную его можно переписать в карточке элемента (поле Код), соблюдая те же правила уникальности и формата.
Если код справочника случайно «уехал» (например, после загрузки данных), не перенумеровывайте весь справочник вручную. В большинстве случаев достаточно очистить код у проблемных элементов и записать их заново — платформа выдаст следующие свободные коды серии.
Дубли, пропуски и сброс нумерации: что с этим делать
Три самые частые жалобы на нумерацию — и причины у них разные.
Отдельно про «сброс нумерации руками». Массовая перенумерация проведённых документов задним числом — опасная операция: меняются печатные формы уже переданных контрагентам документов. Если нужно именно перенумеровать (например, навести порядок после переноса базы), делайте это на копии, по закрытым периодам и с архивной копией базы перед началом.
Нумераторы и установка номера программно
Этот раздел — для тех, кто дорабатывает конфигурацию.
Нумераторы — это объект конфигурации, который позволяет вести общую (сквозную) нумерацию для нескольких видов документов. Если «Приходный ордер» и «Расходный ордер» должны нумероваться в одной последовательности, их привязывают к одному нумератору. Периодичность, длину и контроль уникальности в этом случае задаёт нумератор, а не каждый документ по отдельности.
При программной записи номер присваивается автоматически в момент Записать():
НовыйДок = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
НовыйДок.Дата = ТекущаяДата();
НовыйДок.Организация = Организация;
НовыйДок.Записать(); // здесь документ получит номер
Если номер нужен раньше записи — например, чтобы вывести его в печатную форму или подставить в другой объект, — вызывают метод УстановитьНовыйНомер():
НовыйДок = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
НовыйДок.УстановитьНовыйНомер(); // номер выделен до записи
Сообщить(НовыйДок.Номер);
Методу можно передать префикс строкой: УстановитьНовыйНомер("Э") добавит его перед порядковым номером. У справочников аналогичный метод — УстановитьНовыйКод(), он принимает префикс, родителя и владельца.
Про регистры: у регистров сведений и накопления собственных номеров нет. Записи регистра идентифицируются по измерениям, периоду и регистратору (документу-движению), а не по номеру. Поэтому «нумерация в регистре» на практике сводится к номеру того документа, который делает движения. Если по регистру нужен сквозной порядковый счётчик, его реализуют отдельным реквизитом или нумератором на уровне документа-регистратора.
Нумерация в больших базах: длина, блокировки, скорость
В базах с интенсивным вводом документов нумерация становится узким местом, и вот почему.
Выделение следующего номера — операция последовательная: чтобы выдать номер N+1, платформа должна знать текущий максимум. При одновременной записи многими пользователями на это ставится блокировка, и запись документов начинает «ждать очередь».
Что помогает:
- 🔹 Периодическая нумерация вместо сквозной. Чем короче период (месяц вместо года), тем меньше документов в одной последовательности и тем короче может быть номер.
- 🔹 Короткая длина номера — ровно под годовой (или месячный) объём с запасом, не больше. Это экономит и место, и время сравнения строк.
- 🔹 Разумный контроль уникальности. Полностью отключать его в типовой конфигурации не стоит — именно он защищает от дублей; но понимать, что проверка уникальности тоже стоит ресурсов, полезно.
Прежде чем менять периодичность или длину номера в рабочей конфигурации, оцените влияние на уже существующие документы и снимите архивную копию базы. Это изменение структуры, и проводить его нужно в монопольном режиме, когда пользователи в базе не работают.
Как проверить и свести нумерацию
Чтобы убедиться, что с нумерацией всё в порядке, не нужны сторонние инструменты — хватит консоли запросов (Все функции → Стандартные → Консоль запросов, если она доступна, или внешняя обработка).
Поиск дублей номеров в пределах одного вида документов:
ВЫБРАТЬ
Док.Номер КАК Номер,
КОЛИЧЕСТВО(*) КАК Количество
ИЗ
Документ.РеализацияТоваровУслуг КАК Док
СГРУППИРОВАТЬ ПО
Док.Номер
ИМЕЮЩИЕ
КОЛИЧЕСТВО(*) > 1
Если результат пустой — дублей нет. Если строки есть, смотрите, не смешаны ли документы разных организаций без префиксов или разных узлов РИБ.
Быстрый визуальный аудит доступен и без запросов:
Пропуски номеров в большинстве случаев проверять и «лечить» не нужно: для налоговой и контрагентов важна уникальность и неизменность номера, а не его сплошность. Браться за перенумерацию стоит, только если сплошная нумерация требуется по внутреннему регламенту.
Частые вопросы
Можно ли убрать префикс из номеров документов?
Префикс в карточке организации — новые документы пойдут без него. Ранее записанные документы сохранят старый номер с префиксом, их номер при этом не изменится.Почему два документа имеют одинаковый номер, хотя контроль уникальности включён?
Как сделать сквозную нумерацию без обнуления каждый год?
Будут ли пропуски, если удалить проведённый документ?
Можно ли задать свой номер новому элементу справочника?
Код в карточке элемента до записи. Соблюдайте серию кодов и контроль уникальности — иначе платформа не даст сохранить элемент.