Имя: Пароль:
1C
1С v8
СКД отборы
0 Konan
 
29.07.14
11:01
в УТ 10.3 решил поэкспериментировать и вывести весь товар и если были продажи то количество штук, а так же контрагента. В СКД быстро накатал следующее:

ВЫБРАТЬ
    Товары.Ссылка КАК Товар,
    ПродажиОбороты.Контрагент,
    ПродажиОбороты.КоличествоОборот
ИЗ
    Справочник.Номенклатура КАК Товары
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(, , , ) КАК ПродажиОбороты
        ПО (ПродажиОбороты.Номенклатура = Товары.Ссылка)

Далее сделал в СКД группировку по товару, а в ней группировку по контрагенту. И вроде все выводится, выводится товар, под ним контрагенты со количеством. Но как только я ставлю отбор по определенному контрагенту, то у меня показывается только тот товар который ему был продан, но не вся матрица товара как я хотел. Вот и возник вопрос, отбор срабатывает уже после того как все данные выбраны? или это только в 8.3 платформе такое поведение?
1 Timon1405
 
29.07.14
11:36
а если так?

ВЫБРАТЬ
    Товары.Ссылка КАК Товар,
    ПродажиОбороты.Контрагент,
    ПродажиОбороты.КоличествоОборот
ИЗ
    Справочник.Номенклатура КАК Товары
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(, , , {(Контрагент = &Контрагент)}) КАК ПродажиОбороты
        ПО (ПродажиОбороты.Номенклатура = Товары.Ссылка)
2 Konan
 
29.07.14
11:41
Так сработало, но:
В данном случае Контрагент стал параметром, а не отбором и с жестким видом сравнения РАВНО. А если мне нужны другие поля или их реквизиты. Да и интересно то, что скорее всего СКД отбор наложила после выборки всех данных, а это не очень хорошо по времени выполнения.
3 Konan
 
29.07.14
11:46
Сейчас поищу спец. обработку, которая покажет конечный запрос сформированный СКД к базе с учетом Отбора, там все ясно станет куда она тот отбор пихает
4 Timon1405
 
29.07.14
11:58
Думаю, придется снимать галку автозаполнение и ковырять вкладку компоновка данных
примерно так

ВЫБРАТЬ
    Товары.Ссылка КАК Товар,
    ПродажиОбороты.Контрагент КАК Контрагент,
    ПродажиОбороты.КоличествоОборот КАК КоличествоОборот
{ВЫБРАТЬ
    Товар.*,
    Контрагент.*,
    КоличествоОборот}
ИЗ
    Справочник.Номенклатура КАК Товары
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(, , , ) КАК ПродажиОбороты
        ПО (ПродажиОбороты.Номенклатура = Товары.Ссылка)
{ГДЕ
    ПродажиОбороты.Контрагент.*,
    Товары.Ссылка.*}