Таблица метаданных истории данных содержит не уникальные записи

1. dmitrdr 10.02.21 18:17 Сейчас в теме
При обновлении на новую версию выдает ошибку "Таблица метаданных истории данных содержит не уникальные записи". Кто-нибудь сталкивался с такой проблемой? Пробовал выключать версионирование и очищать историю, не помогает.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. yaafanasyev 04.03.21 12:43 Сейчас в теме
(1) В платформенном механизме по хранению истории проблема какая-то. У меня была подобная ошибка, ругалась на справочник Контрагенты, при том, что он структурно не был изменен. Удаление платформенных версий не помогло.
Решил проблему только через удаление в SQL записей в табличке _DataHistoryMetadata. Удалил все записи, у которых _MetadataVersionNumber <> 1 (чтобы все не затереть).
После данного инцидента вернулись на историю объектов через БСП. Платформенную историю отключили.
3. dmitrdr 18.03.21 16:09 Сейчас в теме
(2) Спасибо, сделали также.
4. AlexK_2012 10.10.22 11:31 Сейчас в теме
подскажите пример запроса пожалуйста
5. user1203706 14 10.10.22 11:42 Сейчас в теме
(4)
DELETE FR OM [dbo].[_DataHistoryMetadata]
      WH ERE [_MetadataVersionNumber]>1
GO
sir; dolgovaea90; Rus1k; AlexK_2012; +4 Ответить
6. mmch 131 10.03.23 15:07 Сейчас в теме
Помогло спасибо
Предлагаю заменить отбор удаления по номеру версии, и удалить все не актуальные, оставив только актуальные версии


Таблица версий метаданных истории данных _DataHistoryMetadata

_MetadataId – Идентификатор объекта метаданных
_IsSettings – Флаг версия метаданных сформирована при изменении настроек
_IsActual – Флаг версия метаданных является актуальной
_MetadataVersionNumber – Номер актуальной версии метаданных
_Content – Метаданные объекта
_Fld<n> - Общие реквизиты

Вот так:
delete FR OM [dbo].[_DataHistoryMetadata]
-- WHERE [_MetadataVersionNumber]>1
WH ERE [_IsActual] = 0
GO
7. JohnyDeath 302 08.08.23 11:53 Сейчас в теме
А что именно обновляли? Платформу? С какой на какую?
8. alxEKB 23.10.24 08:05 Сейчас в теме
Столкнулся с такой же проблемой при обновлении ERP.
Удалять строки не совсем корректно, ведь проблема заключается в том, что в таблице сразу несколько версий
для одного объекта метаданных, помеченные как актуальные. Достаточно, просто снять пометку актуальности со всех версий, кроме последней. Я сделал это так:

UPD ATE _DataHistoryMetadata
SE T _IsActual = 0x00
FR OM (SEL ECT _MetadataId,
MAX(_MetadataVersionNumber) AS "LastVersionNumber"
FR OM _DataHistoryMetadata
GROUP BY _MetadataId) AS MaxVersions
WH ERE _DataHistoryMetadata._IsActual = 0x01
AND _DataHistoryMetadata._MetadataVersionNumber <> MaxVersions.LastVersionNumber
AND _DataHistoryMetadata._MetadataId = MaxVersions._MetadataId
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот