Каталог решений - Очистка истории изменения объектов УПП

Очистка истории изменения объектов УПП

Очистка истории изменения объектов УПП

В наличии

Описание варианта реализации очистки версий объектов старше определённого периода.

Категория:

Описание

За год чуть больше чем на 20ГБ бэкап разрастался. Решил вставить автоматическую чистку уже устаревших данных по истории изменений объектов в базе.

Появилась идея не полностью чистить регистр, а просто очищать самую объемную часть — Хранилище значений.

Таким образом, записи остаются с историей изменений, и база сильно не разрастается. Также можно включить историю по всем объектам, не экономя.

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

Процедура ЧисткаВерсийОбъектов() Экспорт

	Запрос = Новый Запрос;
	Запрос.Текст = "ВЫБРАТЬ
	               |	ВерсииОбъектов.Объект,
	               |	ВерсииОбъектов.НомерВерсии,
	               |	ВерсииОбъектов.ДатаВерсии
	               |ИЗ
	               |	РегистрСведений.ВерсииОбъектов КАК ВерсииОбъектов
	               |ГДЕ
	               |	ВерсииОбъектов.ДатаВерсии < &ДатаВерсии
	               |	И НЕ ВерсииОбъектов.ВерсияПроигнорирована
	               |
	               |СГРУППИРОВАТЬ ПО
	               |	ВерсииОбъектов.Объект,
	               |	ВерсииОбъектов.НомерВерсии,
	               |	ВерсииОбъектов.ДатаВерсии
	               |
	               |УПОРЯДОЧИТЬ ПО
	               |	ВерсииОбъектов.ДатаВерсии";
	Запрос.УстановитьПараметр("ДатаВерсии", ДобавитьМесяц(ТекущаяДата(),-7)); //старше пол года. Можете этот параметр получать из константы или настройки любой для возможности менять.
	Выборка = Запрос.Выполнить().Выбрать();
	НаборЗаписей = РегистрыСведений.ВерсииОбъектов.СоздатьНаборЗаписей();
	Пока Выборка.Следующий() Цикл
		//Запишем запись в РС
		НаборЗаписей.Отбор.Объект.Установить(Выборка.Объект);
		НаборЗаписей.Отбор.НомерВерсии.Установить(Выборка.НомерВерсии);
		НаборЗаписей.Прочитать();
		НаборЗаписей[0].ВерсияОбъекта = Новый ХранилищеЗначения(Неопределено);
		НаборЗаписей[0].ВерсияПроигнорирована = Истина;
		НаборЗаписей.Записать(Истина);
	КонецЦикла;

КонецПроцедуры

Авось пригодится кому скопипастить…

has been added to your cart:
Оформление заказа