Ошибка возникает при создании нового документа. При записи программа 1С 8.3 автоматически присваивает элементу новый номер, но сохранить новые данные не может, где-то в журнале документов уже есть объект с таким же номером.
Причиной этой ошибки чаще всего служит ручное исправление номеров документов.
Программа 1С сообщает пользователю, что номер 0000-0006 уже существует.
Нумерация документов в программе осуществляется автоматически. При этом, каждому новому документу присваивается номер в хронологическом порядке, который состоит из определенного количества цифр.
В 1С:Бухгалтерия предприятия 3.0, номер состоит из двух частей:
- префикс информационной базы — может быть задан, если есть обмен с другими базами 1С;
- сам номер документа.
В том случае, если пользователь начинает изменять нумерацию вручную или случайно изменил номер, сбив при этом нумерацию документов, программа продолжает нумерацию от номера, содержащего меньшее количество знаков. Изначально, мы видим, что в 1С заложено для номера документа:
- 4 позиции для префикса;
- 6 позиций под номер.
Таким образом, сам номер может принимать значение от 0000-000001 до 0000-999999. Если пользователь вручную сокращает длину номера, то она продолжает нумерацию от нового значения. При внесении изменения в префикс, нумерация все равно продолжается от последнего номера, содержащего наименьшее количество знаков. В нашем примере при сбое в нумерации она продолжилась, используя под номер 4 знака: 0000-0005, 0000-0006 и т.д.
В базе уже есть номер 0000-0006, поэтому при попытке ввести его повторно, программа выдаст сообщение о том, что значение поля номер 0000-0006 не уникально.
Рассмотрим ситуацию далее.
Что произойдет, если пользователь сократит числовой резерв для номера до двух или, куда хуже, до одного знака?
Программа 1С будет присваивать номера до тех пор, пока не будет пройден последний максимальный номер. Например, изменив вручную в документе номер на 0000-01, программа сможет автоматически присвоить всего 99 номеров. После номера 0000-99 возможность автоматической нумерации документов закончится и придется каждый раз исправлять номер вручную
После номера 0000-99 при вводе каждого нового документа будет выдаваться сообщение, что значение номера 0000-99 не уникально.
Когда пользователь сокращает длину номера документа (договора и т.п.) — это приводит к сбою нумерации. Поэтому, если возникает необходимость изменить номер документа вручную, надо использовать максимально допустимое число символов.
Как поступить в случае появления такой ошибки? В первую очередь, необходимо просмотреть нумерацию документов. В случае, если исправленных документов было не много, значение номера можно изменить вручную, добавив нужное количество нулей перед значением. При попытке изменить номер, программа выдаст сообщение о редактировании номера, на что мы отвечаем:
- Продолжить редактирование — Да.
После этого добавляем нули перед значением номера.
После приведения в порядок нумерации, ошибка появляться не будет.
Если исправлений в номерах было много, то можно воспользоваться обработкой для автоматической перенумерации объектов.
См. также:
- Нарушение целостности системы 1С
- Конфигурация базы данных не соответствует сохраненной конфигурации 1С
- Регистрация конфигурации в центре лицензирования не выполнена: как убрать
- Внутренняя ошибка компоненты dbeng8: как исправить
- Конфликт блокировок при выполнении транзакции 1С 8.3: как исправить
Если Вы еще не являетесь подписчиком системы БухЭксперт8:
Активировать демо-доступ бесплатно →
или
Оформить подписку на Рубрикатор →
После оформления подписки вам станут доступны все материалы по 1С Бухгалтерия, записи поддерживающих эфиров и вы сможете задавать любые вопросы по 1С.
Подписывайтесь на наши YouTube и Telegram чтобы не пропустить
важные изменения 1С и законодательства
Помогла статья?
Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно
Урок №15 Значение поля «КОД» не уникально
(урок подготовлен на основании релиза *.0251)
Вернуться к содержанию уроков
Рано или поздно вы можете столкнуться с такой вот «проблемой» — Значение поля «КОД» не уникально
— что это значит ? А это значит одно из двух или вы пытаетесь записать объект с КОДОМ который уже имеется в вашей базе…
но позвольте — в карточке товара (справочник «Номенклатура») нет на виду поля КОД, что делать ?
У каждого объекта (справочник, документ) может быть уникальным поле КОД и программа строго следит за их неповторяемостью.
Но, если вы вспомните — то вы сами никогда не вводили КОД в номенклатуре, никогда не ставил НОМЕР(код) документа следующий…
Как же так ?
Все очень; просто , на этапе программирования — программе дали указание — АВТОНУМЕРАЦИЯ (т.е. код следующий по порядку присваивается самой программой)
А почему перестала работать АВТОНУМЕРАЦИЯ ?
А вот с этим нужно разбираться — случаи бывают разные !
1. На 99 % кто то «залез ручками» не туда куда следовало (загрузка кодов внешней обработкой например)
откроем форму списка «Справочника Номенклатура» — отключим иерархию — чтобы группы и элементы были в общем списке
Обязательно — добавим сортировку по КОДУ
и теперь листая справочник сверху вниз — мы найдет — коды которые «отличаются» от других
в данном пример , код «999» код справочника у нас «СТРОКА» и программа не может придумать «1000» она всегда будет присваивать «999» ,а он уже занят и поэтому будет ошибка!
1 вариант решения — просто исправить код на правильный и восстановить последовательность кодов (автонумерация будет работать дальше)
Открываем карточку — кликаем по полю НАИМЕНОВАНИЕ (для редактирование кода)
и пишем следующий ПРАВИЛЬНЫЙ КОД по списку (по возрастанию)
а теперь проверим — автонумерация восстановлена. Все работает как нужно.
А если, если — мы много много товара загрузили с «неправильными кодами» — все менять не времени , ни желания уже нет (((
Ничего страшно.
Открываем Служебные » РИБ — обмен между складами» (даже если вы не работаете с РИБ)
и у Центральной (ТЕКУЩАЯ база (иконка с шариком) меняем префикс (для справочников или для документов)
Сохраняем и проверяем. Программа начала новый отсчет !
Но, иногда бывает «код или номер» залипают — массовое удаление, структура базы была повреждена, восстановление бекапа из архива…
первый признак — номер документа постоянно один и то же присваивается для НОВОГО документа и не дает записать (только если вручную код изменить)
Нужно скачать и запустить обработку — нажать Выполнить. Подождать. Все должно восстановиться в рабочий режим.
Скачать обработку «Обновить нумерацию объектов»
Обновить нумерацию объектов (2.85 Кбайт)
Начиная с *.0262 релиза — данная обработка в составе конфигурациии
теперь одним кликом — если у вас есть права АДМИНИСТРАТОРА
(и не нужно никого звать и решать данную «проблему»)
ГЛАВНОЕ ОКНО — АДМ.ПАНЕЛЬ
Приятного пользования!
Вернуться к содержанию уроков
Попробуем разобраться, почему появляется и как исправить ошибку: значение поля Код не уникально при обновлении 1С 8.3 (разновидности ошибки могут быть со значениями 002024, 002071 либо другими).
Она появляется когда мы создадим новый документ в 1с 8.3. Cистема присваивает новое значение элементу в автоматически, то есть в режиме автонумерации.
При этом, она не позволяет произвести сохранение объекта. Причина кроется в ошибочной нумерации в справочнике. Такая ситуация возникает в момент, когда пользователь, в ручном режиме, пытается отредактировать поле «Код» в элементах справочника.
Справочник в 1С имеет определенный принцип собственной нумерации. Код состоит из числового префикса предшествующего элемента на единицу больше. Представим, что код справочника представляет собой четыре цифры. Во всех элементах ставится префикс «А». Оставшиеся три символа отданы под числа, являющиеся составной частью кода.
В случае, если вручную элементу справочника будет присвоено значение «А999», при попытке создания следующего элемента отобразится ошибка «значение 999 поля код не является уникальным».
Причина заключается в том, что система пытается прибавить единицу к числу 999, но для получающегося в результате прибавления значения «А1000» не достает разрядов.
Данный вид ошибки может проявиться не сразу. Например, пользователь создал значение «А985». В таком случае, сообщение об не уникальном коде появиться на пятнадцатом по счету элементе, после упомянутого.
Решение проблемы заключается в поиске ошибочно пронумерованного элемента и исправления его на адекватный. Этот способ подразумевает смену нумерации кода и у всех последующих за ним элементов.
Упростить задачу, можно используя автоматическую обработку справочника, исправляющую коды нужных элементов, об этом ниже.
Наши постоянные клиенты по 1С:
Как починить?
Для устранения используем обработку вида «УниверсальныеПодборкиИОбработкаОбъектов» (нужен диск ИТС).
Выберем вкладку «Перенумерация объектов». Нужно указывается наименование настройки и стартовое значени, с которого нужно нумеровать. Нажать «Выполнить» и запустить обработки нумерации. Все должно работать!
Если все же ошибку устранить не получается — звоните мы поможем!
- Стоимость работ специалистов IT Rush — 2000 руб./час
- Абонемент от 50 часов в месяц – 1900 руб./час
- Абонемент от 100 часов в месяц – 1800 руб./час
Нам доверяют:
Ошибка возникает при создании нового документа. При записи программа 1С 8.3 автоматически присваивает элементу новый номер, но сохранить новые данные не может, где-то в журнале документов уже есть объект с таким же номером.
Причиной этой ошибки чаще всего служит ручное исправление номеров документов.
Содержание
- Значение поля «Номер» не уникально 1с 8.3
- В чем причина появления данной ошибки?
- Как исправить ошибку «Код не уникален»?
- Как предотвратить появление ошибки «Код не уникален»?
- Нам доверяют:
- Новые записи:
Значение поля «Номер» не уникально 1с 8.3
Программа 1С сообщает пользователю, что номер 0000-0006 уже существует.
Нумерация документов в программе осуществляется автоматически. При этом, каждому новому документу присваивается номер в хронологическом порядке, который состоит из определенного количества цифр.
В 1С:Бухгалтерия предприятия 3.0, номер состоит из двух частей:
- префикс информационной базы — может быть задан, если есть обмен с другими базами 1С;
- сам номер документа.
В том случае, если пользователь начинает изменять нумерацию вручную или случайно изменил номер, сбив при этом нумерацию документов, программа продолжает нумерацию от номера, содержащего меньшее количество знаков. Изначально, мы видим, что в 1С заложено для номера документа:
- 4 позиции для префикса;
- 6 позиций под номер.
Таким образом, сам номер может принимать значение от 0000-000001 до 0000-999999. Если пользователь вручную сокращает длину номера, то она продолжает нумерацию от нового значения. При внесении изменения в префикс, нумерация все равно продолжается от последнего номера, содержащего наименьшее количество знаков. В нашем примере при сбое в нумерации она продолжилась, используя под номер 4 знака: 0000-0005, 0000-0006 и т.д.
В базе уже есть номер 0000-0006, поэтому при попытке ввести его повторно, программа выдаст сообщение о том, что значение поля номер 0000-0006 не уникально.
Рассмотрим ситуацию далее.
Что произойдет, если пользователь сократит числовой резерв для номера до двух или, куда хуже, до одного знака?
Программа 1С будет присваивать номера до тех пор, пока не будет пройден последний максимальный номер. Например, изменив вручную в документе номер на 0000-01, программа сможет автоматически присвоить всего 99 номеров. После номера 0000-99 возможность автоматической нумерации документов закончится и придется каждый раз исправлять номер вручную
После номера 0000-99 при вводе каждого нового документа будет выдаваться сообщение, что значение номера 0000-99 не уникально.
Когда пользователь сокращает длину номера документа (договора и т.п.) — это приводит к сбою нумерации. Поэтому, если возникает необходимость изменить номер документа вручную, надо использовать максимально допустимое число символов.
Как поступить в случае появления такой ошибки? В первую очередь, необходимо просмотреть нумерацию документов. В случае, если исправленных документов было не много, значение номера можно изменить вручную, добавив нужное количество нулей перед значением. При попытке изменить номер, программа выдаст сообщение о редактировании номера, на что мы отвечаем:
- Продолжить редактирование — Да.
После этого добавляем нули перед значением номера.
После приведения в порядок нумерации, ошибка появляться не будет.
Если исправлений в номерах было много, то можно воспользоваться обработкой для автоматической перенумерации объектов.
См. также:
- Нарушение целостности системы 1С
- Конфигурация базы данных не соответствует сохраненной конфигурации 1С
- Регистрация конфигурации в центре лицензирования не выполнена: как убрать
- Внутренняя ошибка компоненты dbeng8: как исправить
- Конфликт блокировок при выполнении транзакции 1С 8.3: как исправить
Если Вы еще не являетесь подписчиком системы БухЭксперт8:
Активировать демо-доступ бесплатно →
или
Оформить подписку на Рубрикатор →
После оформления подписки вам станут доступны все материалы по 1С Бухгалтерия, записи поддерживающих эфиров и вы сможете задавать любые вопросы по 1С.
Помогла статья?
Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно
Чаще всего эта ошибка возникает при работе непосредственно со справочниками договоров, контрагентов, номенклатуры и т. д. Пользователь добавляет в любой из справочников новую запись, при этом система 1С: Предприятие 8 автоматически присваивает ему код, но при сохранении записи выдает ошибку «Код не уникален!», а, следовательно, сохранить объект не удается.
В чем причина появления данной ошибки?
А причина может быть в некорректной нумерации объектов справочника. Как это происходит? Обычно при создании новой записи в каком-то из справочников программа сама генерирует код записи. Если в предыдущих записях пользователь редактировал код вручную, то в последствии есть вероятность того, что при создании последующих записей разрядность кода увеличится на один знак и перестает помещаться в поле, а значит генерация кодов начнется сначала. Только вот хранить объекты с одинаковыми кодами в справочниках 1С нельзя, а, значит, пользователь в такой ситуации будет получать на экран сообщение об ошибке.
Как исправить ошибку «Код не уникален»?
Безусловно, решение этой проблемы предусмотрено разработчиками 1С. Заключается оно в полной перенумерации элементов справочника. Для этого на диске информационно-технологического сопровождения 1С (1с итс) есть специальная обработка, которая называется «УниверсальныеПодборИОбработкаОбъектов.epf». Она располагается в каталоге 1CITSEXEExtRepsUNIREPS81UniversalSelection.
Все, что нужно от пользователя ― зайти в вышеуказанный каталог, запустить обработку и подождать пока завершится процесс перенумерации объектов выбранного справочника.
Как предотвратить появление ошибки «Код не уникален»?
Чтобы предотвратить появление данной ошибки при работе со справочниками 1С, в первую очередь не рекомендуется производить ручное редактирование кодов записей. Именно вмешательство в программную нумерацию и приводит чаще всего в ее возникновению. Если же без редактирования кодов не обойтись, то продумайте ситуацию наперед.
Рекомендуем также еще статьи по программам 1С:
- Выбор режима проведения документов в 1С
- Настройка доступа к подсистемам программ 1С 8.2
- Установка 1С: Предприятие 8.0
Вы можете получать новые материалы сайта по RSS-каналу или можете подписаться на новости 1С от Информ Актив и получать их еженедельно на Ваш e-mail .
Попробуем разобраться, почему появляется ошибка в 1С – значение поля Код не уникально (разновидности ошибки могут быть со значениями 002024, 002071 либо другими). В процессе добавления в справочник нового элемента, бывают случаи возникновения ошибки «поле код не уникально в 1C».
Системой, в автоматическом режиме, происходит процесс присвоения нового кода элементу.
При этом, она не позволяет произвести сохранение объекта. Причина кроется в ошибочной нумерации в справочнике. Такая ситуация возникает в момент, когда пользователь, в ручном режиме, пытается отредактировать поле «Код» в элементах справочника.
Закажите устранение ошибки 1С в IT RUSH!
Стоимость работ – 1600 руб./час, абонемент от 50 часов в месяц – 1500 руб. в час, от 100 часов в месяц – 1400 руб. в час
Справочник в 1С имеет определенный принцип собственной нумерации. Код состоит из префикса, числового кода предшествующего элемента на единицу больше. Представим, что код справочника представляет собой четыре цифры. Во всех элементах ставится префикс «А». Оставшиеся три символа отданы под числа, являющиеся составной частью кода.
В случае, если вручную элементу справочника будет присвоен код «А999», при попытке создания следующего элемента отобразится ошибка «поле код не уникально в 1с».
Причина заключается в том, что систем пытается прибавить единицу к числу 999, но для, получающегося в результате прибавления, кода «А1000» не достает разрядов.
Данный вид ошибки может проявиться не сразу. Например, пользователь создал код «А985». В таком случае, сообщение об не уникальном коде появиться на пятнадцатом по счету элементе, после упомянутого.
Решение проблемы «значение поля Код не уникально” заключается в поиске ошибочно пронумерованного элемента и исправления его кода на адекватный. Этот способ подразумевает смену нумерации кода и у всех последующих за ним элементов.
Упростить задачу, можно используя автоматическую обработку справочника, исправляющую коды нужных элементов.
- Стоимость работ специалистов IT Rush – 2000 руб./час
- Абонемент от 50 часов в месяц – 1900 руб./час
- Абонемент от 100 часов в месяц – 1800 руб./час
Нам доверяют:
-
ООО Компит
Значение поля Код не уникально |
Я |
31.05.12 — 13:03
Кто может подсказать в чем может быть проблема?
Есть справочник номенклатура, в нем 211 000 позиций , длина кода = 8 знаков, т.е. еще 2 свободных разряда, но при записи элемента справочника программа ругается что значение поля «Код» не уникально!
1 — 31.05.12 — 13:04
значит кто-то поменял код вручную )
2 — 31.05.12 — 13:04
(1)+1
Делать перенумерацию кодов.
3 — 31.05.12 — 13:05
(0) Ищите номенклатуру с длиной кода не 8, а меньше.
4 — 31.05.12 — 13:05
(2) хороший совет. Особенно если есть обмен с 10 базами (1С не 1С), и синхронизация по коду.
5 — 31.05.12 — 13:06
(1) а как отследить неверный код ? я делаю сортировку у меня последний элемент 00211….
По идеи должен браться последний и прибавляться 1
6 — 31.05.12 — 13:06
ПоискИЗаменаДублирующихсяЭлементов.epf
7 — 31.05.12 — 13:10
(4) Можешь что-то другое предложить? в любом случае перенумеровывать надо, хотя бы начиная с «кривого» элемента.
8 — 31.05.12 — 13:10
(6) дублей нету, только что запустил ее
9 — 31.05.12 — 13:11
(7) так как найти этот кривой элемент ?
10 — 31.05.12 — 13:11
(8) его и не должно было быть. объект же не записывается
11 — 31.05.12 — 13:12
(7) а ты из (0) понял в какой это момент происходит?
Может у него обработка, которая по своему алгоритму выдает номер?
Может у него при обмене в каких-то базах коды совпали…
и т.д. и т.п.
12 — 31.05.12 — 13:12
А если поискать объект с кодов который хотите записать?
13 — 31.05.12 — 13:13
(9) — отсортируйте по коду и поищите коды с длиной меньше 8
14 — 31.05.12 — 13:16
(9) При создании нового элемента какой-то код же присваивается? вот его и ищи.
15 — 31.05.12 — 13:19
(14) в отладчике на событии «Перед записью» значение поля код = » «,
(9) я отсортировал по коду но не могу никак найти код с длиной меньше 8 =(
16 — 31.05.12 — 13:19
(14) как узнать какой код присваивается ?
17 — 31.05.12 — 13:20
(15) — поищите код оканчивающийся на букву
18 — 31.05.12 — 13:20
(16) — Посмотреть
19 — 31.05.12 — 13:23
(18) событие «ПриУстановкеНовогоКода» там посмотреть ?
20 — 31.05.12 — 13:26
Как вариант. Если при создании спр.Номенклатура создается ещё
зависимый справочник — например ЕдиницаИзмерения, и там кто-то пошуровал ручками по коду, то ошибка может иметь отношение ко второму справочнику. ИМХО.
21 — 31.05.12 — 13:27
(20) спасибо за наводку, сейчас гляну )
22 — 31.05.12 — 13:48
(20) не там все чисто (
23 — 31.05.12 — 13:50
база случаем не на сиквеле?
24 — 31.05.12 — 13:52
(23) на чем ?))) клиент — серверный вариант работы (база на MSSQL)
25 — 31.05.12 — 13:54
ну тогда прямой запрос к базе на предмет задвоения
Select count(code), code
from table
group by code
having count(code)>1
26 — 31.05.12 — 13:56
(25) не проканает. В данный момент в базе нет задвоения. Задвоение создается при попытки записи нового элемента.
27 — 31.05.12 — 13:56
(25) так он и не может записать дубль
28 — 31.05.12 — 13:57
(0) какая конфигурация?
29 — 31.05.12 — 13:57
(27) — Все таки поищите код оканчивающийся на букву
30 — 31.05.12 — 13:58
Может тады профайлерем посмотреть что пытается записать в базу в момент создания элемента?
31 — 31.05.12 — 13:59
После сортировки как выглядит код последнего элемента? Полностью напиши (с пробелами и т.п)
32 — 31.05.12 — 13:59
+(31) и первого
33 — 31.05.12 — 14:01
(22) отсортируйте справочник по коду, тогда самый нижный элемент и будет то, что вы ищете.
34 — 31.05.12 — 14:21
Последний элемент : «00211746 »
Первый элемент: «00000001 »
(29) запустил такую обработку:
<code>
Процедура КнопкаВыполнитьНажатие(Кнопка)
Запрос = новый Запрос;
Запрос.Текст = «ВЫБРАТЬ
| Номенклатура.Код КАК Код
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|
|УПОРЯДОЧИТЬ ПО
| Код»;
Результат = запрос.Выполнить().Выбрать();
й=0;
Пока Результат.Следующий() Цикл
й=й+1;
Код = Результат.Код;
Попытка
Номер = Число(Код);
Код = СокрЛП(Код);
Если СтрДлина(Код)<8 Тогда
Сообщить(Код);
КонецЕсли;
Исключение
Сообщить(Код);
КонецПопытки;
КонецЦикла;
сообщить(й);
КонецПроцедуры
</code>
В результате не выдало ошибок. Т.е. все коды можно перевести в число
(30) А как это сделать ?
35 — 31.05.12 — 14:24
(28) конфигурация комплексная автоматизация
36 — 31.05.12 — 14:24
Попробуй ручками в карточке с последним кодом поставить
00211747 и записать.
37 — 31.05.12 — 14:25
Может и правда дело не в этом справочнике, а в каком то другом ?
38 — 31.05.12 — 14:25
(36) секунду
39 — 31.05.12 — 14:26
(37) если запишет, то в другом 99%
40 — 31.05.12 — 14:28
записал, потом при следующем создании выдал другую уже ошибку , ура что-то становится яснее:
В данной транзакции уже происходили ошибки
«Не удалось записать единицу хранения остатков: {Справочник.Номенклатура.Форма.ФормаЭлемента.Форма(1396)}: Ошибка при вызове метода контекста (Записать): Значение поля «Код» не уникально»
41 — 31.05.12 — 14:36
А в (0), что без открытия формы создавал?
42 — 31.05.12 — 14:37
(41) с открытие но ошибка только сейчас выдалась ..
не понимаю где теперь искать концы
43 — 31.05.12 — 14:40
Ищи подвох в единицах хранения остатков
44 — 31.05.12 — 14:44
+(43) повтори свою обработку для справочника ЕдиницыИзмерения
и выдай первый код и последний
45 — 31.05.12 — 14:50
(44) я сделал как ты и сказал в (36) — присвоил последнему элементу справочника «ЕдиницыИзмерения» код на единицу больше и все заработало, спасибо тебе !!!! Но причину я так и не могу понять, мистика ))
Спасибо всем ! я уже 2 часа вожусь с этой проблемой !!!! если бы не вы… было бы гораздо дольше =)
46 — 31.05.12 — 14:57
(45) ))) «2 часа вожусь» ветка с 13:03 по 14:50 — быстро ты сдался однако.
47 — 31.05.12 — 15:15
(46) ну мои знания через 30 минут иссякли ! я перепробывал все что знал ) а на этом форуме обитают профи =)) мне это очень нравится !
48 — 31.05.12 — 15:29
(47) заходи ещё. Набирайся опыта сидя на мисте. Если шефа убедишь )))
P.S. А коды не выложил по ЕдиницыИзмерения ((.
Мистика как то напрягает, может вылезти боком.
R0mbes
49 — 01.06.12 — 00:40
(48) Да босс одобрил это дело, мистика это точно. а коды там ничего подозрительного не было цифры и вначале и в конце…