Имя: Пароль:
1C
1С v8
Запрос в СКД
0 mrpink
 
23.08.16
11:15
Добрый день. Делаю отчет в СКД. Там довольно много временных таблиц, короче в конце соединяются две таблицы, одна большая во второй всего четыре колонки с показателями и дата, соединяются по дате. В консоли запросов всё как надо, как только переношу запрос в СКД, при этом строю его без группировок, просто детальные записи, у меня показатели из второй таблицы(числа) меняются на единицы, такое чувство будто он показывает просто количество записей вместо значений((. Пол дня уже убил помогите пожалуйста
1 Горогуля
 
23.08.16
11:15
убей вторую половину на изучение ресурсов
2 mrpink
 
23.08.16
11:18
не понял?
3 mrpink
 
23.08.16
11:19
ну подскажите что не так с ресурсами
4 чувак
 
23.08.16
11:22
в закладке ресурсы перенес это поле?
5 mrpink
 
23.08.16
11:22
перенес
6 чувак
 
23.08.16
11:23
там функция "Сумма"?
7 mrpink
 
23.08.16
11:24
все четыре поля из второй таблицы в СКД как ресурсы, пробовал разные варианты "рассчитывать по" ничего не помогает
8 mrpink
 
23.08.16
11:25
да, функция сумма, пробовал их убирать из ресурсов, всё равно единицы, только в другом месте выводятся
9 чувак
 
23.08.16
11:32
может скинешь сам отчет?
10 mrpink
 
23.08.16
11:36
мне не жалко)) но он большой, и на типовой базе вряд-ли будет работать...или текст интересует?
11 чувак
 
23.08.16
11:38
сама начинка СКД интересует
12 mrpink
 
23.08.16
11:41
13 чувак
 
23.08.16
11:57
В предпоследнем пакете запроса почему-то эти поля выступают как поля группировки, а не под агрегатными функциями
14 mrpink
 
23.08.16
12:03
да, я заметил, исправил - но это не влияет
15 mrpink
 
23.08.16
12:04
ВЫБРАТЬ
    РегламентированныйПроизводственныйКалендарь.ДатаКалендаря КАК ДатаОтчета
ПОМЕСТИТЬ Даты
ИЗ
    РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
ГДЕ
    РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ &НачалоПериода И &КонецПериода
{ГДЕ
    (РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ &НачалоПериода И &КонецПериода) КАК Поле2}

СГРУППИРОВАТЬ ПО
    РегламентированныйПроизводственныйКалендарь.ДатаКалендаря
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ЗакупкиОбороты.Период КАК ПериодОтчета
ПОМЕСТИТЬ Период
ИЗ
    РегистрНакопления.Закупки.Обороты(&НачалоПериода, &КонецПериода, День, ) КАК ЗакупкиОбороты
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВложенныйЗапрос.ДатаОтчета,
    ВложенныйЗапрос.П3 КАК П3,
    ВложенныйЗапрос.П4 КАК П4,
    ВложенныйЗапрос.П6 КАК П6,
    ВложенныйЗапрос.П12 КАК П12,
    ВложенныйЗапрос.Контрагент
ПОМЕСТИТЬ П
ИЗ
    (ВЫБРАТЬ
        Даты.ДатаОтчета КАК ДатаОтчета,
        1 КАК П3,
        ПродажиОбороты.Контрагент КАК Контрагент,
        NULL КАК П4,
        NULL КАК П6,
        NULL КАК П12
    ИЗ
        Даты КАК Даты
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(, , День, ) КАК ПродажиОбороты
            ПО (ПродажиОбороты.Период >= НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(Даты.ДатаОтчета, МЕСЯЦ, -3), ДЕНЬ))
                И (ПродажиОбороты.Период <= КОНЕЦПЕРИОДА(Даты.ДатаОтчета, ДЕНЬ))
    ГДЕ
        ПродажиОбороты.Контрагент В ИЕРАРХИИ(&гСМБ)
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        Даты.ДатаОтчета,
        NULL,
        ПродажиОбороты.Контрагент,
        1,
        NULL,
        NULL
    ИЗ
        Даты КАК Даты
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(, , День, ) КАК ПродажиОбороты
            ПО (ПродажиОбороты.Период >= НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(Даты.ДатаОтчета, МЕСЯЦ, -4), ДЕНЬ))
                И (ПродажиОбороты.Период <= КОНЕЦПЕРИОДА(Даты.ДатаОтчета, ДЕНЬ))
    ГДЕ
        ПродажиОбороты.Контрагент В ИЕРАРХИИ(&гСМБ)
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        Даты.ДатаОтчета,
        NULL,
        ПродажиОбороты.Контрагент,
        NULL,
        1,
        NULL
    ИЗ
        Даты КАК Даты
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(, , День, ) КАК ПродажиОбороты
            ПО (ПродажиОбороты.Период >= НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(Даты.ДатаОтчета, МЕСЯЦ, -6), ДЕНЬ))
                И (ПродажиОбороты.Период <= КОНЕЦПЕРИОДА(Даты.ДатаОтчета, ДЕНЬ))
    ГДЕ
        ПродажиОбороты.Контрагент В ИЕРАРХИИ(&гСМБ)
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        Даты.ДатаОтчета,
        NULL,
        ПродажиОбороты.Контрагент,
        NULL,
        NULL,
        1
    ИЗ
        Даты КАК Даты
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(, , День, ) КАК ПродажиОбороты
            ПО (ПродажиОбороты.Период >= НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(Даты.ДатаОтчета, МЕСЯЦ, -12), ДЕНЬ))
                И (ПродажиОбороты.Период <= КОНЕЦПЕРИОДА(Даты.ДатаОтчета, ДЕНЬ))
    ГДЕ
        ПродажиОбороты.Контрагент В ИЕРАРХИИ(&гСМБ)) КАК ВложенныйЗапрос

СГРУППИРОВАТЬ ПО
    ВложенныйЗапрос.ДатаОтчета,
    ВложенныйЗапрос.П3,
    ВложенныйЗапрос.П4,
    ВложенныйЗапрос.П6,
    ВложенныйЗапрос.П12,
    ВложенныйЗапрос.Контрагент
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    П.ДатаОтчета КАК ДатаОтчета,
    СУММА(П.П3) КАК П3,
    СУММА(П.П4) КАК П4,
    СУММА(П.П6) КАК П6,
    СУММА(П.П12) КАК П12
ПОМЕСТИТЬ СгрупП
ИЗ
    (ВЫБРАТЬ
        П.ДатаОтчета КАК ДатаОтчета,
        СУММА(П.П3) КАК П3,
        СУММА(П.П4) КАК П4,
        СУММА(П.П6) КАК П6,
        СУММА(П.П12) КАК П12
    ИЗ
        П КАК П
    
    СГРУППИРОВАТЬ ПО
        П.ДатаОтчета) КАК П

СГРУППИРОВАТЬ ПО
    П.ДатаОтчета
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Период.ПериодОтчета,
    СгрупП.П3,
    СгрупП.П4,
    СгрупП.П6,
    СгрупП.П12
ИЗ
    Период КАК Период
        ЛЕВОЕ СОЕДИНЕНИЕ СгрупП КАК СгрупП
        ПО Период.ПериодОтчета = СгрупП.ДатаОтчета
16 mrpink
 
23.08.16
12:05
вот запрос, в консоле он покажет сумму, а в СКД, без группировок единицы. убрал то что в нашей базе - должно работать в УТ 10
17 mrpink
 
23.08.16
12:07
18 mrpink
 
23.08.16
12:41
разобрался - была лишняя группировка, хотя почему так всё равно не понял))
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший