Имя: Пароль:
1C
1С v8
Заполнить интервалы запросом
0 break
 
10.12.19
14:27
Есть подобный запрос (упростил):

ВЫБРАТЬ
    10 КАК НомерСтроки,
    "" КАК Буква

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

ВЫБРАТЬ
    30,
    "А"

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

ВЫБРАТЬ
    40,
    ""

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

ВЫБРАТЬ
    50,
    ""

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

ВЫБРАТЬ
    60,
    "Б"

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

ВЫБРАТЬ
    70,
    ""

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

ВЫБРАТЬ
    80,
    "В"

Необходимо заполнить колонку "буква" снизу вверх, т.е. напротив 70 строки будет "В", 50 - "Б", 40 - "Б", 10 - "А". Пытаюсь сделать все запросом, но пока не тяну(, хотя уверен что это можно сделать
1 Жан Пердежон
 
10.12.19
14:34
что значит снизу вверх? чем отличается от среза последних/первых на каждую дату?
2 break
 
10.12.19
14:43
Дано
10    
30    А
40    
50    
60    Б
70    
80    В

Надо получить, двигаясь снизу:
    
10    А
30    А
40    Б
50    Б
60    Б
70    В
80    В
3 Жан Пердежон
 
10.12.19
14:46
4 ХардHard
 
10.12.19
14:47
ВЫБРАТЬ
    10 КАК НомерСтроки,
    "" КАК Буква
ПОМЕСТИТЬ Вт1

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

ВЫБРАТЬ
    30,
    "А"

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

ВЫБРАТЬ
    40,
    ""

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

ВЫБРАТЬ
    50,
    ""

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

ВЫБРАТЬ
    60,
    "Б"

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

ВЫБРАТЬ
    70,
    ""

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

ВЫБРАТЬ
    80,
    "В"
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Вт1.НомерСтроки,
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Вт11.НомерСтроки) КАК Порядок
ПОМЕСТИТЬ НомераСтроПоПорядку
ИЗ
    Вт1 КАК Вт1
        ЛЕВОЕ СОЕДИНЕНИЕ Вт1 КАК Вт11
        ПО Вт1.НомерСтроки > Вт11.НомерСтроки

СГРУППИРОВАТЬ ПО
    Вт1.НомерСтроки
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Вт1.Буква,
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Вт11.Буква) КАК Порядок
ПОМЕСТИТЬ БуквыПоПорядку
ИЗ
    Вт1 КАК Вт1
        ЛЕВОЕ СОЕДИНЕНИЕ Вт1 КАК Вт11
        ПО Вт1.Буква > Вт11.Буква

СГРУППИРОВАТЬ ПО
    Вт1.Буква
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    НомераСтроПоПорядку.НомерСтроки,
    БуквыПоПорядку.Буква
ИЗ
    НомераСтроПоПорядку КАК НомераСтроПоПорядку
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ БуквыПоПорядку КАК БуквыПоПорядку
        ПО НомераСтроПоПорядку.Порядок = БуквыПоПорядку.Порядок
5 break
 
10.12.19
14:50
(4) получилось не то

10    
30    А
40    Б
50    В
6 break
 
10.12.19
14:51
(3) мне не нужен срез, надо просто дополнить, циклом это делается в три строки
7 Жан Пердежон
 
10.12.19
14:54
(6) как раз он тебе и нужен, в теме разберись - по ссылке уже готовый пример
8 RomanYS
 
10.12.19
14:59
(2)
ВЫБРАТЬ
    ВТ.НомерСтроки КАК НомерСтроки,
    МИНИМУМ(ВТ1.НомерСтроки) КАК НомерСтрокиСБуквой,
    ВТ.Буква
ПОМЕСТИТЬ ВТ2
ИЗ
    ВТ КАК ВТ
        ЛЕВОЕ СОЕДИНЕНИЕ ВТ КАК ВТ1
        ПО ВТ.НомерСтроки < ВТ1.НомерСтроки
            И (ВТ.Буква = "")
            И (ВТ1.Буква <> "")

СГРУППИРОВАТЬ ПО
    ВТ.Буква,
    ВТ.НомерСтроки
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ2.НомерСтроки,
    ЕСТЬNULL(ВТ.Буква, ВТ2.Буква) КАК Буква
ИЗ
    ВТ2 КАК ВТ2
        ЛЕВОЕ СОЕДИНЕНИЕ ВТ КАК ВТ
        ПО ВТ2.НомерСтрокиСБуквой = ВТ.НомерСтроки
9 break
 
10.12.19
15:02
(8) АААА... снимаю шляпу, неужели так просто