Чистка справочника «Ключи реестра документов» от дублей с восстановлением целостности регистра «Реестра документов»

12.01.26

База данных - Чистка данных

Автоматический поиск и удаление дублей в справочнике «КлючиРеестраДокументов» с одновременным восстановлением регистра сведений «РеестрДокументов»: выбор основного ключа, удаление лишних и переотражение документов для сохранения корректных записей.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Чистка справочника «КлючиРеестраДокументов» от дублей с восстановление целостности регистра «РеестраДокументов»:
.epf 10,68Kb
3 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Обработка предназначена для поиска и удаления дублей элементов справочника "КлючиРеестраДокументов" с одновременным контролем и восстановлением записей регистра сведений «РеестрДокументов» по связанным документам.

 

 

Что делает обработка

  • Находит все ключи из справочника «КлючиРеестраДокументов», которые встречаются больше одного раза (дублирующие ключи).

  • Для каждого ключа выбирает один «оставающийся» объект, остальные экземпляры этого ключа помечает как удаляемые и удаляет их.

  • Проверяет, какие документы в регистре «РеестрДокументов» при этом потеряют записи по старым ключам, и перезаписывает регистр для таких документов.

 

Логика поиска дублей

  • Функция ДублирующиеКлючи(Истина) строит временную таблицу ВТДубли с ключами, где СУММА(1) > 1.

  • Далее по этим ключам выбираются все записи справочника «КлючиРеестраДокументов» (поле Ссылка + Ключ), результат возвращается с итогами по Ключу.

  • В УдалитьДублиНаСервере результат обходится по группировкам по Ключу: первая ссылка в группе считается основной, остальные собираются в массив «УдаляемыеКлючи».

 

Как обрабатываются регистр и документы

  • Перед удалением дублей формируется запрос ТекстЗапросаПропадающихЗаписейРеестра, который для каждого документа в регистре «РеестрДокументов» определяет, останется ли хотя бы одна запись с «остающимся» ключом или записи есть только по удаляемым ключам.

  • Для каждого ключа:

    • Дублирующиеся элементы справочника по этому ключу загружаются как объекты и удаляются с флагом ОбменДанными.Загрузка = Истина (служебный режим, обычно для массовых изменений/обновления).

    • По документам, у которых записи «пропали» (ЗаписьОстается = Ложь), выполняется инициализация и перезапись данных в регистре вызовом РеестрДокументов.ИнициализироватьИЗаписатьДанныеДокумента.

    • Если обработка запущена в режиме обновления ИБ (ЭтоОбновлениеИБ = Истина), документы помечаются в механизме обновления как обработанные и, при необходимости, ставятся в очередь отложенных обработчиков.

 

Для чего использовать

  • Для чистки служебного справочника ключей реестра документов после сбоев, неверных миграций или обновлений, когда по одному и тому же ключу создаётся несколько элементов.

  • Для восстановления целостности регистра «РеестрДокументов»: чтобы документы, связанные с удаляемыми ключами, получили корректные записи по оставшемуся ключу.

  • Для безопасного обслуживания/обновления базы, когда важно убрать дубли служебных ключей и не потерять данные регистра.

Проверено на следующих конфигурациях и релизах:

  • 1С:Библиотека стандартных подсистем, редакция 3.1, релизы 3.1.11.392
  • Управление торговлей, редакция 11, релизы 11.5.25.85

Вступайте в нашу телеграмм-группу Инфостарт

1C КлючиРеестраДокументов дубли ключей удаление дублей РеестрДокументов реестр сведений восстановление регистра переотражение документов обновление ИБ очистка данных целостность данных