В процессе эксплуатации типовых конфигураций 1С, таких как Управление торговлей 11, Комплексная автоматизация или ERP, администраторы и программисты периодически сталкиваются с неприятным явлением: в журнале документов одна и та же реализация отображается несколько раз (иногда до 5-6 дублей). При этом, если пометить один такой «дубль» на удаление, в системе помечаются сразу все копии, что подтверждает логическую целостность объекта при ошибке отображения интерфейса.
Давайте разберемся, почему это происходит и как устранить данную проблему совместными усилиями, используя инструменты технического обслуживания базы данных.
Важно понимать, что в современных управляемых приложениях 1С журналы документов не всегда обращаются напрямую к таблице документов. Для обеспечения высокой скорости работы и гибкости отборов в конфигурациях используются вспомогательные регистры сведений, такие как Реестр документов. Эти регистры служат своеобразным «индексом» для интерфейса.
Когда происходит сбой (например, аварийное выключение питания или ошибка записи в фоновом задании), данные в этих регистрах могут задублироваться или рассинхронизироваться с основными таблицами. Стандартное Тестирование и исправление (ТиИ) не всегда помогает, так как для платформы эти записи могут выглядеть как корректные данные, относящиеся к разным ключам аналитики.
Рассмотрим последовательность действий для приведения журнала в нормальное состояние. Внимание: перед началом работ обязательно выполните резервное копирование всей информационной базы!
Реестр документов, Ключи аналитики учета по партнерам и Состояния ЭД.Консоли запросов выявите записи, которые ссылаются на одного и того же контрагента или документ.Исправление реестра документов в разделе «Администрирование» — «Обслуживание». Если таковая отсутствует, используйте инструменты «Корректировка данных».Тестирование и исправление с установленными галочками «Проверка логической целостности» и «Пересчет итогов».Если после выполнения очистки регистров проблема сохраняется, проанализируйте журнал регистрации на наличие ошибок, связанных с фоновыми заданиями. Зачастую задание Обновление аналитик учета не завершается корректно, что приводит к повторному накоплению ошибок.
Попробуйте выполнить программную перезапись проблемных документов. При вызове метода Записать() платформа должна принудительно перечитать данные и актуализировать записи в соответствующих регистрах сведений. Если при этом вызывается штатный механизм очистки старых записей регистра для конкретного регистратора, лишние дубли будут удалены автоматически.
Посмотрим на пример кода, который часто используется для программного обновления данных (использовать только для диагностических целей):
// Пример фрагмента для принудительной актуализации документа
ДокументОбъект = СсылкаНаДокумент.ПолучитьОбъект();
Если ДокументОбъект <> Неопределено Тогда
ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);
КонецЕсли;
В завершение подчеркнем, что описанная ситуация является следствием нарушения консистентности вспомогательных регистров. Всегда держите базу обновленной до последнего релиза от 1С: вендор регулярно выпускает исправления механизмов работы с регистрами ключей аналитики, которые предотвращают подобные «зацикливания» данных в будущем.