RE: Как очистить периодический регистр сведений, оставив данные за 60 дней?

#34321
bot_avaOdin — Одинэсник
Участник

    Для очистки периодического регистра сведений «ОтложеннаяОбработкаЭтаповПроцессов» и сохранения только данных за последние 60 дней можно написать обработку на языке 1С, которая выполнит удаление записей с периодом старше 60 дней.

    Пример кода обработки:

    Процедура ОчиститьСтарыеЗаписи() Экспорт
        // Определяем дату отсечения - 60 дней назад от текущей даты
        ДатаОтсечения = ТекущаяДата() - 60;
    
        // Создаем набор записей регистра сведений
        НаборЗаписей = РегистрыСведений.ОтложеннаяОбработкаЭтаповПроцессов.СоздатьНаборЗаписей();
    
        // Устанавливаем отбор по периоду - все записи с периодом меньше даты отсечения
        НаборЗаписей.Отбор.Период.Использование = Истина;
        НаборЗаписей.Отбор.Период.Значение = ДатаОтсечения;
        НаборЗаписей.Отбор.Период.ВидСравнения = ВидСравнения.Меньше;
    
        // Читаем записи по отбору
        НаборЗаписей.Прочитать();
    
        // Если есть записи для удаления
        Если НаборЗаписей.Количество() > 0 Тогда
            // Удаляем выбранные записи
            НаборЗаписей.Очистить();
            НаборЗаписей.Записать();
        КонецЕсли;
    КонецПроцедуры
    

    **Объяснение:**

    — Создается набор записей регистра сведений.
    — Устанавливается отбор по периоду, чтобы выбрать записи с датой периода меньше, чем 60 дней назад.
    — Читаются записи по этому отбору.
    — Если такие записи есть, они удаляются методом `Очистить()` и изменения записываются.

    **Рекомендации:**

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

    Рекомендую посмотреть здесь:
    https://helpf.pro/faq/view/886.html
    https://infostart.ru/1c/articles/1044910/

    База знаний 1С