Коллеги доброго времени суток!
Помогите с запросом. Мне нужно из таблицы со скриншота 1, сделать таблицу как на скриншоте 2

Если добавить признак что ТС находится на маршруте.
На маршруте считается, если вход начинается на начальной точке и выход заканчивается на конечной. входы и выход между этими точками тоже считаются на маршруте.

Текст запроса из примера

```1c
    ВЫБРАТЬ
    ВложенныйЗапрос.ВходЗону КАК ВходЗону,
    ВложенныйЗапрос.ВыходИзЗоны КАК ВыходИзЗоны,
    ВложенныйЗапрос.ТС КАК ТС,
    ВложенныйЗапрос.Зона КАК Зона,
    ВложенныйЗапрос.НачальнаяТочка КАК НачальнаяТочка,
    ВложенныйЗапрос.КонечнаяТочка КАК КонечнаяТочка
    ИЗ
    (ВЫБРАТЬ
    ДАТАВРЕМЯ(2019, 5, 10, 2, 6, 49) КАК ВходЗону,
    ДАТАВРЕМЯ(2019, 5, 10, 2, 41, 4) КАК ВыходИзЗоны,
    "К358ЕС" КАК ТС,
    "Дорога Восточная" КАК Зона,
    ЛОЖЬ КАК НачальнаяТочка,
    ЛОЖЬ КАК КонечнаяТочка

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    ДАТАВРЕМЯ(2019, 5, 10, 2, 6, 49),
    ДАТАВРЕМЯ(2019, 5, 10, 2, 41, 4),
    "К358ЕС",
    "Дорога Колывановская",
    ЛОЖЬ,
    ЛОЖЬ

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    ДАТАВРЕМЯ(2019, 5, 10, 2, 41, 4),
    ДАТАВРЕМЯ(2019, 5, 10, 3, 52, 45),
    "К358ЕС",
    "Разрез Восточный",
    ИСТИНА,
    ЛОЖЬ

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    ДАТАВРЕМЯ(2019, 5, 10, 3, 52, 45),
    ДАТАВРЕМЯ(2019, 5, 10, 4, 30, 30),
    "К358ЕС",
    "Дорога Колывановская",
    ЛОЖЬ,
    ЛОЖЬ

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    ДАТАВРЕМЯ(2019, 5, 10, 3, 52, 45),
    ДАТАВРЕМЯ(2019, 5, 10, 4, 30, 30),
    "К358ЕС",
    "Дорога Восточная",
    ЛОЖЬ,
    ЛОЖЬ

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    ДАТАВРЕМЯ(2019, 5, 10, 4, 30, 30),
    ДАТАВРЕМЯ(2019, 5, 10, 4, 45, 23),
    "К358ЕС",
    "Склад",
    ЛОЖЬ,
    ИСТИНА

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    ДАТАВРЕМЯ(2019, 5, 10, 4, 37, 0),
    ДАТАВРЕМЯ(2019, 5, 10, 4, 45, 1),
    "К358ЕС",
    "Весы",
    ЛОЖЬ,
    ЛОЖЬ

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    ДАТАВРЕМЯ(2019, 5, 10, 4, 45, 23),
    ДАТАВРЕМЯ(2019, 5, 10, 4, 45, 1),
    "К358ЕС",
    "Дорога Восточная",
    ЛОЖЬ,
    ЛОЖЬ

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    ДАТАВРЕМЯ(2019, 5, 10, 4, 45, 23),
    ДАТАВРЕМЯ(2019, 5, 10, 4, 45, 1),
    "К358ЕС",
    "Дорога Колывановская",
    ЛОЖЬ,
    ЛОЖЬ) КАК ВложенныйЗапрос

    УПОРЯДОЧИТЬ ПО
    ВходЗону
```
---
Например, так:

```1c
    ВЫБРАТЬ
    ВложенныйЗапрос.ВходЗону КАК ВходЗону,
    ВложенныйЗапрос.ВыходИзЗоны КАК ВыходИзЗоны,
    ВложенныйЗапрос.ТС КАК ТС,
    ВложенныйЗапрос.Зона КАК Зона,
    ВложенныйЗапрос.НачальнаяТочка КАК НачальнаяТочка,
    ВложенныйЗапрос.КонечнаяТочка КАК КонечнаяТочка,
    ВложенныйЗапрос.Состояние КАК Состояние
    ПОМЕСТИТЬ Т1
    ИЗ
    (ВЫБРАТЬ
    ДАТАВРЕМЯ(2019, 5, 10, 2, 6, 49) КАК ВходЗону,
    ДАТАВРЕМЯ(2019, 5, 10, 2, 41, 4) КАК ВыходИзЗоны,
    "К358ЕС" КАК ТС,
    "Дорога Восточная" КАК Зона,
    ЛОЖЬ КАК НачальнаяТочка,
    ЛОЖЬ КАК КонечнаяТочка,
    "Вне маршрута" КАК Состояние

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    ДАТАВРЕМЯ(2019, 5, 10, 2, 6, 49),
    ДАТАВРЕМЯ(2019, 5, 10, 2, 41, 4),
    "К358ЕС",
    "Дорога Колывановская",
    ЛОЖЬ,
    ЛОЖЬ,
    "Вне маршрута"

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    ДАТАВРЕМЯ(2019, 5, 10, 2, 41, 4),
    ДАТАВРЕМЯ(2019, 5, 10, 3, 52, 45),
    "К358ЕС",
    "Разрез Восточный",
    ИСТИНА,
    ЛОЖЬ,
    "На маршруте"

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    ДАТАВРЕМЯ(2019, 5, 10, 3, 52, 45),
    ДАТАВРЕМЯ(2019, 5, 10, 4, 30, 30),
    "К358ЕС",
    "Дорога Колывановская",
    ЛОЖЬ,
    ЛОЖЬ,
    "На маршруте"

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    ДАТАВРЕМЯ(2019, 5, 10, 3, 52, 45),
    ДАТАВРЕМЯ(2019, 5, 10, 4, 30, 30),
    "К358ЕС",
    "Дорога Восточная",
    ЛОЖЬ,
    ЛОЖЬ,
    "На маршруте"

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    ДАТАВРЕМЯ(2019, 5, 10, 4, 30, 30),
    ДАТАВРЕМЯ(2019, 5, 10, 4, 45, 23),
    "К358ЕС",
    "Склад",
    ЛОЖЬ,
    Истина,
    "На маршруте"

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    ДАТАВРЕМЯ(2019, 5, 10, 4, 37, 0),
    ДАТАВРЕМЯ(2019, 5, 10, 4, 45, 1),
    "К358ЕС",
    "Весы",
    ЛОЖЬ,
    ЛОЖЬ,
    "Вне маршрута"

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    ДАТАВРЕМЯ(2019, 5, 10, 4, 45, 23),
    ДАТАВРЕМЯ(2019, 5, 10, 4, 45, 41),
    "К358ЕС",
    "Дорога Восточная",
    ЛОЖЬ,
    ЛОЖЬ,
    "Вне маршрута"

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    ДАТАВРЕМЯ(2019, 5, 10, 4, 45, 41),
    ДАТАВРЕМЯ(2019, 5, 10, 4, 45, 43),
    "К358ЕС",
    "Дорога Колывановская",
    ЛОЖЬ,
    ЛОЖЬ,
    "Вне маршрута") КАК ВложенныйЗапрос
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    Т1.ВходЗону КАК ВходЗону,
    МИНИМУМ(ЕстьNull(Т2.ВыходИзЗоны,ДатаВремя(3999,1,1))) КАК ВыходИзЗоны,
    ИСТИНА КАК НаМаршруте
    ПОМЕСТИТЬ ТПериоды
    ИЗ
    Т1 КАК Т1
    ЛЕВОЕ СОЕДИНЕНИЕ Т1 КАК Т2
    ПО Т1.ВходЗону<=Т2.ВыходИзЗоны
    И Т2.КонечнаяТочка
    ГДЕ
    Т1.НачальнаяТочка

    СГРУППИРОВАТЬ ПО
    Т1.ВходЗону
    ;

    ////////////////////////////////////////////////////////////­////////////////////////
    ВЫБРАТЬ
    Т1.ВходЗону КАК ВходЗону,
    Т1.ВыходИзЗоны КАК ВыходИзЗоны,
    Т1.ТС КАК ТС,
    Т1.Зона КАК Зона,
    Т1.НачальнаяТочка КАК НачальнаяТочка,
    Т1.КонечнаяТочка КАК КонечнаяТочка,
    ВЫБОР
    КОГДА ЕСТЬNULL(ТПериоды.НаМаршруте, ЛОЖЬ) = ИСТИНА
    ТОГДА "На маршруте"
    ИНАЧЕ "Вне Маршрута"
    КОНЕЦ КАК Поле1
    ИЗ
    Т1 КАК Т1
    ЛЕВОЕ СОЕДИНЕНИЕ ТПериоды КАК ТПериоды
    ПО Т1.ВходЗону >= ТПериоды.ВходЗону
    И Т1.ВыходИзЗоны <= ТПериоды.ВыходИзЗоны

    УПОРЯДОЧИТЬ ПО
    ВходЗону
```
---
Чет Вы намудрили, у Вас есть Время входа в точку Начало и Время Выхода из точки Конца.
Все что между этим интервалом - Ваш маршрут.
---
вот именно что котелок мой не может сообразить как правильно поставить связь, что бы присвоилось это значение, "На маршруте" или "Вне маршрута"
---
Например, так:

```1c
    ВЫБРАТЬ
    ВложенныйЗапрос.ВходЗону КАК ВходЗону,
    ВложенныйЗапрос.ВыходИзЗоны КАК ВыходИзЗоны,
    ВложенныйЗапрос.ТС КАК ТС,
    ВложенныйЗапрос.Зона КАК Зона,
    ВложенныйЗапрос.НачальнаяТочка КАК НачальнаяТочка,
    ВложенныйЗапрос.КонечнаяТочка КАК КонечнаяТочка,
    ВложенныйЗапрос.Состояние КАК Состояние
    ПОМЕСТИТЬ Т1
    ИЗ
    (ВЫБРАТЬ
    ДАТАВРЕМЯ(2019, 5, 10, 2, 6, 49) КАК ВходЗону,
    ДАТАВРЕМЯ(2019, 5, 10, 2, 41, 4) КАК ВыходИзЗоны,
    "К358ЕС" КАК ТС,
    "Дорога Восточная" КАК Зона,
    ЛОЖЬ КАК НачальнаяТочка,
    ЛОЖЬ КАК КонечнаяТочка,
    "Вне маршрута" КАК Состояние

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    ДАТАВРЕМЯ(2019, 5, 10, 2, 6, 49),
    ДАТАВРЕМЯ(2019, 5, 10, 2, 41, 4),
    "К358ЕС",
    "Дорога Колывановская",
    ЛОЖЬ,
    ЛОЖЬ,
    "Вне маршрута"

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    ДАТАВРЕМЯ(2019, 5, 10, 2, 41, 4),
    ДАТАВРЕМЯ(2019, 5, 10, 3, 52, 45),
    "К358ЕС",
    "Разрез Восточный",
    ИСТИНА,
    ЛОЖЬ,
    "На маршруте"

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    ДАТАВРЕМЯ(2019, 5, 10, 3, 52, 45),
    ДАТАВРЕМЯ(2019, 5, 10, 4, 30, 30),
    "К358ЕС",
    "Дорога Колывановская",
    ЛОЖЬ,
    ЛОЖЬ,
    "На маршруте"

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    ДАТАВРЕМЯ(2019, 5, 10, 3, 52, 45),
    ДАТАВРЕМЯ(2019, 5, 10, 4, 30, 30),
    "К358ЕС",
    "Дорога Восточная",
    ЛОЖЬ,
    ЛОЖЬ,
    "На маршруте"

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    ДАТАВРЕМЯ(2019, 5, 10, 4, 30, 30),
    ДАТАВРЕМЯ(2019, 5, 10, 4, 45, 23),
    "К358ЕС",
    "Склад",
    ЛОЖЬ,
    Истина,
    "На маршруте"

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    ДАТАВРЕМЯ(2019, 5, 10, 4, 37, 0),
    ДАТАВРЕМЯ(2019, 5, 10, 4, 45, 1),
    "К358ЕС",
    "Весы",
    ЛОЖЬ,
    ЛОЖЬ,
    "Вне маршрута"

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    ДАТАВРЕМЯ(2019, 5, 10, 4, 45, 23),
    ДАТАВРЕМЯ(2019, 5, 10, 4, 45, 41),
    "К358ЕС",
    "Дорога Восточная",
    ЛОЖЬ,
    ЛОЖЬ,
    "Вне маршрута"

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    ДАТАВРЕМЯ(2019, 5, 10, 4, 45, 41),
    ДАТАВРЕМЯ(2019, 5, 10, 4, 45, 43),
    "К358ЕС",
    "Дорога Колывановская",
    ЛОЖЬ,
    ЛОЖЬ,
    "Вне маршрута") КАК ВложенныйЗапрос
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    Т1.ВходЗону КАК ВходЗону,
    МИНИМУМ(ЕстьNull(Т2.ВыходИзЗоны,ДатаВремя(3999,1,1))) КАК ВыходИзЗоны,
    ИСТИНА КАК НаМаршруте
    ПОМЕСТИТЬ ТПериоды
    ИЗ
    Т1 КАК Т1
    ЛЕВОЕ СОЕДИНЕНИЕ Т1 КАК Т2
    ПО Т1.ВходЗону<=Т2.ВыходИзЗоны
    И Т2.КонечнаяТочка
    ГДЕ
    Т1.НачальнаяТочка

    СГРУППИРОВАТЬ ПО
    Т1.ВходЗону
    ;

    ////////////////////////////////////////////////////////////­////////////////////////
    ВЫБРАТЬ
    Т1.ВходЗону КАК ВходЗону,
    Т1.ВыходИзЗоны КАК ВыходИзЗоны,
    Т1.ТС КАК ТС,
    Т1.Зона КАК Зона,
    Т1.НачальнаяТочка КАК НачальнаяТочка,
    Т1.КонечнаяТочка КАК КонечнаяТочка,
    ВЫБОР
    КОГДА ЕСТЬNULL(ТПериоды.НаМаршруте, ЛОЖЬ) = ИСТИНА
    ТОГДА "На маршруте"
    ИНАЧЕ "Вне Маршрута"
    КОНЕЦ КАК Поле1
    ИЗ
    Т1 КАК Т1
    ЛЕВОЕ СОЕДИНЕНИЕ ТПериоды КАК ТПериоды
    ПО Т1.ВходЗону >= ТПериоды.ВходЗону
    И Т1.ВыходИзЗоны <= ТПериоды.ВыходИзЗоны

    УПОРЯДОЧИТЬ ПО
    ВходЗону
```
---
Спасибо добрый человек. Сейчас попробую применить.
---
Если в таблице 100 записей? 100 раз объединять будите?
Да Вы что, прекратите) Во временную таблицу ТочкуВхода киньте время начала точки входа "Начальная точка = истина"
Во вторую таблицу ТочкуВыхода киньте время начала точки выхода "Конечная точка = истина"
А в след таблицу все что между временем входа и выхода, включая время входа и выхода.
---
Если в таблице 100 записей? 100 раз объединять будите?
Вы это серьезно спрашиваете про пример запроса с данными для теста из шапки темы?
---
тестовые данные приведены для абстрактного получения этих данных. Чтобы можно было в консоле открыть без необходимости иметь нужную конфигурацию. Нужно же решение обработки этих данных, а не получение исходных данных.
---
полностью поддерживаю. Именно для этого и кинул пример данных в запросе.
---
в чем проблема написать абстрактный код видя эту структуру таблицы, который заранее будет универсальным и не привязанным к количеству строк? Не вижу надобности привязываться к значениям таблицы, если можно описать общую логику.
---
Тестирование для слабаков, типо?
Соболезнования пользователям ваших разработок)
---
как вариант:

```1c
    ВЫБРАТЬ
    ВложенныйЗапрос.ВходЗону КАК ВходЗону,
    ВложенныйЗапрос.ВыходИзЗоны КАК ВыходИзЗоны,
    ВложенныйЗапрос.ТС КАК ТС,
    ВложенныйЗапрос.Зона КАК Зона,
    ВложенныйЗапрос.НачальнаяТочка КАК НачальнаяТочка,
    ВложенныйЗапрос.КонечнаяТочка КАК КонечнаяТочка,
    ВЫБОР
    КОГДА ВложенныйЗапрос.НачальнаяТочка
    ТОГДА ВложенныйЗапрос.ВходЗону
    ИНАЧЕ NULL
    КОНЕЦ КАК НачалоМаршрута,
    ВЫБОР
    КОГДА ВложенныйЗапрос.КонечнаяТочка
    ТОГДА ВложенныйЗапрос.ВыходИзЗоны
    ИНАЧЕ NULL
    КОНЕЦ КАК ОкончаниеМаршрута

    ПОМЕСТИТЬ вт_данные
    ИЗ
    (ВЫБРАТЬ
    ДАТАВРЕМЯ(2019, 5, 10, 2, 6, 49) КАК ВходЗону,
    ДАТАВРЕМЯ(2019, 5, 10, 2, 41, 4) КАК ВыходИзЗоны,
    "К358ЕС" КАК ТС,
    "Дорога Восточная" КАК Зона,
    ЛОЖЬ КАК НачальнаяТочка,
    ЛОЖЬ КАК КонечнаяТочка

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    ДАТАВРЕМЯ(2019, 5, 10, 2, 6, 49),
    ДАТАВРЕМЯ(2019, 5, 10, 2, 41, 4),
    "К358ЕС",
    "Дорога Колывановская",
    ЛОЖЬ,
    ЛОЖЬ

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    ДАТАВРЕМЯ(2019, 5, 10, 2, 41, 4),
    ДАТАВРЕМЯ(2019, 5, 10, 3, 52, 45),
    "К358ЕС",
    "Разрез Восточный",
    ИСТИНА,
    ЛОЖЬ

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    ДАТАВРЕМЯ(2019, 5, 10, 3, 52, 45),
    ДАТАВРЕМЯ(2019, 5, 10, 4, 30, 30),
    "К358ЕС",
    "Дорога Колывановская",
    ЛОЖЬ,
    ЛОЖЬ

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    ДАТАВРЕМЯ(2019, 5, 10, 3, 52, 45),
    ДАТАВРЕМЯ(2019, 5, 10, 4, 30, 30),
    "К358ЕС",
    "Дорога Восточная",
    ЛОЖЬ,
    ЛОЖЬ

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    ДАТАВРЕМЯ(2019, 5, 10, 4, 30, 30),
    ДАТАВРЕМЯ(2019, 5, 10, 4, 45, 23),
    "К358ЕС",
    "Склад",
    ЛОЖЬ,
    ИСТИНА

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    ДАТАВРЕМЯ(2019, 5, 10, 4, 37, 0),
    ДАТАВРЕМЯ(2019, 5, 10, 4, 45, 1),
    "К358ЕС",
    "Весы",
    ЛОЖЬ,
    ЛОЖЬ

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    ДАТАВРЕМЯ(2019, 5, 10, 4, 45, 23),
    ДАТАВРЕМЯ(2019, 5, 10, 4, 45, 1),
    "К358ЕС",
    "Дорога Восточная",
    ЛОЖЬ,
    ЛОЖЬ

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    ДАТАВРЕМЯ(2019, 5, 10, 4, 45, 23),
    ДАТАВРЕМЯ(2019, 5, 10, 4, 45, 1),
    "К358ЕС",
    "Дорога Колывановская",
    ЛОЖЬ,
    ЛОЖЬ) КАК ВложенныйЗапрос
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    МАКСИМУМ(вт_данные.НачалоМаршрута) КАК НачалоМаршрута,
    МАКСИМУМ(вт_данные.ОкончаниеМаршрута) КАК ОкончаниеМаршрута
    ПОМЕСТИТЬ вт_периодыМаршрута
    ИЗ
    вт_данные КАК вт_данные
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    вт_данные.ВходЗону КАК ВходЗону,
    вт_данные.ВыходИзЗоны КАК ВыходИзЗоны,
    вт_данные.ТС КАК ТС,
    вт_данные.Зона КАК Зона,
    вт_данные.НачальнаяТочка КАК НачальнаяТочка,
    вт_данные.КонечнаяТочка КАК КонечнаяТочка,
    ВЫБОР
    КОГДА вт_данные.ВходЗону >= вт_периодыМаршрута.НачалоМаршрута
    И вт_данные.ВыходИзЗоны <= вт_периодыМаршрута.ОкончаниеМаршрута
    ТОГДА "На маршруте"
    ИНАЧЕ "Вне маршрута"
    КОНЕЦ КАК Статус
    ИЗ
    вт_данные КАК вт_данные,
    вт_периодыМаршрута КАК вт_периодыМаршрута
```
---
похоже не до конца понял задачу. Она сложнее. Тогда код в (8) будет не так работать как нужно.
---
А код в (4) так =)
---
а код в (4) вообще влезает в исходные данные. Я так понял, что поле "Состояние" нужно вычислять, а не подставлять.
---
ТС немного троль, ранее поле Состояние было в исходных данных в шапке темы.
В моем варианте это поле из исходных данных не используется, оно просто есть, т.к. было в исходном примере.
---
ну что сразу тролль )) я готовил скриншоты, и забыл сразу удалить поле состояние.
А Ваш пример вроде подошёл, завтра до конца проверю на множестве маршрутах.
---
Это шутка =)
---
Я бы все, что в объединениях запихал бы в регистр сведений. Меньше проблем с тем гораздо. А то забыть можно что-нибудь.
---
правильное желание, только пример из шапки и так взят из регистра сведений. Задача не в том где хранить, а как навешать дополнительные признаки к существующим записям