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