Нарушение уникальности предопределенного элемента в 1С
- Ошибка при реструктуризации базы данных или обновлении конфигурации:
Нарушение уникальности предопределенного элемента. - В справочнике или плане счетов отображаются два элемента с одинаковыми системными именами и значком точки.
- Исключение при обращении через код вида
Справочники.Номенклатура.ОсновнаяУслуга.
1. Поиск задвоенных предопределенных записей через запрос
ВЫБРАТЬ
Спр.ИмяПредопределенныхДанных КАК ИмяПредопределенного,
КОЛИЧЕСТВО(Спр.Ссылка) КАК КоличествоДублей
ИЗ
Справочник.СтатьиДвиженияДенежныхСредств КАК Спр
ГДЕ
Спр.ИмяПредопределенныхДанных <> ""
СГРУППИРОВАТЬ ПО
Спр.ИмяПредопределенныхДанных
ИМЕЮЩИЕ
КОЛИЧЕСТВО(Спр.Ссылка) > 12. Программное отвязывание лишнего предопределенного элемента
// Получаем дублирующий элемент по ссылке
ДубльОбъект = ВыбраннаяСсылкаНаДубль.ПолучитьОбъект();
Если ДубльОбъект <> Неопределено Тогда
// Очищаем привязку к предопределенному метаданному
ДубльОбъект.ИмяПредопределенныхДанных = "";
ДубльОбъект.Наименование = ДубльОбъект.Наименование + " (Дубль)";
ДубльОбъект.Записать();
Сообщить("Элемент успешно отвязан и переведен в статус пользовательского!");
КонецЕсли;3. Использование типовой обработки БСП
В типовых конфигурациях откройте обработку ПредопределенныеЭлементы в режиме 1С:Предприятие и выполните сопоставление данных с конфигурацией.
Частые вопросы (FAQ)
Почему происходит задвоение предопределенных элементов?
Чаще всего это происходит при переносе данных через XML/КД2 без сопоставления по полю 'ИмяПредопределенныхДанных' или при слиянии узлов РИБ с рассинхронизированными метаданными.
Можно ли физически удалить предопределенный элемент?
Нет, пока элемент связан с метаданными (ИмяПредопределенныхДанных не пустое), платформа блокирует его удаление. Сначала его нужно программно отвязать.
Что означает свойство метаданных 'Автосоздание предопределенных элементов'?
В режиме 'Автосоздание' платформа генерирует элементы в ИБ при первом старте. В режиме 'Не создавать' инициализация управляется разработчиком программно.
Как предотвратить задвоение предопределенных данных при обмене через КД 2.0?
В правилах конвертации свойств (ПКС) обязательно установите признак 'Искать по ИмяПредопределенныхДанных' и отключите поиск только по коду/наименованию.