Имя: Пароль:
1C
1С v8
Запрос на выборку из РС, где будет отражён каждый месяц, даже если его нет в РС
0 Masi4
 
21.08.17
16:49
Есть РС, в нём хранятся изменения по зарплате сотрудникам вида:

Дата      - Сотрудник - Начисление - Сумма
01.01.17  - Вася      - Оклад      - 100
01.05.17  - Вася      - Оклад      - 150
01.08.17  - Вася      - Оклад      - 200

Как в одном запросе получить выборку, где будет отражён каждый месяц, даже если его в РС не было?:

Дата      - Сотрудник - Начисление - Сумма
01.01.17  - Вася      - Оклад      - 100
01.02.17  - Вася      - Оклад      - 100
01.03.17  - Вася      - Оклад      - 100
01.04.17  - Вася      - Оклад      - 100
01.05.17  - Вася      - Оклад      - 150
01.06.17  - Вася      - Оклад      - 150
01.07.17  - Вася      - Оклад      - 150
01.08.17  - Вася      - Оклад      - 200
1 undertaker
 
21.08.17
16:51
что то из серии остатков на каждую дату?
Книга знаний: Срез последних на каждую дату в запросе
2 Masi4
 
21.08.17
16:52
Забыл поздороваться, простите: Всем доброго дня!
И забыл платформу упомянуть: 1С 8.3.
3 Timon1405
 
21.08.17
16:52
Сформировать таблицу дат потом применить (1)
4 France
 
21.08.17
16:54
в скд есть дополнить период - так кажись.
5 Masi4
 
21.08.17
16:54
(3) Это я понимаю, но не знаю как сделать, если только где-то не лежит готовый РС.
6 Timon1405
 
21.08.17
16:56
(5) Видимо это производственный календарь.
7 undertaker
 
21.08.17
16:56
(5) сгенерировать ТЗ
8 Timon1405
 
21.08.17
16:56
если нет календаря используйте запрос
ВЫБРАТЬ
    1 КАК Цифра
ПОМЕСТИТЬ ТаблицаЦифр

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    2

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    3

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    4

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    5

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    6

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    7

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    8

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    9

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    0
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ДОБАВИТЬКДАТЕ(&НачДата, ДЕНЬ, ТаблицаЦифр.Цифра + ТаблицаЦифр1.Цифра * 10 + ТаблицаЦифр2.Цифра * 100 + ТаблицаЦифр3.Цифра * 1000) КАК Дата
ПОМЕСТИТЬ ТаблицаДат
ИЗ
    ТаблицаЦифр КАК ТаблицаЦифр,
    ТаблицаЦифр КАК ТаблицаЦифр1,
    ТаблицаЦифр КАК ТаблицаЦифр2,
    ТаблицаЦифр КАК ТаблицаЦифр3
ГДЕ
    ДОБАВИТЬКДАТЕ(&НачДата, ДЕНЬ, ТаблицаЦифр.Цифра + ТаблицаЦифр1.Цифра * 10 + ТаблицаЦифр2.Цифра * 100 + ТаблицаЦифр3.Цифра * 1000) <= &КонДата
;

////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ТаблицаЦифр
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ТаблицаДат.Дата КАК Дата
ИЗ
    ТаблицаДат КАК ТаблицаДат
ГДЕ
    ДЕНЬ(ТаблицаДат.Дата) = 1

УПОРЯДОЧИТЬ ПО
    Дата
9 Masi4
 
21.08.17
17:00
(8) Чудесно! Спасибо! Я правда ещё не понял как, но чудесно! =)