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

Справочники и Данные · 15 мин

Значение поля не уникально в 1С: как исправить ошибку

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

Ошибка «Значение поля "Код" не уникально» (или «Номер не уникален») появляется, когда программа пытается записать элемент справочника или документ со значением, которое уже есть в базе. 1С контролирует уникальность кодов справочников и номеров документов автоматически, но после обменов данными, загрузок из файлов, ручного редактирования кодов или сбоев нумерации контроль даёт сбой — и запись блокируется.

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

Исправить ошибку можно штатными средствами: найти повтор, освободить код или номер, либо перенумеровать объекты. Ниже разобраны причины, пошаговые способы устранения и меры профилактики. Все действия выполняются типовыми инструментами 1С:Предприятие 8.3 и не требуют программирования, за исключением отдельных сложных случаев.

Почему 1С сообщает, что значение поля не уникально

Уникальность кода и номера — встроенное свойство платформы. Для справочников в конфигурации задана длина кода и признак контроля уникальности; для документов аналогично контролируется номер в пределах периода (обычно года). Когда при записи значение совпадает с уже существующим, платформа отклоняет транзакцию и выдаёт сообщение «Значение поля "Код" не уникально» или «Значение поля "Номер" не уникально».

Типовые причины появления дублей:

  • обмен данными между базами (РИБ, обмен с сайтом, синхронизация с другой конфигурацией), когда в обеих базах созданы элементы с одинаковыми кодами;
  • загрузка данных из Excel, DBF или внешних обработок без проверки существующих кодов;
  • ручное изменение кода элемента на уже занятый;
  • сбой автонумерации после восстановления базы, переноса или обновления конфигурации;
  • элемент с нужным кодом помечен на удаление — в списке его не видно при стандартном отборе, но код остаётся занятым;
  • смена префикса базы или настроек нумерации, после чего новые объекты получают номера, пересекающиеся со старыми.

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

Как быстро найти дубль кода или номера

Первый шаг — определить, какой именно объект держит конфликтующее значение. Откройте список справочника или документов и воспользуйтесь поиском: в большинстве конфигураций это команда «Найти» (Ctrl+F) с поиском по коду/номеру, либо поле поиска в шапке списка. Введите значение из сообщения об ошибке.

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

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

Ошибка при записи нового элементаКод занят существующим или помеченным объектом

Поиск по коду с включённым показом помеченных на удаление

Ошибка после обмена или загрузкиМассовые дубли из внешнего источника

Сколько элементов загружено, есть ли дубли по нескольким кодам

Ошибка только у документовСбита нумерация в пределах периода

Максимальный номер документа за текущий год и префикс нумерации

Ошибка у одного пользователяУникальность контролируется для всех, проблема общая

Проверить запись того же объекта под другим пользователем

Способ 1. Освободить код помеченного или ненужного элемента

Если дубль — это помеченный на удаление объект, который реально не нужен, самый чистый путь — удалить его физически. В типовых конфигурациях для этого служит обработка «Удаление помеченных объектов» (раздел «Администрирование» — «Обслуживание» в конфигурациях на БСП, либо «Операции» — «Удаление помеченных объектов»). После физического удаления код освобождается, и новый элемент записывается без ошибки.

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

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

Способ 2. Изменить код или номер нового объекта

Самый безопасный вариант, когда дубль — действующий, нужный элемент: не трогать существующие данные, а присвоить новому объекту другой код. Откройте карточку записываемого элемента, очистите поле «Код» и нажмите «Записать» — при включённой автонумерации платформа сама присвоит следующее свободное значение. Либо введите код вручную, заведомо выходящий за занятый диапазон.

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

Быстрое исправление для одного объекта
  1. 1
    Скопируйте значение кода или номера из текста ошибки
  2. 2
    Найдите объект с этим значением через поиск, включив показ помеченных на удаление
  3. 3
    Определите, какой из двух объектов лишний: новый или найденный
  4. 4
    Измените код лишнего объекта на свободный либо удалите помеченный объект через штатное удаление помеченных
  5. 5
    Повторно запишите исходный объект и убедитесь, что ошибка исчезла

Способ 3. Массовое исправление при большом числе дублей

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

Обработка «Поиск и удаление дублей» особенно полезна после обменов: она не просто меняет коды, а схлопывает дубли в один элемент, перенося все ссылки из документов. Это сохраняет отчётность и историю. Перед объединением внимательно проверьте список пар — автоматика может предложить объединить разные по смыслу элементы со схожими наименованиями.

Для восстановления нумерации документов после переноса данных применяют обработки перенумерации (в том числе «Универсальный подбор и обработка объектов» с ИТС или аналогичные). Они последовательно переприсваивают номера в хронологическом порядке. Запускайте такие обработки только в монопольном режиме и после резервного копирования: перенумерация меняет данные, на которые могут ссылаться печатные формы и внешние отчёты.

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

Ручная смена кода

Подходит для 1–3 конфликтов; полностью контролируется, но не масштабируется

Удаление помеченных объектов

Освобождает коды ненужных элементов; не работает, если на объект есть ссылки

Поиск и удаление дублей

Лучший вариант после обменов: объединяет элементы с заменой ссылок; требует проверки пар вручную

Перенумерация обработкой

Для системного сбоя нумерации; рискованно без копии, меняет номера уже использованных документов

Особые случаи: обмены, префиксы и сбитая нумерация

Дубли после обмена РИБ или синхронизации

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

Нумерация документов сбилась после переноса

Признак: новый документ получает номер, который уже есть в журнале текущего года. Причина — счётчик нумерации ориентируется на максимальный номер, и если перенос выполнялся с обрезанием или в другом порядке, счётчик «отстал». Лечение: найдите максимальный номер за период, создайте новый документ, вручную впишите следующий номер и запишите. Дальнейшая автонумерация пойдёт корректно. Если номера содержат буквенные префиксы, учитывайте, что сравнение идёт в лексикографическом порядке — «9» может оказаться «больше» «10».

Уникальность по другому полю

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

Профилактика: как не допустить повторения ошибки

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

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

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

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

Как проверить, что проблема решена

После исправления выполните контрольную проверку. Запишите объект, вызывавший ошибку, — сообщение о неуникальности не должно появиться. Создайте ещё один новый элемент того же справочника или документ того же вида: ему должен присвоиться следующий свободный код или номер без ручного вмешательства.

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

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

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

Запись проблемного объекта
Норма

Объект записывается и проводится без сообщений

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

Ошибка неуникальности появляется снова — дубль не найден или есть ещё один

Автонумерация новых объектов
Норма

Присваивается следующий свободный код/номер

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

Присваивается занятое значение — счётчик нумерации не восстановлен

Обмен данными после чистки дублей
Норма

Протокол без ошибок коллизий и неуникальности

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

Новые конфликты — префиксы баз совпадают или дубли остались

Ссылки на объединённые элементы
Норма

Документы открываются, ссылаются на оставшийся элемент

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

Битые ссылки вида «Объект не найден» — объединение выполнено некорректно

Если после всех действий ошибка сохраняется, а дубль не находится штатными средствами, вероятны повреждения на уровне таблиц базы. В этом случае выполните тестирование и исправление информационной базы через конфигуратор («Администрирование» — «Тестирование и исправление») с предварительной копией, отметив проверку логической и ссылочной целостности. Если и это не помогает — привлекайте специалиста по 1С: дальнейшие самостоятельные действия с таблицами СУБД требуют опыта и рискованны.

Итог

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

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

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

Почему код не занят ни одним элементом в списке, а 1С всё равно выдаёт ошибку?

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

Можно ли вообще отключить контроль уникальности кода?

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

Ошибка возникает при проведении документа, а не при записи справочника. Это то же самое?

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

Чем опасна перенумерация документов обработкой?

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

После объединения дублей часть документов показывает «Объект не найден». Что делать?

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

Ошибка появляется только при обмене с другой базой, в самой базе всё записывается нормально. В чём причина?

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