Предопределенный элемент отсутствует в данных
<ОбщийМодуль.УправлениеСвойствами.Модуль(1473)>: Ошибка при получении значения атрибута контекста (Справочник_Номенклатура)
НаборСвойств = Справочники.НаборыДополнительныхРеквизитовИСведений[ИмяЭлемента];
по причине:
Справочник.НаборыДополнительныхРеквизитовИСведений.Справочник_Номенклатура. Предопределенный элемент отсутствует в данных
Как можно исправить эту ошибку?
(8) Почисти кэш в AppData/Roaming, выгони всех из базы и оставь в папке(если файловая) только файл 1Cv8.1CD
Если же SQL-вариант, то выгрузи в ДТ и загрузи обратно.
(0) В Гугле уже забанили?
Первой строкой по запросу "Предопределенный элемент отсутствует в данных"
1с предопределенный элемент отсутствует в данных как исправить
От типовых конфигураций ожидается, что обновления будут проходить всегда без сучка, без задоринки. Но иногда из-за того, что возможности по конфигурированию системы переносятся на уровень 1с:Предприятия, возникают неожиданные сложности при установке обновления даже на базовые версии типовых конфигураций. Рассмотрим пример ошибки обновления Бухгалтерии предприятия базовая, редакция 3.0.
При обновлении на релиз 3.0.103.12 при выполнении процедур обновления в режиме 1с:Предприятия на одной из баз возникала следующая ошибка: Справочник.КодыОперацийПрослеживаемости.УКДНаУменьшениеВыданный Предопределенный элемент отсутствует в данных.
На всякий случай проверяем, что в конфигурации предопределенное значение УКДНаУменьшениеВыданный справочника КодыОперацийПрослеживаемости на месте, хотя ошибка в случае отсутствия предопределенного имени была бы «Поле оъекта не обнаружено», значит, действительно по каким-то причинам нового значения не оказалось на уровне базы данных.
Начиная с определенного релиза платформы с предопределенными данными стало возможно работать программно: привязывать предопределенное имя к конкретному элементу справочника, что вызвало необходимость синхронизации данных в конфигураторе и в базе данных, а также необходимость настраивать политику обновления предопределенных значений.
Бывает три значения настройки политики обновления предопределенных значений: Авто, ОбновлятьАвтоматически, НеОбновлятьАвтоматически. В случае указания ОбновлятьАвтоматически в 1с:Предприятии при обновлении сам создается нужный элемент справочника и привязывается к предопределенному имени. В случае НеОбновлятьАвтоматически — элемент справочника и связь с предопределенным именем надо создавать самому. Настройка Авто нужна для того, что сделать настройки многоуровневыми, регулирующими поведение как конкретного справочника (плана видов характеристик, плана видов субконто), так и всей базы в целом.
Настройка политики обновления предопределенных значений задается одновременно на трех разных уровнях:
- для таблицы базы данных,
- для объекта метаданных в конфигураторе
- для всей информационной базы.
Итоговое значение настройки, которое и влияет на результат обновления, вычисляется по следующему алгоритму. Сначала проверяется настройка для таблицы базы данных (это настройка на уровне базы данных, она зависит от конкретного экземпляра базы данных, а не от релиза конфигурации). Если она не равна Авто, то используется именно она. Если на уровне таблицы установлено Авто, то проверяется настройка для объекта метаданных в конфигураторе (эта настройка зависит от релиза, она находится в метаданных).
В конфигурации настройка — это свойство справочника «Обновление предопределенных данных».
Если она тоже Авто, то проверяется настройка для всей информационной базы (так же эта настройка хранится в данных информационной базы и не зависит от релиза). Если и она равна Авто, то смотрим, является ли данная база периферийным узлом распределенной информационной базы. Если да, то используется НеОбновлятьАвтоматически. В противном случае настройка будет ОбновлятьАвтоматически.
В таблице Редактора предопределенных значений Портативных инструментов разработчика выведены как текущие настройки разных уровней, так и результирующее значение которое будет применено при обновлении.
В данном случае мы видим, что на уровне всей базы установлена глобальная настройка НеОбновлятьАвтоматически и поскольку и на уровне таблицы, и на уровне метаданных стоит Авто, то именно она и была применена в процессе обновления, вызывая ошибку отсутствия предопределенного элемента!
Поскольку база не является узлом РИБ, то достаточно установить глобальный режим Авто, чтобы требуемое обновление было благополучно установлено. Согласно порядку определения итоговой настройки она будет тогда ОбновлятьАвтоматически.
Таким образом у нас получается один уровень настройки в конфигураторе, а два — самый детальный и самый общий — на уровне данных информационной базы, чем и объясняется неожиданное появление ошибки при многократных успешных обновлениях других баз.
Если под рукой нет Портативных инструментов разработчика, эти настройки легко установить самостоятельно. Для установки данной настройки на уровне таблицы базы данных используется метод УстановитьОбновлениеПредопределенныхДанных.
Значение = ОбновлениеПредопределенныхДанных.НеОбновлятьАвтоматически;
Справочники.КодыОперацийПрослеживаемости.УстановитьОбновлениеПредопределенныхДанных(Значение);
Установка настройка для всей информационной базы делается с помощью метода УстановитьОбновлениеПредопределенныхДанныхИнформационнойБазы.
Значение = ОбновлениеПредопределенныхДанных.НеОбновлятьАвтоматически;
УстановитьОбновлениеПредопределенныхДанныхИнформационнойБазы(Значение);
[ Вопрос дня ] Почему при обновлении конфигурации возникает ошибка “Предопределенный элемент отсутствует в данных”?
Обновление конфигураций – тема всегда актуальная для любого специалиста 1С. Наверняка каждый из вас сталкивался с трудностями при обновлении как типовых, так и нетиповых конфигураций. Ошибки могут возникнуть в любом варианте.
Курс Разработка расширений и технологии доработки конфигураций 1С без снятия с поддержки включает в себя объемный модуль “Обновление конфигураций”, в котором рассматриваются вопросы обновлений как типовых, так и адаптированных конфигураций. В Мастер-группе курса можно задавать любые возникающие вопросы по теме. Многие слушатели используют такую возможность.
Вопрос
(нажмите, чтобы увеличить картинку)
(нажмите, чтобы увеличить картинку)
Ответ
На партнерском форуме обнаружил описание такой же ошибки, но возникает она при обновлении конфигурации 1С:Зарплата и кадры государственного учреждения на релиз 3.1.12.110: “Справочник.ВидыВычетовНДФЛ.Код511. Предопределенный элемент отсутствует в данных”
Представители фирмы “1С” предлагают следующее:
Есть предположение, что в ИБ установлено неудачное значение режима обновления предопределенных данных – должно быть установлено Авто. Проверить это значение можно методом глобального контекста ПолучитьОбновлениеПредопределенныхДанныхИнформационнойБазы(), установить правильное значение – методом УстановитьОбновлениеПредопределенныхДанныхИнформационнойБазы().
Попробуйте этой рекомендацией воспользоваться. То есть можно создать внешнюю обработку, в которой при нажатии на кнопку Выполнить следующий код:
Ошибка 1С «Предопределенный элемент отсутствует в данных»
Эта ошибка возникает, если в конфигураторе задан предопределенный элемент справочника или плана счетов, а в ИБ нет ссылки, которая ему соответствует. В платформе 8.3 появился стандартный строковый реквизит ИмяПредопределенныхДанных , который можно заполнить либо очистить у любого элемента. По нему платформа и ищет ссылки, соответствующие предопределенным элементам. Соответственно, для исправления ошибки необходимо выбрать существующий элемент справочника (или плана счетов) либо создать новый, и любым заполнить у него значение этого реквизита (программно, обработкой «Групповая обработка справочников и документов», обработкой «Групповое изменение реквизитов» и т.д.).