Удаление избыточных записей регистра сведений

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

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

В первый раз понадобилась обработка для регистра сведений цены, где записей было уже более 7 млн. И пусть этих записей будет даже больше, но уже такое количество было не по причине большого справочника номенклатуры, а частым созданием документа изменения цен. При этом половина записей по совпадающим значениям измерений полностью дублировало предыдущую запись (т.е. создание таких записей на срез последних не влияло). И если срез первых нам не нужен, то зачем хранить такие записи (особенно в старых периодах)? В итоге удалив такие записи в прошлых периодах размер регистра удалось сократить вдвое.

Во второй раз обработка понадобилась в конфигурации Инталев, где регистр имел 13 млн записей. Там старые периоды можно было бы вообще удалить, но решил пойти по уже проверенному пути. 

Вот такая в итоге получилась обработка. 

 

5 Comments

  1. zzz_natali

    Кто будет конвертировать обработку под 8.2, то немного допилить:

    РС.МоментВремени заменить на РС.Регистратор.МоментВремени

    Reply
  2. V.Nikonov

    Разумнее оставлять первые записи, дабы корректнее было начало действия значения. А подтверждать значение не требуется.

    А что происходит с документами устанавливающие значения? Чистится только регистр сведений?

    В моём случае, я предпочёл допилить «УстановкаЦенНоменклатуры»… Документ выкидывает при записи строки установки повторяющие значение за предыдущий период.

    Reply
  3. etoropa

    (1) zzz_natali, Постараюсь сделать до выходных.

    (2) V.Nikonov, У меня как раз остается только первая запись. Можно удалять и строки в документах, но я в случае с ценами решил оставить. Обращение к таблице документа выполняется очень редко — поэтому, если не гнаться за уменьшением объема базы, смысла особо не имеет.

    В инталеве я почистил табличную часть, но там вообще особый случае. Документ генерируется при открытии, а значение реквизитов шапки хранятся в табличной части документа. По сравнению с документом установки цен хранится очень много избыточной информации.

    Reply
  4. Stas-ch

    Учитывается в обработке следующий вариант:

    Период — Измерение — ресурс

    Период1 — Ном1 — Рес1

    Период2 — Ном1 — Рес2

    Период3 — Ном1 — Рес1

    по идее здесь нет дублей. Как отработает обработка?

    Reply
  5. etoropa

    (4) Stas-ch, Обработка ничего не удалит.

    Удаляются только те записи, которые не повлияют на срез последних.

    Для приведенного примера удаление любой из записей приведет к изменению среза последних в интервале между периодами, либо после период3

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *