Skip to content

Latest commit

 

History

History
28 lines (19 loc) · 3.42 KB

Check.md

File metadata and controls

28 lines (19 loc) · 3.42 KB

Проверки

IsActual

Проверка соответствия флага _IsActual последней версии метаданных

Возникающие ситуации:

При использовании Истории данных периодически встречается ситуация, когда

  • добавленный в метаданные реквизит объекта не виден в отчетах версий объекта, при сравнении версий
  • при переходе на версию не восстанавливается
  • в стандартной обработке в списке полей для фильрации новые реквизиты не видны

Описание причины:

При добавлении новой версии метаданных у предыдущей остается флаг _IsActual = 0х01 (должен установиться 0х00)
Из-за этого все версии объекта "прикрепляются" к первой попавшейся (самой старой) версии метаданных, в которой нет добавляемых реквизитов

При реструктуризациях новая версия метаданных в _DataHistoryMetadata может не создаваться (объект при множестве изменений содержит всего одну версию). Решение ниже >>

CheckMetadata_IsActual.sql - проверка существования проблемных объектов

RestoreMetadata_IsActual.sql - исправление (исправляет IsActual и обновляет версию метаданных у объекта)


Решение зависания версии метаданных

Известные варианты обхода подобного зависания:

  • включить в конфигураторе у объекта ИсторияДанных: Использовать, обновиться, потом можно выключить. При этом в _DataHistoryMetadata создадутся явно кривые, пугающие записи. Не рекомендую использовать.
  • через Инструменты обработчика 1C обработкой история данных выключить-включить историю любого реквизита проблемного объекта. Добавится 4 новые версии метаданных. Первая (последняя до добавления) предположительно останется с флагом _IsActual = 0x01. Если это так, то скрипт RestoreMetadata_IsActual.sql автоматически исправит и дублирование флагов, и версии метаданных у записей истории. Если дублирования флага не произошло, то требуется самостоятельно в таблице _DataHistoryVersions установить те версии метаданных версий объектов (_MetadataVersionNumber), которые владелец БД считает логически верными.