(
6) По первому пункту навскидку что-то типа такого, но за правильность не ручаюсь:
ВЫБРАТЬ
ДатыНачалМаршрутов.Автомобиль,
ДатыНачалМаршрутов.Маршрут,
ВЫБОР
КОГДА ДатыНачалМаршрутов.Период < &НачалоПериода
ТОГДА &НачалоПериода
ИНАЧЕ ДатыНачалМаршрутов.Период
КОНЕЦ КАК ДатаНачала,
ЕСТЬNULL(МИНИМУМ(ДатыОкончанийМаршрутов.Период), &КонецПериода) КАК ДатаОкончания
ИЗ
МаршрутыАвтомобилей КАК ДатыНачалМаршрутов
ЛЕВОЕ СОЕДИНЕНИЕ МаршрутыАвтомобилей КАК ДатыОкончанийМаршрутов
ПО ДатыНачалМаршрутов.Автомобиль = ДатыОкончанийМаршрутов.Автомобиль
И ДатыОкончанийМаршрутов.Период > ДатыНачалМаршрутов.Период
ГДЕ
ДатыНачалМаршрутов.Период МЕЖДУ &НачалоПериода И &КонецПериода
ИЛИ ДатыОкончанийМаршрутов.Период МЕЖДУ &НачалоПериода И &КонецПериода
СГРУППИРОВАТЬ ПО
ДатыНачалМаршрутов.Автомобиль,
ДатыНачалМаршрутов.Маршрут,
ВЫБОР
КОГДА ДатыНачалМаршрутов.Период < &НачалоПериода
ТОГДА &НачалоПериода
ИНАЧЕ ДатыНачалМаршрутов.Период
КОНЕЦ