Документ не записывается из-за повторного номера: поиск дубля и восстановление нумерации
Содержание
Ошибка значит одно: в базе уже есть документ того же вида с таким же номером в том же периоде нумерации, и платформа отказывается записать второй. Исправление — найти документ-двойник (часто он помечен на удаление или пришёл из другой базы) и развести номера: очистить поле номера у нового документа, чтобы 1С присвоила следующий свободный, либо перенумеровать старый.
Сообщение выглядит так: Значение поля "Номер" не уникально. У справочников то же самое звучит как Значение поля "Код" не уникально. Проблема общая для платформы 1С 8.3, а не для одной конфигурации: она встречается в Бухгалтерии, ЗУП, УТ и в самописных базах.
Откуда берётся конфликт номеров
У каждого вида документа в конфигурации заданы три свойства, которые определяют поведение номера:
- 🔢 Автонумерация — номер присваивается сам при записи.
- 🛡️ Контроль уникальности — платформа не даст записать два документа с одинаковым номером.
- 📅 Периодичность — в пределах какого периода номер должен быть уникален: без ограничения, год, квартал, месяц или день.
В типовых конфигурациях у большинства документов номера уникальны в пределах года. Поэтому «Реализация № 0000-000015» за январь прошлого года и за январь текущего — разные номера, а две реализации с номером 15 в одном году — конфликт.
Автонумерация берёт максимальный номер в периоде с тем же префиксом и прибавляет единицу. Отсюда и типичные причины ошибки:
- ✍️ Номер ввели вручную и совпали с уже существующим документом.
- 🗑️ Документ-двойник помечен на удаление. Помеченный объект физически остаётся в базе и продолжает занимать свой номер, хотя в списке его может быть не видно.
- 🔄 Дубль пришёл через обмен. Две базы с одинаковым префиксом выдали одинаковые номера, а при загрузке второй документ лёг рядом с первым. Ошибка проявляется позже, когда пользователь открывает и пытается перезаписать такой документ.
- 📆 Дату документа перенесли в другой период. Номер 42 был свободен в 2025 году, а после смены даты на 2026 год оказалось, что 42 там уже занят.
- 🏷️ Сменили префикс организации или базы. Новые документы начали нумероваться с другой «шапкой», затем префикс вернули — и счётчик снова наткнулся на занятые номера.
- 💾 Повреждены индексы таблиц (чаще в файловой базе после аварийного выключения). Платформа неверно определяет максимальный номер и раз за разом предлагает уже существующий.
- 🧩 Доработка конфигурации: программист изменил длину номера, периодичность или подключил общий нумератор для нескольких видов документов.
Как найти документ с таким же номером
Начните с самого быстрого — со списка документов.
- Откройте журнал документов того вида, на котором возникла ошибка.
- Включите показ помеченных на удаление: в меню
Ещёнайдите команду показа помеченных объектов. - Наберите номер в строке поиска списка. Ищите только числовую часть без ведущих нулей — так поиск найдёт и номер с другим префиксом.
- Отсортируйте по дате и сверьте год: дубль должен быть в том же периоде нумерации.
- Проверьте все организации. Контроль уникальности работает по виду документа, а не по организации, поэтому двойник может принадлежать соседней фирме с тем же префиксом.
Если в списке пусто, а ошибка остаётся, дубль ищут запросом. Подойдёт любая консоль запросов (внешняя обработка). Пример для документа «Реализация (акт, накладная)» в Бухгалтерии:
ВЫБРАТЬ
Док.Номер КАК Номер,
НАЧАЛОПЕРИОДА(Док.Дата, ГОД) КАК Год,
КОЛИЧЕСТВО(Док.Ссылка) КАК Документов
ИЗ
Документ.РеализацияТоваровУслуг КАК Док
СГРУППИРОВАТЬ ПО
Док.Номер,
НАЧАЛОПЕРИОДА(Док.Дата, ГОД)
ИМЕЮЩИЕ
КОЛИЧЕСТВО(Док.Ссылка) > 1
УПОРЯДОЧИТЬ ПО
Год,
Номер
Замените РеализацияТоваровУслуг на имя нужного документа. Если периодичность у документа квартальная или месячная, поменяйте ГОД на КВАРТАЛ или МЕСЯЦ. Запрос покажет все номера, которые встречаются больше одного раза, — включая помеченные на удаление.
Для справочников запрос строится так же, только группировка идёт по полю Код, а вместо периода — по Родитель, если коды уникальны в пределах группы.
Исправляем нумерацию: от простого к сложному
Способы расположены по возрастанию риска. Переходите к следующему, только если предыдущий не помог.
Способ 1. Отдать номер программе
Самый безопасный вариант для нового документа.
- Откройте документ, который не записывается.
- Очистите поле номера, если оно доступно для редактирования.
- Нажмите
Записать. При пустом номере платформа присвоит следующий свободный номер в периоде.
Если поле номера заблокировано, скопируйте документ: у копии номер будет новым. Исходный незаписанный документ закройте без сохранения.
Способ 2. Перенумеровать двойника
Подходит, когда оба документа нужны — например, один пришёл из филиала.
- Решите, какой документ сохраняет номер. Обычно тот, что раньше ушёл контрагенту на бумаге или по ЭДО.
- У второго документа смените номер вручную на свободный — следующий после максимального в этом году.
- Запишите и перепроведите документ.
Если документ уже отправлен контрагенту или попал в книгу продаж, смена номера рассинхронизирует вашу базу и его. Для счетов-фактур это особенно чувствительно: номер должен совпадать с тем, что получил покупатель.
Способ 3. Удалить помеченные объекты
Если двойник — забытый черновик с пометкой на удаление, удалите его окончательно. В Бухгалтерии 3.0 команда находится в Администрирование → Обслуживание → Корректировка данных → Удаление помеченных объектов.
Удаление помеченных необратимо — перед запуском сделайте резервную копию базы. Обработка проверит ссылки: если на документ что-то ссылается, он останется, и программа покажет, что мешает.
Способ 4. Тестирование и исправление базы
Помогает, когда дублей нет, а ошибка повторяется на каждом новом документе. Это признак сбитых индексов.
- Попросите всех пользователей выйти: для этой операции нужен монопольный доступ, все сеансы будут завершены.
- Сделайте выгрузку базы в
.dtили скопируйте каталог файловой базы. - Запустите Конфигуратор:
Администрирование → Тестирование и исправление. - Отметьте Реиндексация таблиц информационной базы и Проверка логической целостности.
- Запустите проверку и дождитесь сообщения о завершении.
Для клиент-серверной базы на MS SQL или PostgreSQL сначала стоит попросить администратора СУБД перестроить индексы средствами сервера — это быстрее и не требует простоя всей 1С.
Сравнение способов
| Способ | Когда применять | Риски |
|---|---|---|
| Очистить номер у нового документа | Ошибка на одном новом документе | Практически нет |
| Перенумеровать двойника | Оба документа нужны, двойник из обмена | Расхождение с бумагами контрагента |
| Удалить помеченные | Двойник — помеченный черновик | Необратимо без резервной копии |
| Тестирование и исправление | Дублей нет, ошибка на каждом документе | Нужен монопольный доступ, простой базы |
| Правка нумерации в Конфигураторе | Ошибка заложена в доработке | Снятие с поддержки, сложности обновлений |
Префиксы, обмены и справочники с повторными кодами
В типовых конфигурациях на базе БСП номер складывается из нескольких частей: префикс организации, префикс информационной базы и порядковый номер. Префиксы — главный инструмент против дублей между базами и фирмами.
Где их смотреть в Бухгалтерии 3.0:
- 🏢 Префикс организации — в карточке организации (
Главное → Организации), поле «Префикс». - 🖥️ Префикс базы —
Администрирование → Синхронизация данных, поле префикса этой информационной базы.
Правило простое: у каждой базы, участвующей в обмене, префикс свой. Если центральная база и филиал оба выдают номера с одинаковым префиксом, дубли при обмене неизбежны.
Пример из практики. Филиал работал в копии центральной базы, развёрнутой из одной выгрузки .dt. Префикс скопировался вместе с данными, и обе базы выдавали номера одного вида. После настройки обмена в центре появились две «Поступления № 0000-000231» за март. Решение заняло полчаса: филиалу назначили собственный префикс, а 37 загруженных дублей перенумеровали способом 2. Новые документы филиала с тех пор приходят со своим префиксом и с центральными не пересекаются.
Справочники и предопределённые элементы
С кодами справочников история похожая, но есть свои нюансы:
- 📌 Предопределённые элементы создаются платформой и имеют свои коды. После загрузки из другой базы может появиться второй элемент с тем же кодом — обычный, не предопределённый.
- 🔗 Удалять «лишний» элемент сразу нельзя: на него уже могут ссылаться документы. Сначала перенесите ссылки.
Для этого в Бухгалтерии 3.0 есть обработка Администрирование → Обслуживание → Корректировка данных → Поиск и удаление дублей. Она находит похожие элементы, заменяет ссылки на оригинал во всех документах и регистрах, а дубль помечает на удаление. После этого код освобождается.
Если код нужен «просто чтобы записать», очистите поле кода у нового элемента. При записи программа выдаст следующий свободный код — как с номером документа.
Когда помогает очистка кэша
Сам кэш дубли номеров не создаёт. Но бывает так: дубль уже исправлен, база реиндексирована, а у одного пользователя ошибка всё равно вылетает. Это может быть устаревший клиентский кэш метаданных, особенно после обновления конфигурации.
Что делать:
- Закройте 1С на этом компьютере.
- Запустите базу с параметром
/ClearCache. В окне запуска выберите базу, нажмитеИзменить, на последнем шаге впишите параметр в поле дополнительных параметров запуска. - Если не помогло — удалите папки кэша вручную.
Папки кэша лежат здесь:
%APPDATA%\1C\1cv8
%LOCALAPPDATA%\1C\1cv8
Внутри — каталоги с длинными именами-идентификаторами, по одному на базу. Удалять можно только при закрытой 1С. Файлы ibases.v8i и 1cestart.cfg в %APPDATA%\1C\1CEStart не трогайте: в них список баз.
Для серверной базы кэш есть и на сервере 1С. Его очистка требует остановки службы агента сервера — это оборвёт сеансы всех пользователей, поэтому делайте её вне рабочего времени и только если клиентская очистка не помогла.
Как настроить нумерацию, чтобы ошибка не возвращалась
Большинство случаев предотвращается организационно, без программиста.
Если дело в доработке конфигурации
Иногда ошибку закладывает сам программист. Например, сократил длину номера до 6 символов при префиксе в 5 — на числовую часть остаётся одна цифра, и уже десятый документ года упирается в повтор. Или сменил периодичность с «год» на «без ограничения», и старые номера прошлых лет вдруг начали конфликтовать с новыми.
Что проверить в Конфигураторе, в свойствах документа на закладке «Нумерация»:
- длину номера и тип (строка или число);
- периодичность;
- включённый контроль уникальности;
- нумератор: если он общий для нескольких видов документов, номер уникален сразу по всем.
В типовой конфигурации на поддержке менять эти свойства не стоит: объект снимется с поддержки, обновления станут сложнее. Если нестандартная нумерация действительно нужна, её делают в расширении через обработчик установки нового номера.