Ошибка возникает при создании нового документа. При записи программа 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 дней бесплатно
Содержание:
- Причина ошибки в 1С
- Как исправить ошибку в 1С 8.3
В программе 1С Бухгалтерия предприятия 3.0 часто возникает ошибка: «Поле номер не уникально в 1С». В данной статье рассмотрим причины возникновения ошибки и способы ее устранения.
1. Причина ошибки в 1С
Ошибка неуникальности номера возникает чаще всего в документах поступлений, реализаций (рис. 1) и других документах, содержащих на форме доступный для пользователя реквизит «Номер» (рис. 2).
В программе 1С Бухгалтерия предприятия 3.0 существует автонумерация документов. Так, например, при изменении номера в ручном режиме, программа 1С Бухгалтерия предприятия 3.0 подстраивается к новому типу формирования номеров документов. Номер документа в 1С 8.3 может принимать значения от 0000-000001 до 0000-999999. При этом для документов можно настроить префиксы. Например, при создании новой организации можно указать префикс, который будет использоваться при формировании номера документа в 1С 8.3 касательно данной организации.
Рис. 1
Рис. 2
Нумерацию документов легко «сбить», корректируя номер вручную. Допустим, пользователь исправил номер документа в 1С 8.3, сократив его до 1 или 2-х знаков. В таком случае, если в программе 1С Бухгалтерия предприятия 3.0 номер документа превысит два знака, программа выдаст ошибку «Поле номер не уникально», так как ограниченное двумя знаками поле «Номер» достигло своего лимита и не может занять свободный номер.
2. Как исправить ошибку в 1С 8.3
Для исправления ошибки «Поле номер не уникально» в первую очередь проверим номера документов 1С 8.3, с которыми возникает данная проблема. Если при проверке выясняется, что таких документов было немного, то значение номера каждого документа можно изменить вручную. При редактировании номера необходимо добавить нужное количество нулей перед значением (номером). Обычно при попытке изменить номер в программе 1С Бухгалтерия предприятия, появляется сообщение об ошибке при редактировании номера: «Номер заполняется при записи автоматически. Продолжить редактирование?». В случае исправления проблем с нумерацией нажимаем кнопку «Да» в соответствующем диалоговом окне.
Чтобы решить возникающую проблему с неуникальностью нумерации документов, необходимо выровнять номера документов. Обычно достаточно исправить последние документы, после чего программа автоматически «подхватывает» новый формат нумерации.
Специалист компании ООО «Кодерлайн»
Шачнева Елена Андреевна
Значение поля номер не уникально 1С 8.3
Ошибка возникает при создании нового документа. При записи программа 1С 8.3 автоматически присваивает элементу новый номер, но сохранить новые данные не может, где-то в журнале документов уже есть объект с таким же номером.
Причиной этой ошибки чаще всего служит ручное исправление номеров документов.
Нумерация документов в программе осуществляется автоматически. При этом, каждому новому документу присваивается номер в хронологическом порядке, который состоит из определенного количества цифр.
В 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 не уникально.
Кроме вариантов действий Перезапустить и Завершить работу ничего не предусмотрено.
Как поступить в случае появления такой ошибки? В первую очередь, необходимо просмотреть нумерацию документов. В случае, если исправленных документов было не много, значение номера можно изменить вручную, добавив нужное количество нулей перед значением. При попытке изменить номер, программа выдаст сообщение о редактировании номера, на что мы отвечаем:
Продолжить редактирование — Да.
После этого добавляем нули перед значением номера.
После приведения в порядок нумерации, ошибка появляться не будет.
Заказать консультацию
По этой или иной ошибке Вы можете обратиться к нашим специалистам, мы Вам поможем решить Вашу проблему.
Показывать по
10
20
40
сообщений
Новая тема
Ответить
Наталья Морозова
Дата регистрации: 28.09.2020
Сообщений: 3
Здравствуйте!
При проведении документа прием на работу возникла проблема, программа выдает предупреждение: “Значение “0000-00005к” поля “Номер” не уникально, хотя в самом документе значение стоит 8к. Проверила нумерацию всех кадровых документов “Значение “0000-00005к” нет вообще, перезагрузка программы с последующ. обновление проблему тоже не решили.
Подскажите пожалуйста в чем причина и как ее устранить.
Valentin46
Дата регистрации: 10.02.2011
Сообщений: 1041
Наталья, пробуем, предварительно создав копию базы:
1 – если документ создавали копированием, удалите его и создайте вновь вчистую;
2 – очистите кэш;
3 – проведите тестирование и исправление базы (ТИИ штатное + chdbfl.exe).
На каждом шаге см. результат.
Наталья Морозова
Дата регистрации: 28.09.2020
Сообщений: 3
Valentin46, документ создавала вновь. Подскажите как очистить кэш и где найти “тестирование и исправление базы (ТИИ штатное + chdbfl.exe)”
Valentin46
Дата регистрации: 10.02.2011
Сообщений: 1041
Если у вас файловый режим базы (об этом см. в Справке о программе).
1. Очистка кэша: удаляем базу, затем добавляем её же в окне запуска 1С Предприятия.
2. ТИИ: открываем конфигуратор, в меню выбираем “Администрирование – Тестирование и исправление…”.
3. chdbfl.exe: тест-утилита 1С, которая находится в bin-папке платформы (C:Program Files (x86)1cv88.3.16.1502bin).
Наталья Морозова
Дата регистрации: 28.09.2020
Сообщений: 3
Valentin46, проделала все перечисленные манипуляции, проблема не решилась.
Высылаем ответ отдела разработки:
Откройте кадровый документ и по кнопке “Еще изменить форму” выведите реквизит “Рег.номер”. Это системный номер документа.
Нумерация в программе – 11 символов: 2 символа – префикс базы, 2 символа – префикс организации, спецсимвол тире «-», 6- символов – порядковый номер.
Изменив рег. номер Вы сбили нумерацию. Восстановите ее – в документах уберите последний буквенный символ и добавьте в номерной части «0 (чтобы сохранилась 11 символьная нумерация) – например, если было 0000-00043к, должно стать 0000-000043. Сделать это надо для всех кадровых документов.
Номер кадрового документа, соответствующий Вашей внутренней нумерации следует указывать в соответствующем поле «Номер».
В организации на протяжении всей деятельности кадровые документа нумеровались так: прием на работу: 1к,2к, 3к и т.д, отпуск 00000001-ОТ, 00000002-ОТ и д.т., перевод 1, 2, 3 и т.д. до сегодняшнего дня проблем не было. Открыла регистрационные номера, номер 0000-00005к занят, но за ним был успешно проведен 0000-00007к
Геннадий С
активный пользователь
офлайн
Дата регистрации: 26.03.2017
Сообщений: 644
Наталья, проблема в последнем символе номера, который у вас не цифра. Номера документов хранятся в символьном виде, а для последовательной нумерации символы номера переводятся в числовое значение, а после прибавления единицы происходит обратное преобразование, поэтому и может происходить сбой при наличии символа в конце, цифрой не являющейся. Если хотите сохранить исторически имеющуюся в организации нумерацию, придётся нумеровать все документы вручную и самим следить за правильностью нумерации, имея ввиду особенности создания нового номера. Или с помощью программиста расширять возможности формирования номеров в конфигурации под ваши потребности. И учтите, что в программе все кадровые документы: и приёмы, и увольнения, и переводы, автонумеруются сплошной нумерацией.
Показывать по
10
20
40
сообщений
Значение поля “Номер” не уникально |
Я |
01.03.23 – 10:33
Добрый день.
На сервере стоит 1С 8.3.17.2760 и типовая конфигурация Управление торговлей 11.5.10.73.
Есть веб-сервис, который создаёт документы Реализации товаров и услуг.
Бывают моменты, когда API-функция веб-сервиса запускается в двух потоках (фоновых заданиях) одновременно и пытаются так же одновременно создать Реализацию товаров и услуг.
В таком случае 1С выдаёт ошибку:
{ОбщийМодуль.***ОбщиеМетоды.Модуль(4251)}: Ошибка при вызове метода контекста (Записать): Значение “***-2914” поля “Номер” не уникально
Также эта ошибка может появиться, если пользователь записывает новую Реализацию товаров и услуг в то время, как веб-сервис это делает.
В веб-сервисе создание объекта довольно простое:
ДокОбъектР = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
ДокОбъектР.Заполнить(СсылкаНаЗаказКлиента);
<дополнительное заполнение полей>
И в попытке:
ДокОбъектР.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);
1 – 01.03.23 – 10:37
(0) вводи префиксацию
2 – 01.03.23 – 10:42
Скорей блокировки
3 – 01.03.23 – 10:42
как разруливается ситуация когда 2 юзера вводят документ на одну организацию? суть такая же.
шаблон номера “***-2914” выглядит подозрительно.
4 – 01.03.23 – 10:46
(3) Я замазал часть номера, там формат: ***-***-1234
5 – 01.03.23 – 11:04
(4) тоже жуть какая то.
6 – 01.03.23 – 11:22
(2) Блокировка чего? Всей таблицы? Объект ещё не был создан. Номер автоматически присваивается ему после первой записи. Причём не могу найти, где именно.
В модуле объекта Реализации товаров и услуг:
Процедура ПриУстановкеНовогоНомера(СтандартнаяОбработка, Префикс)
Префикс = ОбщегоНазначенияУТПовтИсп.ДополнительныйПрефиксНумератораДокументыРеализацииТоваров();
КонецПроцедуры
И это ничего не даёт. Там результат “0” или “”, а не по шаблону “***-***-1234”.
Где прописано формирование префикса в УТ?
7 – 01.03.23 – 11:30
Потому что не надо рукоблудить с автонумерацией документов в типовых конфигурациях и придумывать какие-то свои велосипеды на эту тему. Тем более, что в большинстве случаев велосипеды эти имеют квадратные колёса.
Придумали какую-то свою нумерацию – вот и разруливайте теперь сами.
Если бы нумерация была типовая, такой проблемы бы не возникало. Типовой нумератор на уровне платформы разруливает такие проблемы и ошибка неуникальности номера там может возникнуть только в случае, когда достигнут предел нумерации и невозможно присвоить очередной номер.
У вас либо где-то зачем-то вкорячена установка нового номера задолго до записи документа, либо явно где-то в коде нахреначено принудительное присвоение очередного номера.
Если этот алгоритм выполняется одновременно несколькими потоками (сеансами), то вполне возможно, что в каждом из этих потоков получается один и тот же очередной номер. После того как кто-то из них успел записать документ с этим номером, остальные получают сообщение об ошибке нарушения уникальности.
Проходите в отладке весь код вашего веб-сервиса и смотрите – откуда и в какой момент присваивается номер документа.
8 – 01.03.23 – 11:31
(6) Так префикс тут не при чём. Первый документ когда-то создали с хитрым номером, а последующие номера +1 к последнему и всё.
9 – 01.03.23 – 11:45
(7) В расширениях нет доработок, которые бы меняли номер при записи, при проведении или при установке нового номера.
То, что я написал выше, взято из типовой конфигурации.
10 – 01.03.23 – 13:20
Причём, этот конфликт начал возникать только в последние две недели, раньше веб-сервис спокойно создавал документы и не жаловался, что не может сам подобрать следующий номерок при записи.
При тестах заполнения на основании Заказа клиента я не заметил, чтобы номер заполнялся откуда-либо, т.е. он остаётся пустым перед первой записью, что должно дать понять 1С, что надо автоматически пронумеровать его.
11 – 01.03.23 – 15:05
(9) Чудес не бывает.
Сервис нумерации является сервисом, предоставляемым кластером серверов. Ему плевать во сколько потоков у вас там одновременно создаются документы. Он очередной номер выдаёт последовательно.
Так что повторюсь. Берите отладчик и смотрите – в какой момент и каким алгоритмом присваивается номер документа.
>> взято из типовой конфигурации.
О каком типовом веб-сервисе идёт речь?
12 – 01.03.23 – 15:06
(10)
Отметил себе пересмотреть на выходных доктора Хауса с его “Все пациенты – врут, а 1С-ники при этом …”
Ticklion
13 – 01.03.23 – 16:40
(11) Веб-сервис руками написан, создаётся документ безо всяких управляемых транзакций и блокировок.
Но нумерация документов нигде не переработана и не переписана, она типовая.