Имя: Пароль:
1C
 
Нужна помощь с СКД
0 ShameOnMe
 
14.11.25
14:50
Есть вот такой запрос

ВЫБРАТЬ
    // Уровень 1 - Итоги
    ОбщееколичествоДней КАК КоличествоДнейСПродажами,
    ОбщееколичествоКлиентов КАК КоличествоКлиентов,
    "" КАК ДоляОтПродаж,
    ОбщаяВыручка КАК Выручка
ИЗ
    (ВЫБРАТЬ
        КОЛИЧЕСТВО(РАЗЛИЧНЫЕ РасходнаяНакладная.Дата) КАК ОбщееколичествоДней,
        КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВЫБОР
            КОГДА РасходнаяНакладная.РеальныйПолучатель <> НЕОПРЕДЕЛЕНО
                ТОГДА РасходнаяНакладная.РеальныйПолучатель
            ИНАЧЕ РасходнаяНакладная.Контрагент
        КОНЕЦ) КАК ОбщееколичествоКлиентов,
        СУММА(РасходнаяНакладная.СуммаДокумента) КАК ОбщаяВыручка
    ИЗ
        Документ.РасходнаяНакладная КАК РасходнаяНакладная
    ГДЕ
        РасходнаяНакладная.Дата МЕЖДУ &ПериодС И &ПериодПо
        И (&Контрагенты = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
            ИЛИ РасходнаяНакладная.Контрагент В (&Контрагенты)
            ИЛИ РасходнаяНакладная.Контрагент В ИЕРАРХИИ(&Контрагенты))
    ) КАК Итоги

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

ВЫБРАТЬ
    // Уровень 2 - Группы по дням
    ГруппыПоДням.КоличествоДнейСПродажами,
    ГруппыПоДням.КоличествоКлиентов,
    ГруппыПоДням.ДоляВВыручке,
    ГруппыПоДням.ВыручкаПоГруппе
ИЗ
    (ВЫБРАТЬ
        КлиентыСКоличествомДней.КоличествоДней КАК КоличествоДнейСПродажами,
        КОЛИЧЕСТВО(КлиентыСКоличествомДней.Клиент) КАК КоличествоКлиентов,
        СУММА(КлиентыСКоличествомДней.СуммаПоКлиенту) КАК ВыручкаПоГруппе,
        Итоги.ОбщаяВыручка,
        ВЫБОР
            КОГДА Итоги.ОбщаяВыручка > 0
                ТОГДА СУММА(КлиентыСКоличествомДней.СуммаПоКлиенту) / Итоги.ОбщаяВыручка * 100
            ИНАЧЕ 0
        КОНЕЦ КАК ДоляВВыручке
    ИЗ
        (ВЫБРАТЬ
            ВЫБОР
                КОГДА РасходнаяНакладная.РеальныйПолучатель <> НЕОПРЕДЕЛЕНО
                    ТОГДА РасходнаяНакладная.РеальныйПолучатель
                ИНАЧЕ РасходнаяНакладная.Контрагент
            КОНЕЦ КАК Клиент,
            КОЛИЧЕСТВО(РАЗЛИЧНЫЕ РасходнаяНакладная.Дата) КАК КоличествоДней,
            СУММА(РасходнаяНакладная.СуммаДокумента) КАК СуммаПоКлиенту
        ИЗ
            Документ.РасходнаяНакладная КАК РасходнаяНакладная
        ГДЕ
            РасходнаяНакладная.Дата МЕЖДУ &ПериодС И &ПериодПо
            И (&Контрагенты = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
                ИЛИ РасходнаяНакладная.Контрагент В (&Контрагенты)
                ИЛИ РасходнаяНакладная.Контрагент В ИЕРАРХИИ(&Контрагенты))
        СГРУППИРОВАТЬ ПО
            ВЫБОР
                КОГДА РасходнаяНакладная.РеальныйПолучатель <> НЕОПРЕДЕЛЕНО
                    ТОГДА РасходнаяНакладная.РеальныйПолучатель
                ИНАЧЕ РасходнаяНакладная.Контрагент
            КОНЕЦ) КАК КлиентыСКоличествомДней,
        
        (ВЫБРАТЬ
            СУММА(РасходнаяНакладная.СуммаДокумента) КАК ОбщаяВыручка
        ИЗ
            Документ.РасходнаяНакладная КАК РасходнаяНакладная
        ГДЕ
            РасходнаяНакладная.Дата МЕЖДУ &ПериодС И &ПериодПо
            И (&Контрагенты = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
                ИЛИ РасходнаяНакладная.Контрагент В (&Контрагенты)
                ИЛИ РасходнаяНакладная.Контрагент В ИЕРАРХИИ(&Контрагенты))
        ) КАК Итоги
    
    СГРУППИРОВАТЬ ПО
        КлиентыСКоличествомДней.КоличествоДней,
        Итоги.ОбщаяВыручка) КАК ГруппыПоДням

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

ВЫБРАТЬ
    // Уровень 3 - Клиенты
    0,
    Детализация.КлиентНаименование,
    Детализация.ДоляКлиента,
    Детализация.СуммаПоКлиенту
ИЗ
    (ВЫБРАТЬ
        Клиенты.СуммаПоКлиенту,
        Клиенты.КлиентНаименование,
        Итоги.ОбщаяВыручка,
        ВЫБОР
            КОГДА Итоги.ОбщаяВыручка > 0
                ТОГДА Клиенты.СуммаПоКлиенту / Итоги.ОбщаяВыручка * 100
            ИНАЧЕ 0
        КОНЕЦ КАК ДоляКлиента
    ИЗ
        (ВЫБРАТЬ
            СУММА(РасходнаяНакладная.СуммаДокумента) КАК СуммаПоКлиенту,
            ВЫБОР
                КОГДА РасходнаяНакладная.РеальныйПолучатель <> НЕОПРЕДЕЛЕНО
                    И РасходнаяНакладная.РеальныйПолучатель <> РасходнаяНакладная.Контрагент
                    ТОГДА РасходнаяНакладная.РеальныйПолучатель.Наименование
                ИНАЧЕ РасходнаяНакладная.Контрагент.Наименование
            КОНЕЦ КАК КлиентНаименование
        ИЗ
            Документ.РасходнаяНакладная КАК РасходнаяНакладная
        ГДЕ
            РасходнаяНакладная.Дата МЕЖДУ &ПериодС И &ПериодПо
            И (&Контрагенты = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
                ИЛИ РасходнаяНакладная.Контрагент В (&Контрагенты)
                ИЛИ РасходнаяНакладная.Контрагент В ИЕРАРХИИ(&Контрагенты))
        СГРУППИРОВАТЬ ПО
            ВЫБОР
                КОГДА РасходнаяНакладная.РеальныйПолучатель <> НЕОПРЕДЕЛЕНО
                    И РасходнаяНакладная.РеальныйПолучатель <> РасходнаяНакладная.Контрагент
                    ТОГДА РасходнаяНакладная.РеальныйПолучатель.Наименование
                ИНАЧЕ РасходнаяНакладная.Контрагент.Наименование
            КОНЕЦ) КАК Клиенты,
        
        (ВЫБРАТЬ
            СУММА(РасходнаяНакладная.СуммаДокумента) КАК ОбщаяВыручка
        ИЗ
            Документ.РасходнаяНакладная КАК РасходнаяНакладная
        ГДЕ
            РасходнаяНакладная.Дата МЕЖДУ &ПериодС И &ПериодПо
            И (&Контрагенты = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
                ИЛИ РасходнаяНакладная.Контрагент В (&Контрагенты)
                ИЛИ РасходнаяНакладная.Контрагент В ИЕРАРХИИ(&Контрагенты))
        ) КАК Итоги
    ) КАК Детализация

Он выдает табличку в 4 колонки (КоличествоДнейСПродажами, КоличествоКлиентов, ДоляОтПродаж и Выручка). Ответ он выдает верный (проверял в консоли запросов). Однако, когда пытаюсь вставить в СКД, он выводит пустую таблицу с заголовками. Как бы я не менял настройки отчета, результат один и тот же - пустая таблица. Хотя, опять же, в консоли запросов все выдается верно.
В чем может быть ошибка и на что обратить внимание?
1 Волшебник
 
14.11.25
14:53
Запрос к документам — вот ошибка
2 Мультук
 
гуру
14.11.25
14:54
0) Ты не знаешь и не умеешь СКД
1) У тебя странные условия и группировки

ИЛИ РасходнаяНакладная.Контрагент В (&Контрагенты)
ИЛИ РасходнаяНакладная.Контрагент В ИЕРАРХИИ(&Контрагенты))


СГРУППИРОВАТЬ ПО
        КлиентыСКоличествомДней.КоличествоДней,
        Итоги.ОбщаяВыручка
3 ShameOnMe
 
14.11.25
14:54
(1) Поменять на запрос к регистрам?
4 Волшебник
 
14.11.25
14:55
(3) Будьте добры.
5 Hawk_1c
 
14.11.25
14:59
Проверьте параметры.
6 ShameOnMe
 
14.11.25
16:42
(4) (5)  Переделал запрос через регистр Продажи.Обороты
     ВЫБРАТЬ
    // Уровень 1 - Итоги
    ОбщееколичествоДней КАК КоличествоДнейСПродажами,
    ОбщееколичествоКлиентов КАК КоличествоКлиентов,
    "" КАК ДоляОтПродаж,
    ОбщаяВыручка КАК Выручка
ИЗ
    (ВЫБРАТЬ
        КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Продажи.Документ.Дата) КАК ОбщееколичествоДней,
        КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВЫБОР
            КОГДА Продажи.Документ.РеальныйПолучатель <> НЕОПРЕДЕЛЕНО
                ТОГДА Продажи.Документ.РеальныйПолучатель
            ИНАЧЕ Продажи.Документ.Контрагент
        КОНЕЦ) КАК ОбщееколичествоКлиентов,
        СУММА(Продажи.Документ.СуммаДокумента) КАК ОбщаяВыручка
    ИЗ
        РегистрНакопления.Продажи.Обороты(ДАТАВРЕМЯ(2024,11,1,0,0,0), ДАТАВРЕМЯ(2025,11,14,0,0,0), ) КАК Продажи
    ГДЕ
        (&Контрагенты = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
            ИЛИ Продажи.Документ.Контрагент В (&Контрагенты)
            ИЛИ Продажи.Документ.Контрагент В ИЕРАРХИИ(&Контрагенты))
    ) КАК Итоги

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

ВЫБРАТЬ
    // Уровень 2 - Группы по дням
    ГруппыПоДням.КоличествоДнейСПродажами,
    ГруппыПоДням.КоличествоКлиентов,
    ГруппыПоДням.ДоляВВыручке,
    ГруппыПоДням.ВыручкаПоГруппе
ИЗ
    (ВЫБРАТЬ
        КлиентыСКоличествомДней.КоличествоДней КАК КоличествоДнейСПродажами,
        КОЛИЧЕСТВО(КлиентыСКоличествомДней.Клиент) КАК КоличествоКлиентов,
        СУММА(КлиентыСКоличествомДней.СуммаПоКлиенту) КАК ВыручкаПоГруппе,
        Итоги.ОбщаяВыручка,
        ВЫБОР
            КОГДА Итоги.ОбщаяВыручка > 0
                ТОГДА СУММА(КлиентыСКоличествомДней.СуммаПоКлиенту) / Итоги.ОбщаяВыручка * 100
            ИНАЧЕ 0
        КОНЕЦ КАК ДоляВВыручке
    ИЗ
        (ВЫБРАТЬ
            ВЫБОР
                КОГДА Продажи.Документ.РеальныйПолучатель <> НЕОПРЕДЕЛЕНО
                    ТОГДА Продажи.Документ.РеальныйПолучатель
                ИНАЧЕ Продажи.Документ.Контрагент
            КОНЕЦ КАК Клиент,
            КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Продажи.Документ.Дата) КАК КоличествоДней,
            СУММА(Продажи.Документ.СуммаДокумента) КАК СуммаПоКлиенту
        ИЗ
            РегистрНакопления.Продажи.Обороты(ДАТАВРЕМЯ(2024,11,1,0,0,0), ДАТАВРЕМЯ(2025,11,14,0,0,0), ) КАК Продажи
        ГДЕ
            (&Контрагенты = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
                ИЛИ Продажи.Документ.Контрагент В (&Контрагенты)
                ИЛИ Продажи.Документ.Контрагент В ИЕРАРХИИ(&Контрагенты))
        СГРУППИРОВАТЬ ПО
            ВЫБОР
                КОГДА Продажи.Документ.РеальныйПолучатель <> НЕОПРЕДЕЛЕНО
                    ТОГДА Продажи.Документ.РеальныйПолучатель
                ИНАЧЕ Продажи.Документ.Контрагент
            КОНЕЦ) КАК КлиентыСКоличествомДней,

        (ВЫБРАТЬ
            СУММА(Продажи.Документ.СуммаДокумента) КАК ОбщаяВыручка
        ИЗ
            РегистрНакопления.Продажи.Обороты(ДАТАВРЕМЯ(2024,11,1,0,0,0), ДАТАВРЕМЯ(2025,11,14,0,0,0), ) КАК Продажи
        ГДЕ
            (&Контрагенты = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
                ИЛИ Продажи.Документ.Контрагент В (&Контрагенты)
                ИЛИ Продажи.Документ.Контрагент В ИЕРАРХИИ(&Контрагенты))
        ) КАК Итоги

    СГРУППИРОВАТЬ ПО
        КлиентыСКоличествомДней.КоличествоДней,
        Итоги.ОбщаяВыручка) КАК ГруппыПоДням

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

ВЫБРАТЬ
    // Уровень 3 - Клиенты
    0,
    Детализация.КлиентНаименование,
    Детализация.ДоляКлиента,
    Детализация.СуммаПоКлиенту
ИЗ
    (ВЫБРАТЬ
        Клиенты.СуммаПоКлиенту,
        Клиенты.КлиентНаименование,
        Итоги.ОбщаяВыручка,
        ВЫБОР
            КОГДА Итоги.ОбщаяВыручка > 0
                ТОГДА Клиенты.СуммаПоКлиенту / Итоги.ОбщаяВыручка * 100
            ИНАЧЕ 0
        КОНЕЦ КАК ДоляКлиента
    ИЗ
        (ВЫБРАТЬ
            СУММА(Продажи.Документ.СуммаДокумента) КАК СуммаПоКлиенту,
            ВЫБОР
                КОГДА Продажи.Документ.РеальныйПолучатель <> НЕОПРЕДЕЛЕНО
                    И Продажи.Документ.РеальныйПолучатель <> Продажи.Документ.Контрагент
                    ТОГДА Продажи.Документ.РеальныйПолучатель.Наименование
                ИНАЧЕ Продажи.Документ.Контрагент.Наименование
            КОНЕЦ КАК КлиентНаименование
        ИЗ
            РегистрНакопления.Продажи.Обороты(ДАТАВРЕМЯ(2024,11,1,0,0,0), ДАТАВРЕМЯ(2025,11,14,0,0,0), ) КАК Продажи
        ГДЕ
            (&Контрагенты = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
                ИЛИ Продажи.Документ.Контрагент В (&Контрагенты)
                ИЛИ Продажи.Документ.Контрагент В ИЕРАРХИИ(&Контрагенты))
        СГРУППИРОВАТЬ ПО
            ВЫБОР
                КОГДА Продажи.Документ.РеальныйПолучатель <> НЕОПРЕДЕЛЕНО
                    И Продажи.Документ.РеальныйПолучатель <> Продажи.Документ.Контрагент
                    ТОГДА Продажи.Документ.РеальныйПолучатель.Наименование
                ИНАЧЕ Продажи.Документ.Контрагент.Наименование
            КОНЕЦ) КАК Клиенты,

        (ВЫБРАТЬ
            СУММА(Продажи.Документ.СуммаДокумента) КАК ОбщаяВыручка
        ИЗ
            РегистрНакопления.Продажи.Обороты(ДАТАВРЕМЯ(2024,11,1,0,0,0), ДАТАВРЕМЯ(2025,11,14,0,0,0), ) КАК Продажи
        ГДЕ
            (&Контрагенты = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
                ИЛИ Продажи.Документ.Контрагент В (&Контрагенты)
                ИЛИ Продажи.Документ.Контрагент В ИЕРАРХИИ(&Контрагенты))
        ) КАК Итоги
    ) КАК Детализация

+ установил статичную дату для проверки работы параметров. В итоге опять в консоли запросов все хорошо, а в СКД пустая таблица
7 Волшебник
 
14.11.25
16:45
(6) даты задавайте параметрами,
кроме того, для сегодняшнего дня правильно будет ещё указать время 23:59:59
8 ShameOnMe
 
14.11.25
16:43
(7) Через параметры то же самое
9 Волшебник
 
14.11.25
16:46
(8) КлиентНаименование извлекать не надо
10 ShameOnMe
 
14.11.25
17:03
(9) После удаление КлиентНаименование все равно выдается в СКД пустая таблица
11 Волшебник
 
14.11.25
18:01
(10) покажите закладку Настройка для СКД
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший