﻿Процедура ПодготовитьПредполагаемыхВиновников(ДокументЗамер, БлокирующийПроцесс, МоментВремениЖертвы, Ресурс, РежимЖертвы)
	
	Запрос = Новый Запрос;
	Запрос.УстановитьПараметр("connectID", БлокирующийПроцесс);
	Запрос.УстановитьПараметр("МоментВремениЖертвы", МоментВремениЖертвы);
	Запрос.УстановитьПараметр("Владелец", ДокументЗамер);
	Запрос.УстановитьПараметр("Период", ДокументЗамер.Дата);
	Запрос.УстановитьПараметр("Регистратор", ДокументЗамер);
	Запрос.УстановитьПараметр("Ресурс", "%" + Ресурс + ?(РежимЖертвы = Перечисления.РежимБлокировки.Managed_Shared, " Exclusive", "") + "%");
	
	Запрос.Текст = 
	"ВЫБРАТЬ ПЕРВЫЕ 1
	|	ТехнологическийЖурнал.МоментВремени КАК МоментВремени
	|ИЗ
	|	РегистрСведений.ТехнологическийЖурнал КАК ТехнологическийЖурнал
	|ГДЕ
	|	ТехнологическийЖурнал.connectID = &connectID
	|	И ТехнологическийЖурнал.МоментВремени <= &МоментВремениЖертвы
	|	И ТехнологическийЖурнал.Период = &Период
	|	И ТехнологическийЖурнал.Регистратор = &Регистратор
	|	И ТехнологическийЖурнал.Событие = ""SDBL""
	|	И ТехнологическийЖурнал.Func ПОДОБНО ""BeginTransaction""
	|
	|УПОРЯДОЧИТЬ ПО
	|	МоментВремени УБЫВ";
		
	// Если транзакция началась до включения ТЖ
	РезультатЗапроса = Запрос.Выполнить();
	Если РезультатЗапроса.Пустой() Тогда
		Возврат;
	КонецЕсли;	
	
	Выборка = РезультатЗапроса.Выбрать();	
	Если Выборка.Следующий() Тогда
		Запрос.УстановитьПараметр("НачалоТранзакции", Выборка.МоментВремени);
	КонецЕсли;
	
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	ТЖ.МоментВремени КАК МоментВремениВиновника,
	|	ТЖ.Locks КАК Блокировки
	|ИЗ
	|	РегистрСведений.ТехнологическийЖурнал КАК ТЖ
	|ГДЕ
	|	ТЖ.connectID = &connectID
	|	И ТЖ.МоментВремени МЕЖДУ &НачалоТранзакции И &МоментВремениЖертвы
	|	И ТЖ.Владелец = &Владелец
	|	И ТЖ.Период = &Период
	|	И ТЖ.Регистратор = &Регистратор
	|	И ТЖ.Locks ПОДОБНО &Ресурс";
	
	РезультатЗапроса = Запрос.Выполнить();
	Если РезультатЗапроса.Пустой() Тогда
		Возврат;
	КонецЕсли;
	
	Выборка = РезультатЗапроса.Выбрать();
	
	Пока Выборка.Следующий() Цикл
		
		РазобратьЗаблокированныеРесурсы(ДокументЗамер, Выборка.Блокировки, БлокирующийПроцесс, Выборка.МоментВремениВиновника);
		
	КонецЦикла;
	
КонецПроцедуры
