Имя: Пароль:
1C
1С v8
Запрос подтягивает две строчки из таблицы оборотов
,
0 Темный
 
11.09.23
13:42
Добрый день! Есть запрос в СКД:
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ПродажиСпериодамиИЗаявками.Оборудование КАК Оборудование,
    ПродажиСпериодамиИЗаявками.КоличествоИтогом КАК КоличествоИтогом,
    ПродажиСпериодамиИЗаявками.КонецПер КАК Период,
    ПродажиСпериодамиИЗаявками.КоличествоЗаявок КАК КоличествоЗаявок,
    ЕСТЬNULL(ВыручкаИСебестоимостьПродажОбороты.КоличествоОборот, 0) КАК Количество
ИЗ
    ПродажиСпериодамиИЗаявками КАК ПродажиСпериодамиИЗаявками
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&НачалоПериода, &КонецПериода, Авто, ) КАК ВыручкаИСебестоимостьПродажОбороты
        ПО ПродажиСпериодамиИЗаявками.Оборудование = ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура
            И (ВЫБОР
                КОГДА &Периодичность = "Неделя"
                    ТОГДА ПродажиСпериодамиИЗаявками.НачалоПер = ВыручкаИСебестоимостьПродажОбороты.ПериодНеделя
                КОГДА &Периодичность = "Месяц"
                    ТОГДА ПродажиСпериодамиИЗаявками.НачалоПер = ВыручкаИСебестоимостьПродажОбороты.ПериодМесяц
                КОГДА &Периодичность = "Квартал"
                    ТОГДА ПродажиСпериодамиИЗаявками.НачалоПер = ВыручкаИСебестоимостьПродажОбороты.ПериодКвартал
                КОГДА &Периодичность = "Год"
                    ТОГДА ПродажиСпериодамиИЗаявками.НачалоПер = ВыручкаИСебестоимостьПродажОбороты.ПериодГод
                ИНАЧЕ ПродажиСпериодамиИЗаявками.НачалоПер = ВыручкаИСебестоимостьПродажОбороты.ПериодДень
            КОНЕЦ)

Считает неверно. С левой таблицей все в порядке, а из правой подтягиваются две строчки с количеством (ну или больше, в зависимости от кол-ва продаж в периоде). Как будто не из виртуальной таблицы беру данные, а просто из регистра.
Как думаете, в чем дело?
1 yopQua
 
11.09.23
13:51
в периодичности?
2 yopQua
 
11.09.23
13:52
она тут как то и не нужна, как кажется
3 yopQua
 
11.09.23
13:57
хотя.. ну какая то странная конструкция в Выбор Когда
4 RomanYS
 
11.09.23
13:59
Периодичность по идее как раз явно нужно задать вместо "Авто", а ВЫБОР в соединении убрать. Сделать просто " по ПродажиСпериодамиИЗаявками.НачалоПер = ВыручкаИСебестоимостьПродажОбороты.Период"
5 Темный
 
11.09.23
14:00
Да, в отчете пользователь выбирает, как строить отчет - помесячно, или поквартально и т. д. Вроде, работает - продажи подтягиваются именно за выбранные период.
6 Темный
 
11.09.23
14:01
(4) Явно не получается. Пользователь выбирает.
7 Темный
 
11.09.23
14:03
Можно попробовать взять 5 таблиц оборотов, явно задать каждой периодичность, и уже выбирать по условию нужную таблицы в переменной запроса. Интересно, как СКД это проглотит.
8 Темный
 
11.09.23
14:17
(7) Не, полная фигня выходит.
9 Timon1405
 
11.09.23
14:33
может быть
КОГДА &Периодичность = "Неделя"
ТОГДА НачалоПериода(ПродажиСпериодамиИЗаявками.НачалоПер,НЕДЕЛЯ) = ВыручкаИСебестоимостьПродажОбороты.ПериодНеделя ?
10 Темный
 
11.09.23
14:38
(9) Это таким образом в таблицу временную кладется выше в запросе, я не весь запрос привел
11 Темный
 
11.09.23
14:40
Сделал через группировку, но вроде СКД должна была сама...
12 RomanYS
 
11.09.23
14:54
(6) А периодичность нельзя передать параметром? Изменить текст запроса кодом по крайней мере точно можно
13 Темный
 
11.09.23
15:04
(12) Не получилось у меня &Параметр в параметры виртуальной таблицы запихнуть.