Имя: Пароль:
1C
1С v8
Вывод дат
0 SmoKIE
 
25.03.22
16:04
Добрый день, я только учусь 1С, поэтому могу чего-то не знать
Суть в чем, есть таблица значений с одним столбцом "Дата". В этом столбце выводиться значения, например:
01.01.2022
05.01.2022
09.01.2022
13.01.2022

И надо через запрос прогнать эту таблицу значений и вывести результат в два столбца в виде периодов между датами, например получить должны:
01.01.2022 | 04.01.2022
05.01.2022 | 08.01.2022
09.01.2022 | 12.01.2022
13.01.2022 |

В первом столбце по сути ничего не меняется, а вот во второй уже меняется на -1 день и начинается со второго значения
Пробовал создавать 2 пакета запросов и связывать левым соединением, но не достиг желаемого результата, значения дублируются

Может у кого мысли какие есть? Логикой можете подсказать)
1 acht
 
25.03.22
16:20
Левое соединение самим с собой по дате больше, выбор минимума, чтобы получить ближайшее и минус день чтобы получить конец периода
2 Владушка
 
25.03.22
16:30
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ.ДатаНачала КАК ДатаНачала,
    ДОБАВИТЬКДАТЕ(ВТ.ДатаНачала, ДЕНЬ, -1) КАК ДатаОкончания
ПОМЕСТИТЬ Вт2
ИЗ
    ВТ КАК ВТ

СГРУППИРОВАТЬ ПО
    ВТ.ДатаНачала,
    ДОБАВИТЬКДАТЕ(ВТ.ДатаНачала, ДЕНЬ, -1)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ.ДатаНачала КАК ДатаНачала,
    МИНИМУМ(Вт2.ДатаОкончания) КАК ДатаОкончания
ИЗ
    ВТ КАК ВТ
        ЛЕВОЕ СОЕДИНЕНИЕ Вт2 КАК Вт2
        ПО ВТ.ДатаНачала < Вт2.ДатаОкончания

СГРУППИРОВАТЬ ПО
    ВТ.ДатаНачала
3 acht
 
25.03.22
16:41
(2) А теперь тоже самое, но одним запросом
4 SmoKIE
 
25.03.22
16:42
Всем спасибо, у меня получился желаемый результат. Всего то надо было сгруппировать по "МИНИМУМ"
Спасибо за код:)
Но я своим справился, за подсказки МЕГА благодарность ;)
5 acht
 
25.03.22
16:45
(4) > группировать по "МИНИМУМ"
Эт зачем?