1С предопределенный элемент отсутствует в данных

При работе с предопределенными данными могут встречаться следующие ошибки:

  • Попытка обратиться к предопределенному элементу приводит к ошибке "Предопределенный элемент отсутствует в данных". Возможные причины появления такой ошибки:
  • Это периферийный узел и предопределенные данные из центрального узла еще не загружены.
  • Область информационной базы инициализирована, когда обновление предопределенных данных отключено на уровне информационной базы или на уровне проблемного объекта метаданных.
  • Предопределенные данные удалены.
  • У предопределенных данных очистили значение реквизита "ИмяПредопределенныхДанных".
  • При работе с предопределенными данными обнаружено дублирование (две или более записи в данных имеют одно значение свойства ИмяПредопределенныхДанных). Возможные причины такой ошибки
    • Предопределенные элементы созданы в режиме "ОбменДанными.Загрузка = Истина". Например, при обмене данными в РИБ.
    • Анализ причин ошибок при работе с предопределенными данными и способы их устранения.

      Во всех случаях должна быть включена запись событий в журнал регистрации с уровнем "Информация".

      Отсутствие предопределенных элементов в данных

      Необходимо в журнале регистрации выполнить отбор по проблемному объекту метаданных и следующим событиям:

      • Данные:
      • Изменение предопределенных данных,
      • Удаление предопределенных данных,
      • Установка инициализации предопределенных данных,
    • ИнформационнаяБаза:
      • Обновление предопределенных данных,
      • Установка обновления предопределенных данных.
      • По событиям в списке можно понять, почему предопределенный элемент не обнаружен.
        Если в журнале имеется события " Данные. Изменение предопределенных данных ", у которых новое имя предопределенных данных – пустая строка. Это значит, что пользователь или код на встроенном языке очистил имя предопределенных данных, сделав элемент не предопределенным. Для восстановления элемента достаточно вернуть свойству ИмяПредопределенныхДанных старое значение. Желательно доработать конфигурацию таким образом, чтобы не допустить повторение такой ситуации: изменить права, модифицировать код на встроенном языке.
        Если в конфигурации есть событие " Данные. Удаление предопределенных данных ", то это означает, что предопределенные данные удалены пользователем или из встроенного языка. Для исправления необходимо создать недостающий предопределенный элемент. Изменить конфигурацию таким образом, чтобы не допускать удаления используемых предопределенных данных.
        Если в журнале имеется событие " Данные. Установка инициализации предопределенных данных ", в которых установлен признак инициализации предопределенных данных, то это означает, что из встроенного языка был установлен признак инициализации предопределенных данных, а предопределенные элементы не созданы (все или частично). Для исправления необходимо модифицировать конфигурацию, чтобы создавались все предопределенные данные, либо не было обращений к отсутствующим данным.
        Если в журнале имеется событие " ИнформационнаяБаза. Обновление предопределенных данных ", в котором есть комментарий "Обновление предопределенных данных отключено". Это означает, что в базе данных на уровне ИБ, узла или объекта метаданных отключено автоматическое обновление предопределенных данных. В таком случае платформа не выполняет реструктуризацию предопределенных данных. Для выяснения источника проблемы необходимо:

        • Убедиться, что это не периферийный узел. В периферийном узле предопределенные данные загружаются из центрального узла. Поэтому в логике работы конфигурации необходимо предусмотреть возможность загрузки изменений из центрального узла до работы с предопределенными данными из кода конфигурации.
        • Проанализировать события " ИнформационнаяБаза. Установка обновления предопределенных данных ", в которых установлено отключение обновления предопределенных данных. Если перед обновлением конфигурации было отключено обновление предопределенных данных, то необходимо восстановить автоматическое обновление предопределенных данных с помощью метода " УстановитьОбновлениеПредопределенныхДанныхИнформационнойБазы ", если отключено для всей ИБ, или метода " УстановитьОбновлениеПредопределенныхДанных ", если отключено для конкретного объекта метаданных. Изменить конфигурацию таким образом, чтобы не допустить повторения этой ситуации. Недостающие предопределенные данные необходимо создать, для корректной работы или изменить конфигурацию таким образом, чтобы не было обращений к этим метаданным.
        • Проверить конфигурацию. Возможно для объекта метаданных установлено свойство ОбновлениеПредопределенныхДанных в значение НеОбновлятьАвтоматически . В таком случае необходимо исправить ошибку в конфигурации.
        Читайте также:  Что находится в облаке

        Дублирование предопределенных данных.

        Дубли могут возникать только в режиме загрузки данных (ОбменДанными.Загрузка = Истина). В этом случае контроль уникальности предопределенных будет отключен.
        Если в журнале регистрации есть записи " Данные. Добавление предопределенных данных ", значение ИмяПредопределенныхДанных у которых приводит к дублю. Это означает, что дубли предопределенных данных созданы из встроенного языка, например, были загружены при обмене данными.
        Если в журнале регистрации есть записи " Данные. Изменение предопределенных данных ", значение НовоеИмяПредопределенныхДанных у которых приводит к дублю. Это означает, что дубли предопределенных данных созданы пользователем или из встроенного языка, например, были загружены при обмене данными или в форме элемента некорректно установлен режим загрузки и пользователь указал дублирующее имя.
        В этих случаях для исправления ошибки необходимо определить, какой элемент является корректным (например, определив ссылки на него) и ненужный элемент сделать обычным (не предопределенным, очистив поле ИмяПредопределенныхДанных ). Обязательно перед удалением элемента проверьте необходимость заменить ссылки с удаляемого предопределенного элемента на корректную ссылку.

        Рекомендации по работе с предопределенными данными

        Если вы не планируете самостоятельно управлять предопределенными данными и ожидаете, что они всегда есть в базе данных, то вам следует:

        • Ограничить права доступа на предопределенные данные таким образом, чтобы было невозможно их удалять или очищать свойство ИмяПредопределенныхДанных .
        • Избегать модификации предопределенных данных в привилегированном режиме.
        • Избегать модификации в режиме загрузки данных, когда свойство " ОбменДанными.Загрузка " установлено в " Истина ".
        • Не отключать автоматическое обновление предопределенных данных.

        Необходимо помнить, что в периферийном узле все предопределенные данные не создаются платформой, а приходят из центрального узла. Поэтому при разработке конфигураций, работающих в РИБ, следует обязательно анализировать как будет выполняться обновление данных при первом запуске, чтобы не обращаться к новым предопределенным данным до их загрузки из центрального узла.

        Читайте также:  Семейное дерево шаблон распечатать формат а4 раскраска

        Подскажите как можно исправить? Не могу обновить на 3.0.65.80 и на 3.0.65.72 Кэш почищен, база тестирована.
        Появляется ошибка «ПланСчетов.Хозрасчетный.ПреобретениеЗемельныхУчастков Предопределенный элемент отсутствует в данных»

        Первый способ: Решением в данном случае может быть обновление с использованием «cf» файла, который содержится в папке обновления. Для этого надо произвести обновление в режиме конфигуратора и вручную выбрать cf файл.

        Второй способ: Вытащить из другой базы недостающий элемент и через обработку загрузить. После перезагрузить.
        Или перед обновлением почистить кэш и сделать ТИИ. Для этого в режиме конфигуратора выберите пункт ‘Администрирование’-‘Тестирование и исправление…’

        Уроки на все случаи жизни.

        После обновления программы «1С:Управление торговлей, редакция 11.2» перестали открываться элементы справочника «Партнеры».
        При попытке открытия элемента на экране появляется предупреждение «Справочник.НаборыДополнительныхРеквизитовИСведений.Справочник_Партнеры. Предопределенный элемент отсутствует в данных».

        При нажатии кнопки «Подробно» описание ошибки:

        «<ОбщийМодуль.УправлениеСвойствами.Модуль(1499)>: Ошибка при получении значения атрибута контекста (Справочник_Партнеры)
        НаборСвойств = Справочники.НаборыДополнительныхРеквизитовИСведений[ИмяЭлемента];
        по причине:
        Справочник.НаборыДополнительныхРеквизитовИСведений.Справочник_Партнеры. Предопределенный элемент отсутствует в данных»

        Проблему удалось обойти создав предопределенный элемент справочника «Наборы дополнительных реквизитов и сведений» в режиме «1С:Предприятие» и привязав его к предопределенному элементу «Справочник_Партнеры» этого же справочника в конфигураторе.

        В некоторых справочниках, в том числе и в справочнике «Наборы дополнительных реквизитов и сведений», создать новый элемент можно только с помощью встроенного языка 1С. Привязать пользовательский предопределенный элемент к предопределенному элементу конфигуратора можно только с помощью встроенного языка 1С.

        Если у Вас возникнет подобная ситуация и Вы не владеете программированием 1С, Вы можете воспользоваться обработкой «Создаем предопределенный элемент».

        Перед использованием обработки рекомендую сделать резервную копию базы данных.

        Работу обработки рассмотрим на моём примере.

        Из описания ошибки нас интересует только строка:

        Из строки мы видим название (имя) справочника в конфигураторе:

        Читайте также:  Fujifilm x t20 kit примеры фото

        В обработке в поле «Справочник» выбираем соответствующее имя.

        В конфигураторе имя предопределенного элемента:

        Копируем это имя и вставляем в поле обработки «Имя предопределенного элемента»

        Нажимаем кнопку «Выполнить».

        Обработка подходит для любых программ с управляемой формой на платформе 1С:Предприятие 8.3

        Для скачивания нажмите кнопку «Скачать».

        Эти статьи Вам могут понравиться:

        Нажимайте кнопки! Делитесь информацией с друзьями! Нажимайте кнопки! Делитесь информацией с друзьями!

        Предопределенный элемент отсутствует в данных. : Один комментарий

        Спасибо большое, очень помогла ваша разработка. Билась с этой ошибкой 2 дня, а тут нажал на кнопку и все