Проверка пересечения периодов (интервалов дат) в запросе

BobrAl 16 1 1

Функция для проверки, есть ли документы с тем же интервалом дат, что и заданный.


//Истина - есть пересечения
//Ложь - пересечений нет.
Функция ЕстьПересечениеДат(НачалоПериода, КонецПериода)
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	ВашДокумент.Ссылка
		|ИЗ
		|	Документ.ВашДокумент КАК ВашДокумент
		|ГДЕ
		|	ПлановыйГрафикРаботы.Проведен
		|	И &НачалоПериода < ВашДокумент.КонецПериода
		|			И &КонецПериода > ВашДокумент.НачалоПериода";
	
	Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода);
	Запрос.УстановитьПараметр("КонецПериода", КонецПериода);
	
	РезультатЗапроса = Запрос.Выполнить();  	
	Возврат Не РезультатЗапроса.Пустой();

КонецФункции
1

Комментарии

Денис Кораблёв
#1, 13 мая 2025 08:57

ПлановыйГрафикРаботы.Проведен нужно заменить на ВашДокумент.Проведен


См. также

Нахождение интервалов в запросе

Разбиение произвольного периода на интервалы в запросе

Получить даты за период в запросе

Инвертирование периодов в запросе

Определение пересечения интервалов в кольце

ПодключениеТестовыхПериодов_ПроверитьСостояниеЗапроса (БСП)

ПроверитьСостояниеЗапроса (БСП)

Срез на даты за период. Шаблон запроса

Объединение непересекающихся интервалов в запросе

Модератору