gifts2017

Очистка регистра сведений "Списанные товары" в закрытых периодах

Опубликовал smallbuk (smallbuk) в раздел Администрирование - Чистка базы

Очистка регистра сведений ""Списанные товары" с отбором по периоду

Анализировал на днях размеры таблиц базы. 

8Гб отдано под РС "Списанные товары". Многовато под записи, которые нужны только для закрытия периодов. 

Сходил к ГБ, взял клятвенное уверение, что документы за 2014 год не будут изменяться с гарантией 100%, и вычистил записи РС "Списанные товары" с возрастом старшим, чем 31.12.2014 23:59:59.

Результат: База "похудела" на 5,4ГБ. 

Может, кому и сгодится...

Скачать файлы

Наименование Файл Версия Размер
8.2_ОчисткаРССписанныеТовары.epf 9
.epf 7,45Kb
20.11.15
9
.epf 7,45Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Информационно-технического развития Служба (SITR-utyos) 19.11.15 14:31
Почему-то у меня не показывает сколько осталось обработать.

Вот так будет работать быстрее
Процедура КнопкаВыполнитьНажатие(Кнопка)
	
	ПрошлоВремени = ТекущаяДата();
	
	Состояние("Получаем список регистраторов...");
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ РАЗЛИЧНЫЕ
	|	СписанныеТовары.Регистратор КАК Регистратор
	|ИЗ
	|	РегистрСведений.СписанныеТовары КАК СписанныеТовары
	|ГДЕ
	|	СписанныеТовары.Период МЕЖДУ &НачПериода И &КонПериода
	|
	|УПОРЯДОЧИТЬ ПО
	|	Регистратор
	|АВТОУПОРЯДОЧИВАНИЕ";
	
	Запрос.УстановитьПараметр("НачПериода", НачПериода);
	Запрос.УстановитьПараметр("КонПериода", КонПериода);
	
	Выборка = Запрос.Выполнить().Выбрать();
	
	// Подготовка прогрессбара к работе
	Счетчик = 0;
	ИндикаторПрогресса = 0;
	ОбщКолво = Выборка.Количество();
	КоличествоОбработанныхОбъектовДляОбновленияСтатуса = ?(ОбщКолво>100,цел(ОбщКолво/100),1);
	ЭлементыФормы.Индикатор1.МаксимальноеЗначение = ?(ОбщКолво>100,100,ОбщКолво);
	
	Состояние("Выполняется очистка РС «Списанные товары»...");
	
	НаборЗаписей = РегистрыСведений.СписанныеТовары.СоздатьНаборЗаписей();
	Пока Выборка.Следующий() Цикл
		НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Регистратор);
		НаборЗаписей.Записать();

		ОбработкаПрерыванияПользователя();
		Если Счетчик % КоличествоОбработанныхОбъектовДляОбновленияСтатуса = 0 Тогда
			ИндикаторПрогресса = ИндикаторПрогресса + 1;
		КонецЕсли;
		Счетчик = Счетчик + 1;
		
	КонецЦикла;
	
	ПрошлоВремени = ТекущаяДата()-ПрошлоВремени;
	ВремяВыполнения = "Время выполнения: " + Формат('00010101'+ПрошлоВремени,"ДФ=mm:ss");

	Предупреждение("Обработка завершена.");
	
КонецПроцедуры
...Показать Скрыть