Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, баз данных и сетевого оборудования. Перед выполнением действий обязательно создайте резервную копию. При отсутствии необходимой квалификации обратитесь к ИТ-специалистам.

Код ошибки 145 в 1С: Значение поля 'Код' не уникально

Обновлено: 10.09.2026  ·  Официальная база знаний

Механизм автонумерации в 1С и причины сбоя

Ошибка «Значение поля "Код" (или "Номер") не уникально (Код ошибки 145)» возникает в момент попытки записать новый элемент справочника или новый документ в базу данных. В платформе 1С:Предприятие встроен механизм автоматической нумерации: при создании объекта платформа запрашивает последний (максимальный) код/номер в таблице и прибавляет к нему 1. Ошибка 145 происходит, если этот автосгенерированный номер уже существует в базе. Бизнес-риски: блокировка ввода первичных документов, невозможность заведения новой номенклатуры.

Почему сбивается счетчик нумератора?

Причина сбояТехническое объяснение
Ручное изменение кодаПользователь с полными правами вручную изменил код элемента, например с "000010" на "000099". При следующем создании 1С попытается создать "000100". Если элементы 100-110 уже есть, возникнет конфликт.
Обмен данными (РИБ)Из узла прилетел документ с номером, который пересекается с локальной нумерацией (не настроены префиксы узлов).
Изменение длины/типа кодаПрограммист в Конфигураторе изменил длину поля "Код" или поменял его тип с Числа на Строку (или наоборот).

Методы восстановления уникальности нумерации

Сценарий 1: Программное обновление нумераторов (Быстрое решение)

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

 // В любой внешней обработке или в консоли кода выполните:
 // Обновление нумерации для конкретного справочника
ОбновитьНумерациюОбъектов(Метаданные.Справочники.Номенклатура);

 // Обновление нумерации для конкретного документа
ОбновитьНумерациюОбъектов(Метаданные.Документы.РеализацияТоваровУслуг);

 // Глобальное обновление для всей конфигурации (выполняется долго)
ОбновитьНумерациюОбъектов();

Сценарий 2: Поиск и исправление аномального номера (Ручной режим)

Если обновление не помогло, значит в базе реально есть элемент с "кривым" кодом (например, кто-то ввел строковый код "ЯЯЯ999", и 1С не знает, как прибавить к нему единицу).

  1. Откройте список справочника/журнал документов.
  2. Отсортируйте колонку "Код" или "Номер" по убыванию (стрелочка вниз).
  3. Найдите элементы с нестандартными кодами (без ведущих нулей, с русскими буквами вместо английских префиксов).
  4. Вручную измените их коды на правильные или перенумеруйте их с помощью стандартной обработки "Универсальные подбор и обработка объектов".

Типовые ошибки администраторов

  • Отказ от префиксов в распределенных базах: В архитектуре РИБ каждый узел обязан иметь свой уникальный строковый префикс (например, ЦБ00, МГ01). Если префиксы не заданы, базы неизбежно сгенерируют одинаковые номера, и при обмене возникнет Ошибка 145.
В базе 1С постоянный хаос с номерами счетов-фактур и накладных?
Нарушение хронологии нумерации — повод для штрафов со стороны ФНС. Эксперты ITSTM разработают и внедрят строгие правила формирования номеров (с привязкой к организации, году и подразделению) и напишут скрипты автоматической перенумерации прошлых периодов.
Практический опыт инженера: Практика ITSTM: При массовой загрузке данных (Data Migration) из старых систем всегда отключайте автонумерацию на время загрузки и присваивайте номера программно (УстановитьНовыйКод() / УстановитьНовыйНомер()), либо загружайте исходные номера. В конце миграции ОБЯЗАТЕЛЬНО вызывайте ОбновитьНумерациюОбъектов().

Частые вопросы (FAQ)

Почему 1С сама не может найти свободный номер?

Для оптимизации работы СУБД 1С не сканирует всю таблицу в поиске 'дыр'. Она берет максимальное значение (MAX) и инкрементирует его. Если номера 10, 11, 15 заняты, 1С будет создавать 16, 17, оставляя 12, 13, 14 пустыми.

Можно ли отключить контроль уникальности?

В Конфигураторе у Справочника/Документа есть свойство 'Контроль уникальности'. Его можно снять, но это крайне не рекомендуется, так как это сломает логику поиска и ссылочную целостность во многих типовых алгоритмах.

Что означает префикс организации?

В типовых конфигурациях номер состоит из Префикса_Организации + Префикса_Базы + Тире + Самого номера (например, ООБП-000123). Это нужно для раздельной нумерации документов разных юридических лиц внутри одной базы.

Как исправить номер 'вручную', если поле недоступно для редактирования?

В типовых конфигурациях код защищен от изменения. В карточке объекта нажмите 'Еще' -> 'Разрешить редактирование реквизитов' (или 'Изменить номер'). Система выдаст предупреждение, согласитесь и поле разблокируется.