1с код счета стал не уникальным
Ошибка в 1С: Значение поля Код не уникально
Такая ошибка возникает при добавлении нового элемента справочника, система автоматически присваивает элементу новый “Код”, но не дает сохранить объект.
Причиной является неправильная нумерация в справочнике. Происходит это когда пользователи вручную редактирует поле “Код” в элементах справочника.
Принцип нумерации справочника в 1С такой:
Код = Префикс+числовой код предыдущего элемента + 1.
Допустим код справочника состоит из 4-х символов, есть префикс “А” — он ставиться во всех элементах, остальные 3 знака используются под числовую составляющую кода. Если пользователь изменит код любого элемента справочника на “А999”, то при создании следующего элемента возникнет ошибка Значение поля “Код” не уникально, потому что система пытается прибавить к числовой составляющей кода единица, но разрядов для создания элемента с кодом А1000 не хватает. Такого рода ошибки могут всплыть не сразу, например если пользователь изменить код какого нибудь элемента на А990, то не уникальный код появится на десятом созданном впоследствии элементе.
Решить проблему можно, либо найдя неверно пронумерованный элемент и исправив его “Код” на корректный(а также перенумеровав все созданные после него элементы), либо если вручную эту работу проделать невозможно, то можно воспользоваться обработкой УниверсальныеПодборИОбработкаОбъектов (скачать можно по ссылке), при помощи нее перенумеровав все элементы справочника
Особенности кода счета в 1С:Предприятии 8
Код счета
Код счета хранится в информационной базе в том виде, в котором был введен. Исключение составляет хранение кода счета в условиях, когда маска кода счета содержит символы “@”. В этом случае группа знаков кода, для которой в маске стоят символы “@”, упаковывается – из нее вырезаются пробелы.
При создании нового счета или редактировании уже имеющегося счета в плане счетов код счета редактируется с использованием маски. При вводе ссылки на счета в записях регистров и в других местах код счета вводится без маски.
Перед началом редактирования счета в плане счетов, код счета распаковывается до вида, подходящего под маску. После окончания редактирования код счета упаковывается.
Рассмотрим пример упаковки – распаковки кода счета. Пусть есть некоторый план счетов, для которого указано:
Выполним следующие действия:
Порядок счета
В информационной базе порядок счета хранится в том виде, в котором был задан. Задавать порядок счета можно только в том случае, если длина поля Порядок больше нуля.
В форме счета поле Порядок доступно для редактирования, однако по умолчанию в форму не включается, и его содержимое автоматически не заполняется. Если длина поля Порядок больше нуля и значение, записываемое в поле, представляет собой пустую строку, записать объект Счет не удастся, и произойдет соответствующая ошибка времени выполнения.
Если маска кода счета состоит только из символов «@» и «.», можно автоматически сформировать поле Порядок. Это можно сделать в обработчике события ПередЗаписью() с помощью метода ПолучитьПорядокКода():
Процедура ПередЗаписью(Отказ)
Порядок = ПолучитьПорядокКода();
КонецПроцедуры
При формировании порядка счета функция ПолучитьПорядокКода() за основу берет код счета. В пределах групп номера счета символы кода счета сдвигаются вправо, дополняясь слева необходимым количеством пробелов.
Рассмотрим два примера:
1) Код счета: «10.12»
Маска кода счета: «@@@.@@@.@@»
Сформированный прядок счета: » 10. 12″
2) Код счета: «10.5»
Маска кода счета: «@@@.@@@.@@»
Сформированный прядок счета: » 10. 5″
Свойство АвтоПорядокПоКоду
Свойство АвтоПорядокПоКоду используется для подмены упорядочивания по полю Код упорядочиванием по полю Порядок. Упорядочивание по полю Порядок в этом случае используется как, например, в формах списков счетов, так и в процессе формирования запросов.
Пример использования свойства АвтоПорядокПоКоду в форме списка счетов
На рисунке видно, что в качестве колонки, по которой идет сортировка, отмечена колонка Код. Однако реально для сортировки используются данные из поля Порядок.
На рисунке видно, что сортировка данных не изменилась. Это действительно так, поскольку свойство АвтоПорядокПоКоду включено.
Если же свойство АвтоПорядокПоКоду выключить, то сортировка будет выполняться иначе:
На рисунке видно, что сортировка выполнена по полю Порядок.
На рисунке видно, что порядок следования счетов сменился и упорядочивание происходит по полю Код.
Пример использования свойства АвтоПорядокПоКоду в запросе
Пусть есть следующие счета:
Код Наименование Порядок
3.3.3 Счет 3.3.3 1
2.2.2 Счет 2.2.2 2
1.1.1 Счет 1.1.1 3
Выполним следующий запрос:
ВЫБРАТЬ
ПланСчетов1.Код КАК Код,
ПланСчетов1.Наименование,
ПланСчетов1.Порядок
ИЗ
ПланСчетов.ПланСчетов1 КАК ПланСчетов1
УПОРЯДОЧИТЬ ПО
Код
На этом примере видно, что в случае упорядочивания по полю Код вместо него используется поле Порядок.
Значение поля Номер не уникально
Посмотрите что за номер 1с генерит перед записью документа, может станет ясно куда смотреть
Глобальный контекст (Global context)
ОбновитьНумерациюОбъектов (RefreshObjectsNumbering)
Синтаксис:
Тип: Массив; Объекты метаданных.
Объект метаданного или массив объектов метаданных, для объектов которого будет выполнено обновление. Если значение параметра не указано, то обновление будет выполнено для всех типов объектов.
Описание:
Выполняет обновление номеров в соответствии с номерами, записанными в базе данных. После вызова данного метода все выданные, но не записанные номера, становятся невалидными, т.к. не гарантируется их уникальность. Данный метод разрешено вызывать только администратору системы.
Сервер, толстый клиент, внешнее соединение.
(плюс заполнение всех необходимых реквизитов, не стал писать)
И до некоторых пор это работало без сбоев.
Да, и сбой проявлялся последовательно.
Сначала в одной из обработок создавалась пара Списание-Оприходование, Оприходование стало отказывать в записи с этой ошибкой.
Затем еще одна обработка, которая создавала Реализацию-Поступление, Реализация стала вылетать.
Закономерность не ясна.
Оприходование после подобного передергивания глючить перестало. Надо попробовать, может и реализацию тоже уже не нужно так дергать.
Коллеги, столкнулся с этим и нашел возможное решение.
У меня возникла ситуёвина, что существующий документ прошлого года программно перезаписывался в текущем. Номер ему не переприсваивался, а брался прошлогодний. Но в этом году уже такой номер в базе есть. В итоге в каждом году номер вроде бы уникальный, а ситуация вызывает ошибку. Скорее всего и у вас та же проблема, если, конечно она не вызвана платформой. Если вызвана платформой, то ОбновитьНумерациюОбъектов() и очистка кеша должна помочь.
ОбновитьНумерациюОбъектов() можно сделать из встроенной обработки редактирования стратегии нумерации объектов.
Значение поля номер не уникально 1С 8.3: как исправить
Ошибка возникает при создании нового документа. При записи программа 1С 8.3 автоматически присваивает элементу новый номер, но сохранить новые данные не может, где-то в журнале документов уже есть объект с таким же номером.
Причиной этой ошибки чаще всего служит ручное исправление номеров документов.
Значение поля «Номер» не уникально 1с 8.3
Программа 1С сообщает пользователю, что номер 0000-0006 уже существует.
Нумерация документов в программе осуществляется автоматически. При этом, каждому новому документу присваивается номер в хронологическом порядке, который состоит из определенного количества цифр.
В 1С:Бухгалтерия предприятия 3.0, номер состоит из двух частей:
В том случае, если пользователь начинает изменять нумерацию вручную или случайно изменил номер, сбив при этом нумерацию документов, программа продолжает нумерацию от номера, содержащего меньшее количество знаков. Изначально, мы видим, что в 1С заложено для номера документа:
Таким образом, сам номер может принимать значение от 0000-000001 до 0000-999999. Если пользователь вручную сокращает длину номера, то она продолжает нумерацию от нового значения. При внесении изменения в префикс, нумерация все равно продолжается от последнего номера, содержащего наименьшее количество знаков. В нашем примере при сбое в нумерации она продолжилась, используя под номер 4 знака: 0000-0005, 0000-0006 и т.д.
Получите понятные самоучители 2021 по 1С бесплатно:
В базе уже есть номер 0000-0006, поэтому при попытке ввести его повторно, программа выдаст сообщение о том, что значение поля номер 0000-0006 не уникально.
Рассмотрим ситуацию далее.
Что произойдет, если пользователь сократит числовой резерв для номера до двух или, куда хуже, до одного знака?
Программа 1С будет присваивать номера до тех пор, пока не будет пройден последний максимальный номер. Например, изменив вручную в документе номер на 0000-01, программа сможет автоматически присвоить всего 99 номеров. После номера 0000-99 возможность автоматической нумерации документов закончится и придется каждый раз исправлять номер вручную
После номера 0000-99 при вводе каждого нового документа будет выдаваться сообщение, что значение номера 0000-99 не уникально.
Когда пользователь сокращает длину номера документа (договора и т.п.) — это приводит к сбою нумерации. Поэтому, если возникает необходимость изменить номер документа вручную, надо использовать максимально допустимое число символов.
Как поступить в случае появления такой ошибки? В первую очередь, необходимо просмотреть нумерацию документов. В случае, если исправленных документов было не много, значение номера можно изменить вручную, добавив нужное количество нулей перед значением. При попытке изменить номер, программа выдаст сообщение о редактировании номера, на что мы отвечаем:
После этого добавляем нули перед значением номера.
После приведения в порядок нумерации, ошибка появляться не будет.
Если исправлений в номерах было много, то можно воспользоваться обработкой для автоматической перенумерации объектов.
Если Вы еще не являетесь подписчиком системы БухЭксперт8:
После оформления подписки вам станут доступны все материалы по 1С Бухгалтерия, записи поддерживающих эфиров и вы сможете задавать любые вопросы по 1С.
Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно
Похожие публикации
Карточка публикации
(3 оценок, среднее: 4,67 из 5)
Добавить комментарий Отменить ответ
Для отправки комментария вам необходимо авторизоваться.
Вы можете задать еще вопросов
Доступ к форме «Задать вопрос» возможен только при оформлении полной подписки на БухЭксперт8
Нажимая кнопку «Задать вопрос», я соглашаюсь с
регламентом БухЭксперт8.ру >>
Вы можете задать еще вопросов
Доступ к форме «Задать вопрос» возможен только при оформлении полной подписки на БухЭксперт8
Нажимая кнопку «Задать вопрос», я соглашаюсь с
регламентом БухЭксперт8.ру >>
Тема: Значение поля «Номер» не уникально
Опции темы
Поиск по теме
Значение поля «Номер» не уникально
Вот такое мне выдает когда ввожу счет-фактуру. Приходится каждый раз в ручную менять номер. Это ничем не черевато.
ничем. нули уберите, когда свой следующий номер будете писать, скажем прога предлагает 000000015 (семь нулей), вам надо 35, то есть пишете 00000035 (шесть нулей), в следующий раз она вам сама даст 00000036 (шесть нулей)
Эм.. Я имела ввиду при поступлении, когда ввожу с/ф. да, я пыталась менять по количеству нулей, все равно каждый раз одно и тоже выдает, и каждый раз меняю номер. Он автоматически в следующий раз не присваивает следующий по порядку номер(((. Ну раз не черевато, буду менять каждый раз
Эмм. Тк мне уже не вернуть все так, чтобы каждый раз не вылетало «Не уникалоно».
вы когда новый документ вводите, она (прога) вам что предлагает? а вам какой надо?
Были ли номера без ведущих нулей?
Нужно вернуть все номера к виду 00000001, 00000002 и т.д.
На ИТС должна быть обработка для автоматической перенумерации уже введенных документов.
Прога всегда на своем стоит: Значение поля «Номер» не уникально
Ну как от этого избавиться
Что такое видущие нули.
Это значит если я проге насильно номер присвоила, она должна следущий док-т автоматически под стедующим поп порядку сама делеть. вот и я так думаю, но у меня 1С выдает окно об неуникальности, и пока номер не поменяешь, документ не проведется.
сделайте так и будет щастье
Хах, спасибо Наталья, вроде так и предполагала, но видить там уже были ноера без одного ведущего нуля, попробую еще один нолик убрать и надеюсь будет мне счастье
сейчас понадобилось добавить 2 акта от 31.07.12 с подряд нумерацией.
было 00000796
00000797
.
00000823
добавила
00000796/1 полностью уходит в поле номера, т.е. изначально там должно быть не пять нолей, а семь
00000796/2
следующий номер выдает
00000824
так что все работает.
Нет, нет мне счастья
. все равно выдает это свое «не уникально», видимо ничего уже не поделать
Читаем внимательно пост №11.
Будет время попробую, но реально ли это. там много и все запутано