Значение поля "Код" не уникально или Значение поля "Номер" не уникально При работе в 1С, особенно когда много документов или номера редактируются ручками, можно получить ошибки вида:
Значение поля "Код" не уникально или Значение поля "Номер" не уникально
Что делать? Перенумеровывать
Нужно восстановить нумерацию документов или элементов справочника:
Пользователю Посмотрите: Перенумерация документов, справочников , и сама Обработка Универсальные подбор и обработка объектов
Сбилась автонумерация у документа или справочника с текстовым кодом, что делать?
Программисту: Посмотрите примеры выше и дополнительно: Как сбросить счётчик нумерации документов или справочников
В модуле ПередЗаписью() дописать функционал проверки:
Код 1C v 8.х …
//Проверим текущий номер документа и установим новый если он занят
Если НомерЗанят(Номер) Тогда
УстановитьНовыйНомер();
КонецЕсли;
//функция НомерЗанят() по функционалу очень проста
// в вашей ситуации возможно ее придется изменить
Функция НомерЗанят(НомерДока)
Результат = Ложь;
Попытка
Запрос = Новый Запрос;
Запрос.Текст = «ВЫБРАТЬ
| Документ_.Номер
|ИЗ
| Документ.Документ КАК Документ_
|ГДЕ
| Документ_.Номер =НомерДока
| И Не Документ_.Ссылка =ТекДок»;
Запрос.УстановитьПараметр(«НомерДока», НомерДока);
Запрос.УстановитьПараметр(«ТекДок», Ссылка);
Результат = не Запрос.Выполнить().Пустой();
Исключение
КонецПопытки;
возврат Результат;
КонецФункции //НомерЗанят()
Категория:
Системные Ошибки Как сбросить счётчик нумерации документов или справочников Используйте:
Глобальный контекст:
ОбновитьНумерациюОбъектов (RefreshObjectsNumbering)
Синтаксис:
Код 1C v 8.х ОбновитьНумерациюОбъектов(<Метаданные>)
Параметры:
<Метаданные> (необязательный, НО Если значение параметра не указано, то обновление будет выполнено для всех типов объектов)
Тип:
Массив; Объекты метаданных. Объект метаданного или массив объектов метаданных, для объектов которого будет выполнено обновление. Если значение параметра не указано, то обновление будет выполнено для всех типов объектов.
Описание:
Выполняет обновление номеров в соответствии с номерами, записанными в базе данных. После вызова данного метода все выданные, но не записанные номера, становятся невалидными, т.к. не гарантируется их уникальность. Данный метод разрешено вызывать только администратору системы.
Доступность:
Сервер, толстый клиент, внешнее соединение
Пример:
Код 1C v 8.х //Обновим нумерацию у документа Реализация товаров и услуг
ОбновитьНумерациюОбъектов(Метаданные.Документы.РеализацияТоваровУслуг)
// другие примеры:
ОбновитьНумерациюОбъектов(Метаданные.Документы.ОтчетПроизводстваЗаСмену);
ОбновитьНумерациюОбъектов(Метаданные.Документы.ТребованиеНакладная);
ОбновитьНумерациюОбъектов(Метаданные.Документы.ПриходныйКассовыйОрдер);
ОбновитьНумерациюОбъектов(Метаданные.Документы.РасходныйКассовыйОрдер);
ОбновитьНумерациюОбъектов(Метаданные.Справочники.Номенклатура);
ОбновитьНумерациюОбъектов(Метаданные.Справочники.Абонементы);
По этой теме:
Сбилась автонумерация у документа или справочника с текстовым кодом, что делать? Категория:
1С Общие вопросы - Обычные формы