Документ не записывается из-за повторного номера: поиск дубля и восстановление нумерации

· 9 мин

Содержание

Ошибка значит одно: в базе уже есть документ того же вида с таким же номером в том же периоде нумерации, и платформа отказывается записать второй. Исправление — найти документ-двойник (часто он помечен на удаление или пришёл из другой базы) и развести номера: очистить поле номера у нового документа, чтобы 1С присвоила следующий свободный, либо перенумеровать старый.

Сообщение выглядит так: Значение поля "Номер" не уникально. У справочников то же самое звучит как Значение поля "Код" не уникально. Проблема общая для платформы 1С 8.3, а не для одной конфигурации: она встречается в Бухгалтерии, ЗУП, УТ и в самописных базах.

Откуда берётся конфликт номеров

У каждого вида документа в конфигурации заданы три свойства, которые определяют поведение номера:

  • 🔢 Автонумерация — номер присваивается сам при записи.
  • 🛡️ Контроль уникальности — платформа не даст записать два документа с одинаковым номером.
  • 📅 Периодичность — в пределах какого периода номер должен быть уникален: без ограничения, год, квартал, месяц или день.

В типовых конфигурациях у большинства документов номера уникальны в пределах года. Поэтому «Реализация № 0000-000015» за январь прошлого года и за январь текущего — разные номера, а две реализации с номером 15 в одном году — конфликт.

Автонумерация берёт максимальный номер в периоде с тем же префиксом и прибавляет единицу. Отсюда и типичные причины ошибки:

  • ✍️ Номер ввели вручную и совпали с уже существующим документом.
  • 🗑️ Документ-двойник помечен на удаление. Помеченный объект физически остаётся в базе и продолжает занимать свой номер, хотя в списке его может быть не видно.
  • 🔄 Дубль пришёл через обмен. Две базы с одинаковым префиксом выдали одинаковые номера, а при загрузке второй документ лёг рядом с первым. Ошибка проявляется позже, когда пользователь открывает и пытается перезаписать такой документ.
  • 📆 Дату документа перенесли в другой период. Номер 42 был свободен в 2025 году, а после смены даты на 2026 год оказалось, что 42 там уже занят.
  • 🏷️ Сменили префикс организации или базы. Новые документы начали нумероваться с другой «шапкой», затем префикс вернули — и счётчик снова наткнулся на занятые номера.
  • 💾 Повреждены индексы таблиц (чаще в файловой базе после аварийного выключения). Платформа неверно определяет максимальный номер и раз за разом предлагает уже существующий.
  • 🧩 Доработка конфигурации: программист изменил длину номера, периодичность или подключил общий нумератор для нескольких видов документов.

Как найти документ с таким же номером

Начните с самого быстрого — со списка документов.

  1. Откройте журнал документов того вида, на котором возникла ошибка.
  2. Включите показ помеченных на удаление: в меню Ещё найдите команду показа помеченных объектов.
  3. Наберите номер в строке поиска списка. Ищите только числовую часть без ведущих нулей — так поиск найдёт и номер с другим префиксом.
  4. Отсортируйте по дате и сверьте год: дубль должен быть в том же периоде нумерации.
  5. Проверьте все организации. Контроль уникальности работает по виду документа, а не по организации, поэтому двойник может принадлежать соседней фирме с тем же префиксом.

Если в списке пусто, а ошибка остаётся, дубль ищут запросом. Подойдёт любая консоль запросов (внешняя обработка). Пример для документа «Реализация (акт, накладная)» в Бухгалтерии:

ВЫБРАТЬ
    Док.Номер КАК Номер,
    НАЧАЛОПЕРИОДА(Док.Дата, ГОД) КАК Год,
    КОЛИЧЕСТВО(Док.Ссылка) КАК Документов
ИЗ
    Документ.РеализацияТоваровУслуг КАК Док
СГРУППИРОВАТЬ ПО
    Док.Номер,
    НАЧАЛОПЕРИОДА(Док.Дата, ГОД)
ИМЕЮЩИЕ
    КОЛИЧЕСТВО(Док.Ссылка) > 1
УПОРЯДОЧИТЬ ПО
    Год,
    Номер

Замените РеализацияТоваровУслуг на имя нужного документа. Если периодичность у документа квартальная или месячная, поменяйте ГОД на КВАРТАЛ или МЕСЯЦ. Запрос покажет все номера, которые встречаются больше одного раза, — включая помеченные на удаление.

Для справочников запрос строится так же, только группировка идёт по полю Код, а вместо периода — по Родитель, если коды уникальны в пределах группы.

Диагностика: выберите симптом

Исправляем нумерацию: от простого к сложному

Способы расположены по возрастанию риска. Переходите к следующему, только если предыдущий не помог.

Способ 1. Отдать номер программе

Самый безопасный вариант для нового документа.

  1. Откройте документ, который не записывается.
  2. Очистите поле номера, если оно доступно для редактирования.
  3. Нажмите Записать. При пустом номере платформа присвоит следующий свободный номер в периоде.

Если поле номера заблокировано, скопируйте документ: у копии номер будет новым. Исходный незаписанный документ закройте без сохранения.

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

Подходит, когда оба документа нужны — например, один пришёл из филиала.

  1. Решите, какой документ сохраняет номер. Обычно тот, что раньше ушёл контрагенту на бумаге или по ЭДО.
  2. У второго документа смените номер вручную на свободный — следующий после максимального в этом году.
  3. Запишите и перепроведите документ.

Если документ уже отправлен контрагенту или попал в книгу продаж, смена номера рассинхронизирует вашу базу и его. Для счетов-фактур это особенно чувствительно: номер должен совпадать с тем, что получил покупатель.

Способ 3. Удалить помеченные объекты

Если двойник — забытый черновик с пометкой на удаление, удалите его окончательно. В Бухгалтерии 3.0 команда находится в Администрирование → Обслуживание → Корректировка данных → Удаление помеченных объектов.

Удаление помеченных необратимо — перед запуском сделайте резервную копию базы. Обработка проверит ссылки: если на документ что-то ссылается, он останется, и программа покажет, что мешает.

Способ 4. Тестирование и исправление базы

Помогает, когда дублей нет, а ошибка повторяется на каждом новом документе. Это признак сбитых индексов.

  1. Попросите всех пользователей выйти: для этой операции нужен монопольный доступ, все сеансы будут завершены.
  2. Сделайте выгрузку базы в .dt или скопируйте каталог файловой базы.
  3. Запустите Конфигуратор: Администрирование → Тестирование и исправление.
  4. Отметьте Реиндексация таблиц информационной базы и Проверка логической целостности.
  5. Запустите проверку и дождитесь сообщения о завершении.

Для клиент-серверной базы на MS SQL или PostgreSQL сначала стоит попросить администратора СУБД перестроить индексы средствами сервера — это быстрее и не требует простоя всей 1С.

Сравнение способов

СпособКогда применятьРиски
Очистить номер у нового документаОшибка на одном новом документеПрактически нет
Перенумеровать двойникаОба документа нужны, двойник из обменаРасхождение с бумагами контрагента
Удалить помеченныеДвойник — помеченный черновикНеобратимо без резервной копии
Тестирование и исправлениеДублей нет, ошибка на каждом документеНужен монопольный доступ, простой базы
Правка нумерации в КонфигуратореОшибка заложена в доработкеСнятие с поддержки, сложности обновлений

Префиксы, обмены и справочники с повторными кодами

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

Где их смотреть в Бухгалтерии 3.0:

  • 🏢 Префикс организации — в карточке организации (Главное → Организации), поле «Префикс».
  • 🖥️ Префикс базы — Администрирование → Синхронизация данных, поле префикса этой информационной базы.

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

Пример из практики. Филиал работал в копии центральной базы, развёрнутой из одной выгрузки .dt. Префикс скопировался вместе с данными, и обе базы выдавали номера одного вида. После настройки обмена в центре появились две «Поступления № 0000-000231» за март. Решение заняло полчаса: филиалу назначили собственный префикс, а 37 загруженных дублей перенумеровали способом 2. Новые документы филиала с тех пор приходят со своим префиксом и с центральными не пересекаются.

Справочники и предопределённые элементы

С кодами справочников история похожая, но есть свои нюансы:

  • 📌 Предопределённые элементы создаются платформой и имеют свои коды. После загрузки из другой базы может появиться второй элемент с тем же кодом — обычный, не предопределённый.
  • 🔗 Удалять «лишний» элемент сразу нельзя: на него уже могут ссылаться документы. Сначала перенесите ссылки.

Для этого в Бухгалтерии 3.0 есть обработка Администрирование → Обслуживание → Корректировка данных → Поиск и удаление дублей. Она находит похожие элементы, заменяет ссылки на оригинал во всех документах и регистрах, а дубль помечает на удаление. После этого код освобождается.

Если код нужен «просто чтобы записать», очистите поле кода у нового элемента. При записи программа выдаст следующий свободный код — как с номером документа.

Когда помогает очистка кэша

Сам кэш дубли номеров не создаёт. Но бывает так: дубль уже исправлен, база реиндексирована, а у одного пользователя ошибка всё равно вылетает. Это может быть устаревший клиентский кэш метаданных, особенно после обновления конфигурации.

Что делать:

  1. Закройте 1С на этом компьютере.
  2. Запустите базу с параметром /ClearCache. В окне запуска выберите базу, нажмите Изменить, на последнем шаге впишите параметр в поле дополнительных параметров запуска.
  3. Если не помогло — удалите папки кэша вручную.

Папки кэша лежат здесь:

%APPDATA%\1C\1cv8
%LOCALAPPDATA%\1C\1cv8

Внутри — каталоги с длинными именами-идентификаторами, по одному на базу. Удалять можно только при закрытой 1С. Файлы ibases.v8i и 1cestart.cfg в %APPDATA%\1C\1CEStart не трогайте: в них список баз.

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

Как настроить нумерацию, чтобы ошибка не возвращалась

Большинство случаев предотвращается организационно, без программиста.

Профилактика дублей номеров
Выполнено: 0 / 6

Если дело в доработке конфигурации

Иногда ошибку закладывает сам программист. Например, сократил длину номера до 6 символов при префиксе в 5 — на числовую часть остаётся одна цифра, и уже десятый документ года упирается в повтор. Или сменил периодичность с «год» на «без ограничения», и старые номера прошлых лет вдруг начали конфликтовать с новыми.

Что проверить в Конфигураторе, в свойствах документа на закладке «Нумерация»:

  • длину номера и тип (строка или число);
  • периодичность;
  • включённый контроль уникальности;
  • нумератор: если он общий для нескольких видов документов, номер уникален сразу по всем.

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

Частые вопросы

Использует ли 1С номер удалённого документа повторно?
Только если удалили последний документ периода. Автонумерация берёт максимальный номер плюс один, поэтому «дыры» в середине нумерации не заполняются.
Почему в начале года номера снова начинаются с единицы?
У большинства документов типовых конфигураций номер уникален в пределах года. С 1 января счётчик начинается заново, и это штатное поведение.
Могут ли у двух организаций в одной базе быть одинаковые номера документов?
Только если у организаций разные префиксы. Без префиксов документы одного вида нумеруются общим потоком, и совпадение номеров вызовет ошибку.
Нужна ли нумерация без пропусков для налоговой?
Сквозная нумерация без пропусков законом для первичных документов не требуется. Важно, чтобы номер в базе совпадал с номером в документе, переданном контрагенту.
Можно ли просто отключить контроль уникальности?
Технически — в Конфигураторе, но в типовой базе это снимет объект с поддержки и откроет дорогу настоящим дублям в отчётах и книге продаж. Правильнее найти и развести двойников.