1с значение поля код не уникально

Обновлено: 06.07.2024

Если установка нового номера ( УстановитьНовыйНомер() ) или кода ( УстановитьНовыйКод() ) вызывается в транзакции, то при откате транзакции у объекта происходит возврат к значению номера/кода, соответствующему началу транзакции.

Рассмотрим следующую ситуацию:

  • новому элементу справочника присваивается некоторый код;
  • затем в транзакции выполняется вызов метода УстановитьНовыйКод() ;
  • происходит откат транзакции.

Для иллюстрации этой ситуации потребуется выполнить следующий код:

Результат выполнения этого кода в предыдущей и новой версии платформы представлен в следующей таблице:

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

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

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

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

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

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

Ошибка возникает при создании нового документа. При записи программа 1С 8.3 автоматически присваивает элементу новый номер, но сохранить новые данные не может, где-то в журнале документов уже есть объект с таким же номером.

Причиной этой ошибки чаще всего служит ручное исправление номеров документов.

Значение поля «Номер» не уникально 1с 8.3

Программа 1С сообщает пользователю, что номер 0000-0006 уже существует.


Нумерация документов в программе осуществляется автоматически. При этом, каждому новому документу присваивается номер в хронологическом порядке, который состоит из определенного количества цифр.

В 1С:Бухгалтерия предприятия 3.0, номер состоит из двух частей:

  • префикс информационной базы — может быть задан, если есть обмен с другими базами 1С;
  • сам номер документа.

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

Таким образом, сам номер может принимать значение от 0000-000001 до 0000-999999. Если пользователь вручную сокращает длину номера, то она продолжает нумерацию от нового значения. При внесении изменения в префикс, нумерация все равно продолжается от последнего номера, содержащего наименьшее количество знаков. В нашем примере при сбое в нумерации она продолжилась, используя под номер 4 знака: 0000-0005, 0000-0006 и т.д.


Рассмотрим ситуацию далее.

Что произойдет, если пользователь сократит числовой резерв для номера до двух или, куда хуже, до одного знака?

Программа 1С будет присваивать номера до тех пор, пока не будет пройден последний максимальный номер. Например, изменив вручную в документе номер на 0000-01, программа сможет автоматически присвоить всего 99 номеров. После номера 0000-99 возможность автоматической нумерации документов закончится и придется каждый раз исправлять номер вручную



Когда пользователь сокращает длину номера документа (договора и т.п.) — это приводит к сбою нумерации. Поэтому, если возникает необходимость изменить номер документа вручную, надо использовать максимально допустимое число символов.


После этого добавляем нули перед значением номера.


После приведения в порядок нумерации, ошибка появляться не будет.

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

Если Вы еще не являетесь подписчиком системы БухЭксперт8:

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

Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно

Похожие публикации

Карточка публикации

Добавить комментарий Отменить ответ

Для отправки комментария вам необходимо авторизоваться или зарегистрироваться.

Вы можете задать еще вопросов

Конфигурация 1С состоит из объектов: Константы , Документы , Регистры и ряда других. У каждого есть свои реквизиты: дата, номер, сумма и т. д. При обращении к переменной, которая не является объектом, либо при обращении к неверному типу объекта будет выходить оповещение, что Значение не является значением объектного типа.

Причины

  • Основная — неверное обращение к объекту конфигурации.
  • Дополнительная — обновление релиза или платформы и сохраненные настройки пользователя.

Неверное обращение к объекту

Чаще всего ошибка возникает после обновления, и если она проявилась сразу после обновления конфигурации на новый релиз, необходимо проверить ошибку в каталоге Публикации ошибок, указав полный текст ошибки.

Возможно, она уже исправлена


либо есть вариант обхода ошибки до исправления в последующем обновлении.


Рассмотрим на примерах почему возникают подобные ошибки.

Создадим запрос по регистру накопления Взаиморасчеты с сотрудниками с некоторыми полями из него.


В запросе в поле Физическое лицо указали реквизит Код, обозначив при этом в представлении, что это данные по физическому лицу. Далее, выгрузив запрос в таблицу значений, обработаем полученные данные, при этом попытаемся сообщить, какое физическое лицо в данный момент обрабатывается.


В результате выполнения цикла получим ошибку Значение не является значением объектного типа (Наименование).


Следующий пример ошибки — обратимся к функции и передадим в нее параметры несоответствующего типа. У функции ОбработатьДанные два параметра: Объект и ФизическоеЛицо. Вместо передачи элемента типа справочник Физические лица передан параметр Ложь .


При выполнении кода будет выдана ошибка.


Происходит это из-за того, что функция пытается получить данные ИНН из типа данных Булево. Для исправления достаточно правильно передать параметр.

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


В данном примере необходимо либо добавлять проверку при получении даты для _Объект на значение Неопределено , либо изменить условие, которое приводит к ошибке.

Сохраненные настройки пользователя

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

Скорее всего, в следующем обновлении разработчики устранят данную проблему, а пока можно попробовать очистить настройки конкретного пользователя. Для начала следует сделать архив базы. Далее в развернутой копии выполнить следующие действия:

  • зайти в раздел Администрирование ;
  • открыть в панели действий пункт Настройки пользователей ;
  • выбрав нужного пользователя, очистить его настройки.


Сначала можно попробовать очистить не все настройки, а только настройку того элемента, при работе с которым возникла ошибка. Например, при работе с должностями возникла ошибка, поэтому необходимо попробовать по правой кнопке мыши очистить настройки именно справочника Должности .

См. также:

Если Вы еще не подписаны:

Активировать демо-доступ бесплатно →

или

Оформить подписку на Рубрикатор →

После оформления подписки вам станут доступны все материалы по 1С:Бухгалтерия, записи поддерживающих эфиров и вы сможете задавать любые вопросы по 1С.

Помогла статья?

Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно

Похожие публикации

    .У вас нет доступа на просмотр Чтобы получить доступ:Оформите коммерческую.Ошибка возникает при создании нового документа. При записи программа 1С.У вас нет доступа на просмотр Чтобы получить доступ:Оформите коммерческую.

Карточка публикации

Данную публикацию можно обсудить в комментариях ниже.
Обратите внимание! В комментариях наши кураторы не отвечают на вопросы по программам 1С и законодательству.
Задать вопрос нашим специалистам можно по ссылке >>
Вы можете задать еще вопросов

Доступ к форме "Задать вопрос" возможен только при оформлении полной подписки на БухЭксперт8

Вы можете оформить заявку от имени Юр. или Физ. лица Оформить заявку

Нажимая кнопку "Задать вопрос", я соглашаюсь с
регламентом БухЭксперт8.ру >>

Как не попасть в ловушку, работая с контрагентами из ЕАЭС

[17.11.2021 запись] Практический переход на ФСБУ 6 и ФСБУ 26 в 1С

Переход на ФСБУ 6/2020 «Основные средства» в 1С по альтернативному алгоритму

Изменения в 2021 году, о которых нужно знать бухгалтеру

[11.10.2021 запись] Учет ОС по-новому: ФСБУ 6/2020, ФСБУ 26/2020, ФСБУ 25/2018

[29.10.2021 запись] Пообъектный учет ОС и подходы к определению и пересмотру СПИ

Спасибо! Очень ценно полезно нужно! Буду еще неоднократно обращаться к этому семинару для изучения этой темы.

Помогла статья?

Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно

Все комментарии (13)

Здравствуйте, Любовь.
Уточните какой номер программа устанавливает автоматически? Попробуйте выполнить действия при нестандартных ситуациях:
Попробуйте почистить кэш: Очистка кэш 1С 8.3 Сделайте тестирование базы: Тестирование и исправление базы 1С 8.3: какие галочки ставить Перед тестирование обязательно сделайте копию базу: Как сделать копию базы 1С 8.3 Приведите скрин списка документов Увольнения.

программа не устанавливает номер. По логике должен быть следующий: 0000-0057/К, но ругается на 0000-0051/К, хотя я его даже не писала, документ новый и поле с номером чистое при записи другого номера через редактирование вручную-та же самая ошибка. Скриншот я приложила к вопросу изначально, он не открывается?

К сожалению очистка кэш и тестирование и исправление ИБ не исправили ситуацию.

Вышлите список документов Увольнения. Журнал операций-кнопка Ещё-Настроить список. На вкладке Обор укажите отбор по документу Увольнения. Уточните в базе ведётся учёт по одной организации?

В правой части кнопка Добавить новый элемент из предложенного списка выберите Документ тип сравнения Равно

У вас в базе есть документ с номером 0000-0051/К от 09.07.2020 г, а дата увольнения (Дата события) указана 05.10.2020 г. Проверьте правильность заполнения данного документа. Если это ошибка, попробуйте его удалить и создайте документ Увольнение заново. Либо проверьте правильность заполнения данного документа. Уточните когда и как меняли нумерацию документов.

Удалила этот приказ 51/К от 09.07.2020. Сделала заново. Номер по уволенному от 05.10 почему то автоматом такой же как 09.07.2020. Скрин прилагаю. И второй вопрос: если номер таким оставлять, то как отчитываться по СЗВ-ТД?

Вы можете задать еще вопросов

Доступ к форме "Задать вопрос" возможен только при оформлении полной подписки на БухЭксперт8

Вы можете оформить заявку от имени Юр. или Физ. лица Оформить заявку

Нажимая кнопку "Задать вопрос", я соглашаюсь с
регламентом БухЭксперт8.ру >>

Что делать, если при создании объектов информационной базы встречается ошибка «Значение поля «Код» не уникально» (для документов – значение поля «Номер»)?

Программа

Программа

Обычно это связано с тем, что код редактируемого справочника (номер документа) был некорректно отредактирован вручную.

Рассмотрим для наглядности пример. Для некоего справочника допустимая длина кода – 9 символов. В справочнике были созданы и стандартным образом пронумерованы элементы «000000001», «000000002», …, «000000086». Если в следующем элементе указать, например, номер «90», то программа, во-первых, автоматически дополнит указанный номер справа пробелами до 9 символов (получится «90_______» – справа 7 пробелов), во-вторых, «поймет» новый способ нумерации и следующим элементам присвоит коды «91_______», «92_______» и т.д. (те же 7 пробелов справа). После записи элемента с кодом «99_______» последующая автоматическая нумерация будет невозможна, поскольку следующий номер, сформированный по этому правилу («100_______»), не будет умещаться в допустимые 9 символов.

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

Программа

В поле «Объект поиска» необходимо указать нужный объект (справочник/документ). На закладке «Отбор по значениям реквизитов» можно осуществить отбор (в нашем случае установим отбор по коду):

Программа

При нажатии кнопки «Найти объекты» закладка «Найденные объекты» заполнится объектами, удовлетворяющими условиям отбора:

Программа

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

Программа

После завершения обработки можно проверить измененный код в справочнике «Жильцы», а также добавить для проверки новые записи.

Читайте также: