Таблица метаданных истории данных содержит не уникальные записи
По теме из базы знаний
- Выгрузка-загрузка любых данных из 1С (и измененных) в XML между похожими конфигурациями (ФАЙЛ, HTTP, COM) ЛЮБЫХ баз 1С 8.1-8.3 с обработкой и поиском данных по произвольным полям поиска
- Конфигурация Flowcon: Набор инструментов для управления задачами, проектами и бизнесом в 1С
- Не спеша, эффективно и правильно – путь разработки. Часть 3. Практика
- Универсальная загрузка данных формата Excel
- Очистка истории изменения цен номенклатуры для снижения размера регистра Цены Номенклатуры (2.0; 2.5)
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) В платформенном механизме по хранению истории проблема какая-то. У меня была подобная ошибка, ругалась на справочник Контрагенты, при том, что он структурно не был изменен. Удаление платформенных версий не помогло.
Решил проблему только через удаление в SQL записей в табличке _DataHistoryMetadata. Удалил все записи, у которых _MetadataVersionNumber <> 1 (чтобы все не затереть).
После данного инцидента вернулись на историю объектов через БСП. Платформенную историю отключили.
Решил проблему только через удаление в SQL записей в табличке _DataHistoryMetadata. Удалил все записи, у которых _MetadataVersionNumber <> 1 (чтобы все не затереть).
После данного инцидента вернулись на историю объектов через БСП. Платформенную историю отключили.
Помогло спасибо
Предлагаю заменить отбор удаления по номеру версии, и удалить все не актуальные, оставив только актуальные версии
Таблица версий метаданных истории данных _DataHistoryMetadata
_MetadataId – Идентификатор объекта метаданных
_IsSettings – Флаг версия метаданных сформирована при изменении настроек
_IsActual – Флаг версия метаданных является актуальной
_MetadataVersionNumber – Номер актуальной версии метаданных
_Content – Метаданные объекта
_Fld<n> - Общие реквизиты
Вот так:
delete FR OM [dbo].[_DataHistoryMetadata]
-- WHERE [_MetadataVersionNumber]>1
WH ERE [_IsActual] = 0
GO
Предлагаю заменить отбор удаления по номеру версии, и удалить все не актуальные, оставив только актуальные версии
Таблица версий метаданных истории данных _DataHistoryMetadata
_MetadataId – Идентификатор объекта метаданных
_IsSettings – Флаг версия метаданных сформирована при изменении настроек
_IsActual – Флаг версия метаданных является актуальной
_MetadataVersionNumber – Номер актуальной версии метаданных
_Content – Метаданные объекта
_Fld<n> - Общие реквизиты
Вот так:
delete FR OM [dbo].[_DataHistoryMetadata]
-- WHERE [_MetadataVersionNumber]>1
WH ERE [_IsActual] = 0
GO
Столкнулся с такой же проблемой при обновлении 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
Удалять строки не совсем корректно, ведь проблема заключается в том, что в таблице сразу несколько версий
для одного объекта метаданных, помеченные как актуальные. Достаточно, просто снять пометку актуальности со всех версий, кроме последней. Я сделал это так:
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
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот