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

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

Как убрать нули в номере документа 1С

Как убрать ведущие нули в номере документа 1С: настройка нумератора, периодичность, префиксы, обработка номеров и обновление нумерации без потери данных.

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

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

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

Почему 1С добавляет нули в номер документа

В типовых конфигурациях номер документа имеет фиксированную длину, например 11 символов. Если реальный порядковый номер короче, платформа дополняет его нулями слева: «00000000001», «00000000125» и так далее. Это нужно для корректной строковой сортировки — без нулей номер «2» оказывался бы после номера «10».

Дополнительно в номер может входить префикс организации или информационной базы (например, «BP00-000123»), который используется при обмене данными между базами. Длина номера, префикс и периодичность нумерации задаются в метаданных документа и в механизме нумераторов.

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

Способ 1. Уменьшить длину номера в настройках конфигурации

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

Учтите ограничение: при длине 6 символов без префикса доступно не более 999999 номеров за период нумерации. Если документов в год больше — номера исчерпаются, и платформа начнёт выдавать ошибки уникальности. Оцените годовой объём документов перед изменением.

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

Способ 2. Обновить нумерацию документов штатной обработкой

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

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

Если штатной команды нет, задачу решает универсальная обработка перенумерации (такие обработки широко распространены) либо небольшой код на встроенном языке, который перебирает документы и присваивает номера заново через объект «Нумератор» или прямое присвоение.

Порядок безопасной перенумерации
  1. 1
    Сделайте резервную копию базы и убедитесь, что она восстанавливается
  2. 2
    Проведите тест на копии: перенумеруйте небольшой период и проверьте ссылки и печатные формы
  3. 3
    В рабочей базе завершите сеансы пользователей или выполняйте операцию в нерабочее время
  4. 4
    Запустите обновление нумерации за выбранный период
  5. 5
    Проверьте уникальность номеров, обмены данными и печатные формы

Способ 3. Убрать нули только при выводе: печать и выгрузка

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

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

bsl
Функция УбратьНули(НомерСтрокой)
  Пока СтрДлина(НомерСтрокой) > 1 И Лев(НомерСтрокой, 1) = "0" Цикл
    НомерСтрокой = Сред(НомерСтрокой, 2);
  КонецЦикла;
  Возврат НомерСтрокой;
КонецФункции

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

Способ 4. Настроить префикс и периодичность нумерации

Иногда проблема не в нулях как таковых, а в громоздком номере целиком: префикс базы плюс длинная числовая часть. Проверьте настройки префиксации в разделе администрирования (в типовых — «Администрирование» → «Синхронизация данных» / «Префиксы номеров»). Укороченный или пустой префикс в однобазовой работе делает номер читаемее.

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

Сравнение подходов

Уменьшение длины номера в конфигураторе

Решает проблему системно, но требует изменения конфигурации и риск исчерпания номеров

Обновление нумерации обработкой

Приводит существующие номера к новому виду, но затрагивает данные и требует копии базы

Удаление нулей при выводе

Самый безопасный: данные не меняются, но нули остаются в самой базе

Настройка префикса и периодичности

Упрощает номер в целом, но не убирает нули полностью

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

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

Практический тест: создайте новый документ, проверьте присвоенный номер; найдите документ по номеру через поиск в журнале; сформируйте печатную форму; при наличии обмена — выполните тестовую синхронизацию и сверьте номера на обеих сторонах.

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

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

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

Присваивается автоматически, без ошибок уникальности

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

Ошибка «Номер не уникален» или пустой номер

Поиск документа по номеру
Норма

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

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

Поиск не находит существующие документы

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

Номера совпадают на обеих сторонах, нет задвоений

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

Дубли документов или ошибки сопоставления

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

Номер выводится без лишних нулей

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

Нули остались или номер обрезан некорректно

Типичные ошибки при работе с нумерацией

Типичные ошибки
01
Изменение длины номера без резервной копии — при ошибке восстановить прежние номера сложно
02
Ручное редактирование номеров в рабочей базе без блокировки пользователей — приводит к дублям
03
Уменьшение длины без учёта годового объёма — номера исчерпываются раньше конца периода
04
Удаление нулей в самой базе при активном обмене — расхождение номеров между базами и коллизии
05
Правка печатной формы без теста на номерах с префиксом — префикс обрезается вместе с нулями

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

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

FAQ

Можно ли убрать нули без доступа к конфигуратору?

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

Что будет со старыми документами после уменьшения длины номера?

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

Исчезнут ли нули, если просто изменить номер документа вручную?

Нет. При следующем автоматическом присвоении платформа снова дополнит номер нулями до заданной длины. Ручная правка отдельных номеров к тому же создаёт риск дублей.

Опасно ли убирать нули при работающем обмене с другой базой?

Да, это самая рискованная ситуация. Номера участвуют в сопоставлении объектов, и их изменение может привести к задвоению документов. Сначала тестируйте на копиях обеих баз и согласуйте изменения с администратором второй системы.

Как убрать нули в номере, который содержит префикс, например «БП00-000123»?

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

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

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

Итог

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

Нули в номере — следствие фиксированной длины номера в нумераторе. Безопаснее всего убирать их при выводе (печать, выгрузка). Системное решение — уменьшение длины номера и обновление нумерации — требует резервной копии, проверки годового объёма документов и контроля обменов данными.