Предопределенный элемент не уникален — дубли в 1С
Платформа 8.3 позволяет добавлять предопределенные элементы справочника в режиме предприятия.
Иногда после работы универсальных обработок переноса возникают проблема дублирования.
Такие элементы изменить нельзя — возникает ошибка «Предопределенный элемент не уникален»
Быстрый переход
- Как ее решить?
- Варианты практического решения
- Попутно могут возникнуть такие ошибки:
Как ее решить?
- найти тот, который имеет меньше всего ссылок
- сделать этот элемент не предопределенным
- произвести замену ссылок
- удалить элемент
Варианты практического решения
- Добавляется на форму поле ввода из предопределенный реквизита и правится его имя
- Создается обработка, которая меняет его
Проблема в том, что визуально они одинаковы и вызов для данного примера кода получения ссылки (к примеру ПланыВидовХарактеристик.ВидыСубконтоТиповые.Контрагенты), может выдать не тот элемент, при этом никакой ошибки система не выдаст.
Попутно могут возникнуть такие ошибки:
Вот так! Случайная ошибка приводит к длительному исправлению.
Обработка-помощник (правой кнопкой «Сохранить ссылку как…»)
Часто простая смена заголовка изменяет эффективность рекламы в 5-10 раз.
Автор pavel-P, 20 янв 2015, 14:37
0 Пользователей и 1 гость просматривают эту тему.
Всем привет!
Подскажите пожалуйста, в чем может быть причина в появлении ошибки «Предопределенный элемент не уникален» при создании дополнительного реквизита/свойства для вида номенклатуры?
Делаю так:
Нормативно-справочная информация -> Настройки и справочники -> Виды номенклатуры
Создаю новый вид:
Кнопка «Создать» -> Указываю наименование «Двигатель» -> Сохраняю… сохранилось нормально
Затем в подменю «Дополнительные реквизиты», жму «Создать», в поле «Наименование» указываю «Тип», остальные поля по умолчанию в «Тип значения» указано «Дополнительное значение»
Жму кнопку «Записать и закрыть», после чего появляется вышеуказанная ошибка.
З.Ы. До этого была чистая база в которую с помощью обработки «ЗагрузкаВыгрузкаДанных» перенес номенклатуру.
Скорее всего ошибка возникла из-за некорректного обновления конфигурации.
Проверьте предопределенные элементы справочника Виды номенклатуры.
Уберите задвоенные элементы.
Цитата: MuI_I_Ika от 20 янв 2015, 14:47
Скорее всего ошибка возникла из-за некорректного обновления конфигурации.Проверьте предопределенные элементы справочника Виды номенклатуры.
Уберите задвоенные элементы.
Зашел в конфигуратор
В дереве конфигурации -> Справочники -> ВидыНоменклатуры
И там не могу найти ПредопределенныеЭлементы ну или что-то в этом духе. Не могли бы Вы уточнить где искать это?
Заранее благодарен!
Вот описание ошибки:
{ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения.Форма.ФормаЭлемента.Форма(156)}: Ошибка при вызове метода контекста (Записать)
ОбъектНаборСвойств.Записать();
по причине:
Ошибка при выполнении обработчика — ‘ПриЗаписи’
по причине:
{ОбщийМодуль.УправлениеСвойствамиСлужебный.Модуль(721)}: Ошибка при вызове метода контекста (Записать)
ГруппаОбъект.Записать();
по причине:
Предопределенный элемент не уникален
Помог? Нажми — Спасибо
skype: Soprov1C
В предопределенных указано только «Элементы»
Добавлено: 20 янв 2015, 15:42
В какую сторону копать дальше?
А с чего вы взяли, что в этом справочнике?
на самом деле у меня была такая ситуация. Довольно неприятная. Первым делом, нужно понять в каком справочнике. Явно не в этом. тут пусто.
Помог? Нажми — Спасибо
skype: Soprov1C
Фиг его знает как понять в каком справочнике. В логах ничего нет.
В общем создал новую базу и перенес туда настройки — пока проблем не обнаружил.
А может наименование не понравилось «Тип»….
Или ошибка появлялась всегда, независимо от наименования?
Интересная проблемка, хотелось бы докопаться до истины;)
Народная мудрость: Программу встречают по интерфейсу
Цитата: SitnovaMarina от 20 янв 2015, 23:31
А может наименование не понравилось «Тип»….Или ошибка появлялась всегда, независимо от наименования?
Интересная проблемка, хотелось бы докопаться до истины;)
Вы имеете ввиду «Тип» — это «Тип номенклатуры» при создании «Вид номенклатуры»
или Вы имеете ввиду «Тип значения» при создании дополнительного реквизита? или еще что-то другое?
З.Ы. В любом случае, проблемную базу оставил для распила, можем колупать!
Организация удалённого подключения для помощи по обновлятору | оглавление | Ошибка ‘Невозможно выполнение обновления конфигурации в командном режиме’ |
2021-11-16T17:08:32+00:00
Вот пример такой ошибки:
Давайте разбираться по порядку.
— О каких таких предопределенных элементах идёт речь?
Предопределенным называются элементы справочника, которые создаются программистами при разработке конфигурации и жизненно необходимы для работоспособности базы.
— Почему вдруг начала возникать эта ошибка?
Дело всё в том, что задваиваться эти элементы могли и раньше, но платформа 1с не контролировала этот момент и закрывала глаза на эту ошибку.
Но начиная с платформы 1с версии 8.3.6.2332 проверка такой уникальности была введена и у многих сразу посыпались ошибки при обновлении.
— Какие есть варианты решения этой проблемы?
Всё зависит от ситуации при которой возникает ошибка, есть следующие варианты:
При переходе с одной редакции базы на другуюПри обычном обновлении базыЕсли не помогли предыдущие закладки
Если ошибка возникла в момент перехода с одной редакции базы на другую (например, при обновлении бухгалтерии 2.0 на 3.0), то:
1. Сначала обновите вашу базу до последнего релиза в рамках текущей редакции:
2. И только потом повторно запускайте переход на следующую редакцию:
В этом случае мы перед переходом на «тройку» обновляем «двойку» до самой последней версии и затем переходим на более позднюю версию «тройки» в которой решена проблема дублирования предопределенных элементов.
Если проблема возникла при обычном обновлении базы (в рамках текущей редакции), то чаще всего это означает, что дубли предопределенных элементов присутствовали в базе ещё до обновления.
В этом случае нужно попытаться обновить базу, используя платформу 1с версии 8.3.6.2299. В этой версии ещё не было контроля уникальности для предопределенных элементов. А после снова перейти на новую версию платформы, так как скорее всего после обновлений базы проблема дублирования предопределенных элементов решилась.
Скачиваем и устанавливаем (если у нас её ещё нет) платформу версии 8.3.6.2299:
Ждём пока обновлятор скачает и запустит установщик этой версии 1с. Устанавливаем, а затем указываем версию этой платформы (8.3.6.2299) для нашей базы:
Если обновлятор не даёт поставить номер версии (у вас включена синхронизация со списком баз 1с), то закрываем обновлятор, а затем:
Далее… далее…
Прописав настройку версии в окне запуска 1с — снова запускам обновлятор, он должен подхватить эту версию автоматически.
Проведя обновление базы версией платформы 8.3.6.2299 вновь очищаем поле версии — как он было раньше.
Проблема не уникальности предопределенных элементов должна уйти.
Если не помог временный откат платформы и обновление на последний релиз перед сменой редакции…, то ничего не остаётся кроме как открыть предопределенные элементы указанного в ошибке справочника в конфигураторе…
… и исключить их дублирование прежде чем снова обновлять базу.
Но здесь я не буду давать готовых советов, так как эту задачу уже должен решать специалист (программист или опытный администратор 1с).
С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.
Нажмите одну из кнопок, чтобы поделиться:
Организация удалённого подключения для помощи по обновлятору | оглавление | Ошибка ‘Невозможно выполнение обновления конфигурации в командном режиме’ |
Рассмотрим основные ошибки, которые могут возникнуть при обновлении конфигурации 1С, а также методы их решения.
Файл не содержит доступных обновлений
Ошибка возникает при несовпадении конфигураций.
Порядок исправления следующий:
- Снять конфигурацию с поддержки.
- Сделать сравнение/объединение конфигурации 1С с типовым cf-файлом того же релиза. При этом выключить все чекбоксы в дереве метаданных, нажать кнопку «Выполнить».
- Затем в диалоге «Настройка правил поддержки» для всех объектов дерева метаданных выставить «Редактируется с сохранением поддержки», нажать «Ок». В результате восстановится конфигурация поставщика и конфигурация встанет на поддержку. При этом останутся все изменения и возможность редактирования.
- Обновить конфигурацию базы данных.
Имя предопределенного элемента не является уникальным
Существует несколько причин, по которым возникает ситуация «задвоения» связи элементов информационной базы и предопределенных элементов. Если ошибка произошла при обновлении конфигурации, то, с большой степенью вероятности, можно сказать о проблеме совместимости конфигурации с платформой.
Для исправления ситуации снизьте версию платформы, например, до предыдущей версии и повторно запустите обновление конфигурации.
Предопределенный элемент отсутствует в данных
Ситуация, характерна, когда предопределенный элемент отсутствует в базе данных ИБ, но в конфигурации он описан. Существует два основных варианта событий, когда такое происходит.
Иногда ошибкой может быть само обращение в предопределенному элементу, а не само наличие такого элемента. В таком случае нужно понять, почему элемент не создан. Возможно, его случайно удалили либо он создается только при выполнении определенного режима программы.
Если это все же ошибка в информационной базе, то выполните привязку элемента базы к предопределенному элементу. Технически это просто указание имени в свойстве «ИмяПредопределенныхДанных».
Ошибка формата потока
Ещё одна ошибка, возникновение которой может быть вызвано разными причинами. Например, она характерна при нарушении регламента обновления, когда администратор обновляет систему минуя промежуточные конфигурации 1С — в таких случаях «бьется» конфигурация поставщика. Профилактика данной ошибки — последовательное обновление с помощью cfu-файлов.
Если же ошибка всё же возникла, попробуйте следующий порядок действий:
- Поставьте чистую конфигурацию, аналогичную вашей, а затем через конфигуратор, сохраните её в файл.
- Аналогично сохраните файл конфигурации проблемной базы и следующие шаги выполняйте в нём же.
- Откройте пункт меню «Конфигурация» > «Загрузить конфигурацию из файла». При запросе системы «Обновить конфигурацию БД» обязательно выбираем «Нет»
- Создайте новую конфигурацию поставщика через меню «Конфигурация» > «Настройка поддержки» > «Включить возможность изменения».
- Следующим шагом выбираем «Конфигурация» > «Сравнить Объединить с конфигурацией из файла» и указываете файл конфигурации, созданный на втором шаге.
- Соглашаемся с изменениями и применяем их к конфигурации информационной базы по кнопке F7 — «Обновить конфигурацию базы данных».
- Обновляете.
Ошибка при записи профиля
Данная ошибка вызвана, как правило, дублированием информации профилей. Зайдите в справочник пользовательских профилей: «Все функции» > Справочники > «Профили групп доступа» (не путайте со справочником «Пользователи)».
Раскройте все группы профилей и посмотрите, есть ли повторяющиеся записи. Удалите все ненужные дубли, и ошибка исчезнет.
Да, слышала, что такое может быть и при проблемном обновлении, но на практике не сталкивалась. Программа не позволит удалить дубли в пользовательском режиме. И сделать лишние элементы справочника НЕпредопрделенными тоже (даже через групповую обработку в режиме разработчика с отображением служебных реквизитов — пробовала в демобазе, выдает ошибку при попытке).
Обычно такие проблемы решают с помощью программистов, пишут обработку на удаление или изменение признака предопределенности для лишних элементов справочника. Но в первую очередь, Вам нужно будет определиться, какие именно элементы лишние. Можно визуально сделать их различимыми, изменить наименование у одной явки и у одного вида времени Ночные часы. Тогда станет понятно, какие виды времени используются в учете раб. времени при настройке начислений. Есть еще обработка Поиск ссылок на объекты (Все функции — Обработки — Стандартные) — с помощью нее тоже можно понять, какие конкретно виды времени используются в учете.
Если окажется, что часть начислений или графиков привязана к одной явке (ночным), а часть — к другой, то удалять лишние элементы сразу нельзя. Нужно сначала заменить виды времени для начислений и графиков так, чтобы все в итоге оказались привязаны к одной явке и ночным. Для массовой замены тоже обычно пишут обработки.
В интернете, думаю, можно встретить примеры таких обработок. Но их, скорее всего, придется «допиливать под себя». Поэтому без программиста лучше не рисковать. Или хотя бы попробовать сначала их действие на копии базы.