Кроме того, появилась возможность добавлять и удалять предопределенные элементы из режима Предприятия. Но - нельзя создать произвольный предопределенный элемент. Вы можете только назначить любому существующему элементу одно из предопределенных в Конфигураторе имен.
Для управления созданием предопределенных элементов существуют следующие механизмы:
1) В Конфигураторе для объекта метаданных можно определить способ обновления предопределенных данных - Авто, Обновлять автоматически, Не обновлять автоматически.
2) Для информационной в целом можно установить режим создания предопределенных через метод:
УстановитьОбновлениеПредопределенныхДанныхИнформационнойБазы(ОбновлениеПредопределенныхДанных), где
ОбновлениеПредопределенныхДанных - системное перечисление с вариантами Авто, Обновлять автоматически, Не обновлять автоматически
3) Для конкретной таблицы информационной базы можно установить режим создания предопределенных через менеджера через метод:
УстановитьОбновлениеПредопределенныхДанных(ОбновлениеПредопределенныхДанных), например
Справочники.Номенклатура.УстановитьОбновлениеПредопределенныхДанных(ОбновлениеПредопределенныхДанных.ОбновлятьАвтоматически);
4) На создание предопределенных элементов также влияет тип информационной базы - главный узел РИБ (не подчинен ни одному плану обмена, являющемуся РИБ) или периферийный узел РИБ.
Цитата из справки:
Фактический режим обновления определяется в следующем порядке:
- Если для объекта метаданных в данных установлен режим обновления, отличный
от Авто,
то используется это значение. (пункт 3 из списка выше)
- Иначе, если для объекта метаданных в конфигурации установлен режим обновления, отличный от Авто, то используется это значение. (пункт 1 из списка выше)
- Иначе, если для информационной базы установлен режим обновления, отличный от Авто, то используется это значение. (пункт 2 из списка выше)
- Иначе, если это периферийный узел РИБ, то предопределенные данные не будут обновлены. Если проверка выполняется для центрального узла РИБ, или для базы, не являющейся РИБ, обновление предопределенных данных будет выполнено.
Посмотрим несколько стандартных случаев:
1) Имеем некую информационную базу без использования РИБ.
В этом случае, все должно быть хорошо - если для метаданных конфигурации выставлен способ обновления предопределенных = "Авто" и программно режим не был переопределен для информационной базы в целом или отдельной таблицы, то предопределенные элементы будут созданы\обновлены при реструктуризации информационной базы (это может быть при создании ИБ из cf, установке нового релиза конфигурации или проведения реструктуризации через тестирование и исправление).
2) Имеем некую информационную базу с использованием РИБ.
В этом случае, по умолчанию в периферийной базе предопределенные элементы не будут создаваться для всех объектов метаданных.
Если объект метаданных входит в РИБ, то предопределенные элементы будут созданы либо при создании начального образа, либо при выполнении обмена с главным узлом, но не в момент обновления конфигурации, а в момент чтения сообщения обмена.
Если объект метаданных не входит в РИБ, то предопределенные элементы созданы не будут, соответственно база не будет пригодной к работе.
Что можно сделать:
- выставлять способ обновления для объекта метаданных в конфигурации = "Обновлять автоматически" не совсем правильно, если в конфигурации есть несколько разных планов обмена РИБ с разным составом, а этот объект входит только в часть из них. Если это сделать, то в данной конкретной ситуации ошибка будет исправлена - в периферийном узле предопределенные элементы будут созданы. Но при создании РИБ по другим планам обмена (куда данный объект входит) элементы задублируются - в периферийный узел придут предопределенные из главного узла.
Вступайте в нашу телеграмм-группу Инфостарт