ОчиститьРегистрыЗамерыВремени (БСП)

Автор: 1С
ОбщийМодуль.ОценкаПроизводительности
БСП

Очистить регистры замеры времени. Процедура обработки регламентного задания по очистке регистров замеров

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

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

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

Похожие публикации

ЗакончитьЗамерВремени (БСП)

ЗамерВремени (БСП)

ЗавершитьЗамерВремени (БСП)

ЗакончитьЗамерВремениТехнологический (БСП)

ЗакончитьЗамерВремениАвто (БСП)

НачатьЗамерВремениТехнологический (БСП)

ЗавершитьЗамерВремениНаКлиентеАвто (БСП)

НачатьЗамерВремени (БСП)

Замер времени выполнения кода с выводом результата замера в формате ЧЧ:мм:сс

Синтакс-помощник БСП с нейросетевым ассистентом