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