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