Имя: Пароль:
1C
1С v8
Запрос: вывод значений периодического РС на каждый день периода
0 web_profiler
 
25.05.17
15:33
Мой запрос, работает, но записи начинает выводить только от даты первой записи в регистре. К примеру: 31 день месяца, а первая запись в этом месяце 23 числа, так вот и запрос начинает отрабатывать от 23 числа и до конца периода
Помоги вывести значения с первого дня периода

ВЫБРАТЬ
    КОНЕЦПЕРИОДА(ДОБАВИТЬКДАТЕ(&НачалоПериода, ДЕНЬ, РазностьДат.НомерДняИзДиапазона), ДЕНЬ) КАК ДатаПериода
ПОМЕСТИТЬ ПериодПоДням
ИЗ
    (ВЫБРАТЬ
        aa.a * 1000 + bb.b * 100 + cc.c * 10 + dd.d КАК НомерДняИзДиапазона
    ИЗ
        (ВЫБРАТЬ
            0 КАК a
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            1
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            2
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            3
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            4
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            5
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            6
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            7
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            8
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            9) КАК aa
            ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                0 КАК b
            
            ОБЪЕДИНИТЬ
            
            ВЫБРАТЬ
                1
            
            ОБЪЕДИНИТЬ
            
            ВЫБРАТЬ
                2
            
            ОБЪЕДИНИТЬ
            
            ВЫБРАТЬ
                3
            
            ОБЪЕДИНИТЬ
            
            ВЫБРАТЬ
                4
            
            ОБЪЕДИНИТЬ
            
            ВЫБРАТЬ
                5
            
            ОБЪЕДИНИТЬ
            
            ВЫБРАТЬ
                6
            
            ОБЪЕДИНИТЬ
            
            ВЫБРАТЬ
                7
            
            ОБЪЕДИНИТЬ
            
            ВЫБРАТЬ
                8
            
            ОБЪЕДИНИТЬ
            
            ВЫБРАТЬ
                9) КАК bb
            ПО (ИСТИНА)
            ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                0 КАК c
            
            ОБЪЕДИНИТЬ
            
            ВЫБРАТЬ
                1
            
            ОБЪЕДИНИТЬ
            
            ВЫБРАТЬ
                2
            
            ОБЪЕДИНИТЬ
            
            ВЫБРАТЬ
                3
            
            ОБЪЕДИНИТЬ
            
            ВЫБРАТЬ
                4
            
            ОБЪЕДИНИТЬ
            
            ВЫБРАТЬ
                5
            
            ОБЪЕДИНИТЬ
            
            ВЫБРАТЬ
                6
            
            ОБЪЕДИНИТЬ
            
            ВЫБРАТЬ
                7
            
            ОБЪЕДИНИТЬ
            
            ВЫБРАТЬ
                8
            
            ОБЪЕДИНИТЬ
            
            ВЫБРАТЬ
                9) КАК cc
            ПО (ИСТИНА)
            ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                0 КАК d
            
            ОБЪЕДИНИТЬ
            
            ВЫБРАТЬ
                1
            
            ОБЪЕДИНИТЬ
            
            ВЫБРАТЬ
                2
            
            ОБЪЕДИНИТЬ
            
            ВЫБРАТЬ
                3
            
            ОБЪЕДИНИТЬ
            
            ВЫБРАТЬ
                4
            
            ОБЪЕДИНИТЬ
            
            ВЫБРАТЬ
                5
            
            ОБЪЕДИНИТЬ
            
            ВЫБРАТЬ
                6
            
            ОБЪЕДИНИТЬ
            
            ВЫБРАТЬ
                7
            
            ОБЪЕДИНИТЬ
            
            ВЫБРАТЬ
                8
            
            ОБЪЕДИНИТЬ
            
            ВЫБРАТЬ
                9) КАК dd
            ПО (ИСТИНА)
    ГДЕ
        aa.a * 1000 + bb.b * 100 + cc.c * 10 + dd.d <= РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, ДЕНЬ)) КАК РазностьДат

СГРУППИРОВАТЬ ПО
    КОНЕЦПЕРИОДА(ДОБАВИТЬКДАТЕ(&НачалоПериода, ДЕНЬ, РазностьДат.НомерДняИзДиапазона), ДЕНЬ)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    СубсидииКонтрагентов.Контрагент,
    СубсидииКонтрагентов.Субсидия,
    СубсидииКонтрагентов.Период,
    ПериодПоДням.ДатаПериода КАК ДатаПериода
ИЗ
    РегистрСведений.СубсидииКонтрагентов КАК СубсидииКонтрагентов
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПериодПоДням КАК ПериодПоДням
        ПО СубсидииКонтрагентов.Период <= ПериодПоДням.ДатаПериода
ГДЕ
    СубсидииКонтрагентов.Период В
            (ВЫБРАТЬ ПЕРВЫЕ 1
                СК.Период
            ИЗ
                РегистрСведений.СубсидииКонтрагентов КАК СК
            ГДЕ
                СК.Период <= ПериодПоДням.ДатаПериода
                И СК.Контрагент = СубсидииКонтрагентов.Контрагент
            УПОРЯДОЧИТЬ ПО
                СК.Период УБЫВ)

УПОРЯДОЧИТЬ ПО
    ДатаПериода
2 zak555
 
25.05.17
15:34
Дополнение
3 Вафель
 
25.05.17
15:34
срез последних на каждую дату
4 Ёпрст
 
гуру
25.05.17
15:34
делай наеборот, выборку с таблички дат и к ней соединение с табличкой регистра
5 web_profiler
 
25.05.17
15:35
6 Buster007
 
25.05.17
15:35
СКД?
7 X Leshiy
 
25.05.17
15:35
Запрос в цикле!!!
8 web_profiler
 
25.05.17
15:36
(7) - ты че????
9 web_profiler
 
25.05.17
15:36
(6) нет
10 Джинн
 
25.05.17
15:36
11 web_profiler
 
25.05.17
15:37
(10) - я там, поверь
12 web_profiler
 
25.05.17
15:37
(4) пробую
13 Джинн
 
25.05.17
15:39
(11) Или тут http://catalog.mista.ru/public/77568/

Календаря в конфигурации нет?
14 web_profiler
 
25.05.17
15:40
(13) - есть надо тупо по всем дням
Субсидии - они на выходных тоже считаются :)))
15 X Leshiy
 
25.05.17
15:40
(8) А че? :)
16 web_profiler
 
25.05.17
15:40
Тут даже не вопрос где даты брать, а вопрос как правильно вывести
17 Buster007
 
25.05.17
15:41
так если не скд сделай свою ТЗ с блэк джеком и шл...
т.е. сформируй свою ТЗ с датами нужными, засунь ее в запрос и используй
18 web_profiler
 
25.05.17
15:42
(17) в том и дело, даты есть, не в них проблема
надо из период РС получить на каждый день (типо срез послед на кажд день) значение ресурсов
19 Ёпрст
 
гуру
25.05.17
15:43
(17) он её уже того, сделал
20 web_profiler
 
25.05.17
15:44
(19) спасибо
21 web_profiler
 
25.05.17
15:47
(19) как вначале сделать выборку из табл дат?
22 Buster007
 
25.05.17
15:50
ну так забей в гугле срез последних на каждый день )
23 web_profiler
 
25.05.17
15:51
всем спс - разобрался
24 Ёпрст
 
гуру
25.05.17
15:53
(21) тип того:

ВЫБРАТЬ
    СубсидииКонтрагентов.Контрагент,
    СубсидииКонтрагентов.Субсидия,
    СубсидииКонтрагентов.Период,
    ПериодПоДням.ДатаПериода КАК ДатаПериода
Поместить Табличка
ИЗ
    РегистрСведений.СубсидииКонтрагентов КАК СубсидииКонтрагентов
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПериодПоДням КАК ПериодПоДням
        ПО СубсидииКонтрагентов.Период <= ПериодПоДням.ДатаПериода

;
      |ВЫБРАТЬ
                 |    Табличка.Контрагент,
                 |    Табличка.ДатаПериода,
                 |    Табличка.Субсидия
                 |ИЗ
                 |    табличка КАК Табличка
                 |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                 |            МАКСИМУМ(Табличка.Период) КАК Период,
                 |            Табличка.Контрагент КАК Контрагент,
                 |            Табличка.ДатаПериода КАК ДатаПериода
                 |        ИЗ
                 |            табличка КАК Табличка
                 |        
                 |        СГРУППИРОВАТЬ ПО
                 |            Табличка.ДатаПериода,
                 |            Табличка.Контрагент) КАК Фильтр
                 |        ПО (Фильтр.Период = Табличка.Период)
                 |            И (Фильтр.ДатаПериода = Табличка.ДатаПериода)
                 |            И (Фильтр.Контрагент = Табличка.Контрагент)
25 web_profiler
 
25.05.17
15:53
(24) спасибо
AdBlock убивает бесплатный контент. 1Сергей