Ошибка уникальности кода 1с

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

Но есть особые случаи, когда такой способ решения проблемы не поможет: например, когда диапазон номеров, выделенных для данного справочника, закончился. В этом случае текст ошибки будет выглядеть так: «Значение 999 поля код не уникально». В этом случае рекомендуется выполнить следующие действия:

  1. Попытаться высвободить свободные коды, удалив помеченные на удаление объекты;
  2. Затем, выполнить процедуру перенумерации объектов (справочника, плана видов характеристик и т.п.) и вызвать программно метод ОбновитьНумерациюОбъектов() для проблемного объекта метаданных;
  3. Если не помогло, увеличить в конфигураторе длину кода объекта метаданных (справочника, плана видов характеристик и т.п.) и также программно вызвать метод ОбновитьНумерациюОбъектов() для проблемного объекта метаданных;

Поделиться страницей в соц.сетях

Попробуем разобраться, почему появляется и как исправить ошибку: значение поля Код не уникально при обновлении 1С 8.3 (разновидности ошибки могут быть со значениями 002024, 002071 либо другими).

Она появляется когда мы создадим новый документ в 1с 8.3. Cистема присваивает новое значение элементу в автоматически, то есть в режиме автонумерации.

При этом, она не позволяет произвести сохранение объекта. Причина кроется в ошибочной нумерации в справочнике. Такая ситуация возникает в момент, когда пользователь, в ручном режиме, пытается отредактировать поле «Код» в элементах справочника.

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

Справочник в 1С имеет определенный принцип собственной нумерации. Код состоит из числового префикса  предшествующего элемента на единицу больше. Представим, что код справочника представляет собой четыре цифры. Во всех элементах ставится префикс «А». Оставшиеся три символа отданы под числа, являющиеся составной частью кода.

В случае, если вручную элементу справочника будет присвоено значение «А999», при попытке создания следующего элемента отобразится ошибка «значение 999 поля код не является уникальным».

Причина заключается в том, что система пытается прибавить единицу к числу 999, но для получающегося в результате прибавления значения «А1000» не достает разрядов.

Данный вид ошибки может проявиться не сразу. Например, пользователь создал значение «А985». В таком случае, сообщение об не уникальном коде появиться на пятнадцатом по счету элементе, после упомянутого.

Решение проблемы заключается в поиске ошибочно пронумерованного элемента и исправления его на адекватный. Этот способ подразумевает смену нумерации кода и у всех последующих за ним элементов.

Упростить задачу, можно используя автоматическую обработку справочника, исправляющую коды нужных элементов, об этом ниже.

Наши постоянные клиенты по 1С:

Корона Лифт

Гознак

Накфф

Рембаза

Rozara

Как починить?

Для устранения используем обработку вида «УниверсальныеПодборкиИОбработкаОбъектов» (нужен диск ИТС).

Выберем вкладку «Перенумерация объектов». Нужно указывается наименование настройки и стартовое значени, с которого нужно нумеровать. Нажать «Выполнить» и запустить обработки нумерации. Все должно работать!

Исправление ошибки - значение поля код не уникально с помощью перенумерации

Если все же ошибку устранить не получается — звоните мы поможем!

  • Стоимость работ специалистов IT Rush — 2000 руб./час
  • Абонемент от 50 часов в месяц – 1900 руб./час
  • Абонемент от 100 часов в месяц – 1800 руб./час

Нам доверяют:

Такая ошибка возникает при добавлении нового элемента справочника, система автоматически присваивает элементу новый “Код”, но не дает сохранить объект.

Причиной является неправильная нумерация в справочнике. Происходит это когда пользователи вручную редактирует поле “Код” в элементах справочника.

Принцип нумерации справочника в 1С такой:

Код = Префикс+числовой код предыдущего элемента + 1.

Допустим код справочника состоит из 4-х символов, есть префикс “А” — он ставиться во всех элементах, остальные 3 знака используются под числовую составляющую кода. Если пользователь изменит код любого элемента справочника на “А999”, то при создании следующего элемента возникнет ошибка Значение поля “Код” не уникально, потому что система пытается прибавить к числовой составляющей кода единица, но разрядов для создания элемента с кодом А1000 не хватает. Такого рода ошибки могут всплыть не сразу, например если пользователь изменить код какого нибудь элемента на А990, то не уникальный код появится на десятом созданном впоследствии элементе.

Решить проблему можно, либо найдя неверно пронумерованный элемент и исправив его “Код” на корректный(а также перенумеровав все созданные после него элементы), либо если вручную эту работу проделать невозможно, то можно воспользоваться обработкой УниверсальныеПодборИОбработкаОбъектов (скачать можно по ссылке), при помощи нее перенумеровав все элементы справочника

 +3 

   

Распечатать

Значение поля Код не уникально или Значение поля Номер не уникально

При работе в 1С, особенно когда много документов или номера редактируются ручками, можно получить ошибки вида:

Значение поля «Код» не уникально или Значение поля «Номер» не уникально 

Что делать? Перенумеровывать )

Нужно восстановить нумерацию документов или элементов справочника:

Пользователю

Посмотрите: Перенумерация документов, справочников, и сама Обработка Универсальные подбор и обработка объектов

 Сбилась автонумерация у документа или справочника с текстовым кодом, что делать?

Программисту:

Посмотрите примеры выше и дополнительно: Как сбросить счётчик нумерации документов или справочников

В модуле ПередЗаписью() дописать функционал проверки:

Код 1C v 8.х


//Проверим текущий номер документа и установим новый если он занят
Если НомерЗанят(Номер) Тогда
УстановитьНовыйНомер();
КонецЕсли;

//функция НомерЗанят() по функционалу очень проста
// в вашей ситуации возможно ее придется изменить
Функция НомерЗанят(НомерДока)
Результат = Ложь;
Попытка
Запрос = Новый Запрос;
Запрос.Текст = «ВЫБРАТЬ
| Документ_.Номер
|ИЗ
| Документ.Документ КАК Документ_
|ГДЕ
| Документ_.Номер =НомерДока
| И Не Документ_.Ссылка =ТекДок»;
Запрос.УстановитьПараметр(«НомерДока», НомерДока);
Запрос.УстановитьПараметр(«ТекДок», Ссылка);
Результат = не Запрос.Выполнить().Пустой();
Исключение
КонецПопытки;
возврат Результат;
КонецФункции //НомерЗанят()

Значение «00080134» поля «Код» не уникально ☑ 0

bebibo

02.02.22

14:17

Всем привет!

Есть рабочая серверная база. Снимаю с неё копию и загружаю в серверную тестовую базу.

При создании ЛЮБОГО документа в тестовой базе возникает ошибка Значение поля «Код» не уникально. В рабочую захожу — всё работает хорошо — ошибок нет. Как такое может быть?

Временные файлы удаляли, тестирование и исправление делали

1

lubitelxml

02.02.22

14:18

ОбновитьНумерациюОбъектов делали?

2

shuhard

02.02.22

14:19

(0)[Как такое может быть? ] легко

ты же нумерацию объектов не сбросил

3

pechkin

02.02.22

14:19

(1) когда же наконец в бсп встроят

4

ДенисЧ

02.02.22

14:23

(3) А зачем? Я, например, у себя во всех конфигурациях сам вставил…

5

acht

02.02.22

14:29

(3) Когда оно в режиме разделения данных работать научится

6

pechkin

02.02.22

14:31

(4) там можно дойти до того вообще все с 0 писать

7

1Сергей

02.02.22

14:51

(4) по расписанию бахает?

8

ДенисЧ

02.02.22

14:53

(7) При старте проверяет, что это копия и тогда бахает.

9

1Сергей

02.02.22

14:56

(8) у меня очень редко, но в боевой базе слетает нумерация

10

ДенисЧ

02.02.22

15:04

(9) Ну если очень редко — то можно и руками ткнуть.

11

bebibo

02.02.22

15:07

(1) Делали, помогло. Но слетели все документы. Интересно почему просто…

12

Chai Nic

02.02.22

15:10

Как вообще можно «обновлять нумерацию» просто так, если номер документа — это значимый и где-то важный реквизит? А первичку бумажную тоже перепечатывать при этом? Хрень какая-то. Вообще, в восьмерке и к номеру и к дате какое-то неадекватно расслабленное отношение. Например, время документа может двигаться само по себе при проведении, для обеспечения последовательности.

13

bebibo

02.02.22

15:14

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

14

ДенисЧ

02.02.22

15:15

(12) Обновление нумерации — это не перенумерация. Это сброс счётчика номеров и установка его на последний использованный номер.

15

Garikk

02.02.22

15:20

(13) это черещ sql бекап грузишь и так получается?

16

Lama12

02.02.22

15:24

(15) Скорее всего на сервере приложений кэш не чистили. А удаление базы чистит серверных кэш.

17

1Сергей

02.02.22

15:31

(16) +1

(14) +1

(11) Что значит «слетели все документы»?

18

bebibo

02.02.22

15:41

(15) Да

19

bebibo

02.02.22

15:42

(17) НУмерация то есть слетела, у всех документов

20

acht

02.02.22

15:56

(13) Нет там никакого «кэша»…

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

А когда вы базу добавляете/удаляете, она считается новой, соответственно никакого состояния нумераторов для этой базы нет.

21

Chai Nic

02.02.22

15:59

(14) А, понял, пардон

22

Garikk

02.02.22

16:00

(20) < хранится в потрохах сервера приложений, ни в каком не в «кэшэ».>

как бы странно это не звучало, но вы как раз это и описали, ‘потроха сервера’ и есть кэш относительно БД

23

Garikk

02.02.22

16:02

и он должен лежать гдето физически в т.ч., чтобы если провод из розетки выдернули у сервера, у нумераторов кукушка не уехала сразу после включения

вообще интересно, в (0) <Временные файлы удаляли>

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

===

я мож чёто уже забыл…давно не трогал одинесину

24

acht

02.02.22

16:34

(22) > и есть кэш

Нет. Эти данные, хотя и могут быть сброшены на диск в ходе работы, но при рестарте сервера они не перечитываются, а создаются заново по текущему состоянию SQL базы.

25

acht

02.02.22

16:37

(23) > если провод из розетки выдернули у сервера

То от него отваливаются все сеансы.

И информация о том, что номер 123 был зарезервирован за РН сеанса №5, становится бессмысленной.

Понравилась статья? Поделить с друзьями:
  • Ошибка узи при замершей беременности форум
  • Ошибка торрента недостаточно места на диске
  • Ошибка универсальный аудиодрайвер как исправить
  • Ошибка узел проявки не установлен ecosys m2035dn
  • Ошибка торрента невозможно сохранить