Добрый день.
Точно не понял как коротко сформулировать :-)
есть записи вида:

1-да
2-да
3-нет
4-нет
5-нет
6-да
7-нет
8-да
9-да

можно ли запросом получить записи 2,6,9. То есть последние из последовательностей "ДА" ? или это только последовательным перебором решается?

напрашивается сделать так:

1-да - пусто
2-да 1-да
3-нет 2-да
4-нет 3-нет
5-нет 4-нет
6-да 5-нет
7-нет 6-да
8-да 7-нет
9-да 8-да
пусто - 9-да

и найти все, у которых "нет-да" и последнюю, если "-- да", но ключик записи нерегулярный - дата

помогите разобраться

ЗЫ: кстати, пришло в голову соединить табличку с объединением ее с пустой записью. как раз получается как в моем примере! Если получится - напишу
---
подкину дровишек....

задачу придумал с потолка.....

```1c
    ВЫБРАТЬ ПЕРВЫЕ 1000000
    АВТОНОМЕРЗАПИСИ() КАК Номер,
    Период, Курс
    ПОМЕСТИТЬ ПронумерованнаяТаблица
    ИЗ РегистрСведений.КурсыВалют
    ГДЕ Валюта.Наименование = "USD"
    УПОРЯДОЧИТЬ ПО Период УБЫВ
    ИНДЕКСИРОВАТЬ ПО Номер
    ;
    ВЫБРАТЬ
    таб.Период,
    таб.Курс,
    таб.Курс-табПред.Курс КАК Взлёт,
    табПред.Период КАК предПериод,
    табПред.Курс КАК предКурс
    ИЗ
    ПронумерованнаяТаблица КАК таб
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ
    ПронумерованнаяТаблица КАК табПред
    ПО таб.Номер=табПред.Номер-1
    ГДЕ
    таб.Курс-табПред.Курс>2
```
нужно найти "взлёт" курса больше 2х рублей между соседними "чекпоинтами"

PS просто пример как можно работать с "чекпоинтами", правда не совсем "документированный".... ("не легитимный")

PPS АВТОНОМЕРЗАПИСИ() появился в 8.3.14
---
можно ли запросом получить записи 2,6,9. То есть последние из последовательностей "ДА" ? 1. В вашем примере строка 6 не удовлетворяет условию.
2. Запрос не умеет анализировать последовательности значений.

Тут либо предварительная обработка ТЗ перед запросом, либо вообще без запроса перебор.
---
Как-то уж очень абстрактно и непонятно, поконкретней пожалуйста, раз уж ссылаетесь на БП 3.0
---
ну тут самописный костыль

табличка в которой информация по взаиморасчетам по договорам;

ссылка на документ - дата - размер просрочки оплаты (в днях)

каждая новая запись кумулятивно отражает просрочку оплаты. То есть, если просрочка продолжается на протяжении нескольких "чекпоинтов" то актуальная просрочка только в последней записи перед отсутствием просрочки (когда оплата внесена в срок и полностью). вот ее и нужно находить
---
Интересная задачка... а эта табличка как реализована? регистр сведений? периодический, подчиненный регистратору?
---
нет, это псевдо-документы, которые приходят из внешней системы.
---
Если записи таблицы расположены в хронологическом порядке, то можно пронумеровать строки при помещении этой таблицы во временную в запросе, и тогда можно соединить таблицу саму с собой по условию что номер слева больше номера справа и затем сгруппировать используя максимум номера справа, тогда у вас будет номер записи и текущий и предыдущий.. затем снова соединяете по номеру предыдущей записи и получите долг и текущий и предыдущей записи.

Но если хронологии нет, то по дата это сделать не выйдет, может повторяться значение.
---
очччч, похоже на работу с интервалами, покопайте там
---
почему не удовлетворяет? 6-6вырожденная до одной записи последовательность. Она - начало и конец.
я попробую связать
---
Ок, дерзайте. Получится только если:
а) есть набор уникальных ключей
б) есть ключ, по которому можно однозначно хронологически отсортировать вышеупомянутый набор (сам хронологический ключ тоже входит в набор уникальных ключей)

И только потом можно
а) накладывать условия на все НЕхронологические ключи, и получать максимальное агрегатное значение хронологического ключа.
б) связывать получившиеся строки с первоначально таблицей по ВСЕМ ключам для получения детальных строк.

Технология такая же, как и получение множественного среза последних.
---
я подозреваю что запросом это вряд ли, а СКД умеет понимать предыдущую запись и там можно условие сделать типа "если следующая не равна текущей то".
---
можно. ищите "зарос тета соединение". у ильдаровича в минимализмах есть пример похожего запроса
---
"зарос тета соединение"
https://www.youtube.com/watch?v=1U4AajO_vHk
---
круть...
более правильный вариант (по сравнению с АвтоНомерЗаписи):

```1c
    ВЫБРАТЬ
    т1.Период,
    т1.Курс,
    т2.Курс-т1.Курс КАК Взлёт,
    т2.Период КАК предПериод,
    т2.Курс КАК предКурс
    ИЗ
    РегистрСведений.КурсыВалют КАК т1
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ
    (ВЫБРАТЬ
    т1.Период КАК Период1,
    МИНИМУМ(т2.Период) КАК Период2
    ИЗ РегистрСведений.КурсыВалют КАК т1
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ
    РегистрСведений.КурсыВалют КАК т2
    ПО т2.Валюта=т1.Валюта
    И т2.Период>т1.Период
    ГДЕ т1.Валюта.Наименование = "USD"
    СГРУППИРОВАТЬ ПО т1.Период) КАК Связка
    ПО Связка.Период1=т1.Период
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ
    РегистрСведений.КурсыВалют КАК т2
    ПО т2.Период=Связка.Период2
    И т2.Валюта=т1.Валюта
    И т2.Курс-т1.Курс>2
    ГДЕ т1.Валюта.Наименование = "USD"
    УПОРЯДОЧИТЬ ПО т1.Период
```
---
подкину дровишек....

задачу придумал с потолка.....

```1c
    ВЫБРАТЬ ПЕРВЫЕ 1000000
    АВТОНОМЕРЗАПИСИ() КАК Номер,
    Период, Курс
    ПОМЕСТИТЬ ПронумерованнаяТаблица
    ИЗ РегистрСведений.КурсыВалют
    ГДЕ Валюта.Наименование = "USD"
    УПОРЯДОЧИТЬ ПО Период УБЫВ
    ИНДЕКСИРОВАТЬ ПО Номер
    ;
    ВЫБРАТЬ
    таб.Период,
    таб.Курс,
    таб.Курс-табПред.Курс КАК Взлёт,
    табПред.Период КАК предПериод,
    табПред.Курс КАК предКурс
    ИЗ
    ПронумерованнаяТаблица КАК таб
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ
    ПронумерованнаяТаблица КАК табПред
    ПО таб.Номер=табПред.Номер-1
    ГДЕ
    таб.Курс-табПред.Курс>2
```
нужно найти "взлёт" курса больше 2х рублей между соседними "чекпоинтами"

PS просто пример как можно работать с "чекпоинтами", правда не совсем "документированный".... ("не легитимный")

PPS АВТОНОМЕРЗАПИСИ() появился в 8.3.14
---
только что сам читал про автономер! очень полезно
---
только что сам читал про автономер
ага, сам только сегодня на него наткнулся...
(люблю по утрам, вместо советских газет, почитать changelog того с чем работаю)

PS в 8.3.20 в запросы добавили функции работы со строками:
Строка(), ДлинаСтроки(), СокрЛ(), СокрП(), СокрЛП(), Лев(), Прав(), СтрНайти(), СтрЗаменить(), ВРег(), НРег()
и тригонометрические функции:
Sin(), Cos(), Tan(), ASin(), ACos(), ATan(), Exp(), Log(), Log10(), Pow(), Sqrt(),
и некоторые другие:
Окр(), Цел(), ДлинаСтроки()

начал читать подробности (документацию), а там наткнулся и на АвтоНомерЗаписи()