Имя: Пароль:
1C
1С v8
СКД и итоги по периоду
0 Формат
 
08.08.13
10:30
В СКД имеем следующий код:

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




Результат
http://img689.imageshack.us/img689/4458/ae7p.png
либо
http://s019.radikal.ru/i644/1308/1d/ae657d909570.png

Почему так выходит, что когда ставишь группировку "период" итоги по продажам выходят не верно, что я делаю не так и как это можно исправить?
1 Формат
 
08.08.13
10:53
так что - эта проблема не решаема и все через объединение наборов делают?
2 Формат
 
08.08.13
11:27
Через объединение наборов вроде получился необходимый результат. Тут как объединял http://s019.radikal.ru/i629/1308/bd/6c6ef031cdd2.png

Правда так и не понял, почему по первому варианту итоги не рассчитались.

Тогда другой вопрос, как сделать, чтобы первый набор был в приоритете, типа левого соединения. Это для того, чтобы можно было сделать отбор по контрагенту и выводить продажи только по нему, но остатки по товару оставить неизменными.
3 Формат
 
08.08.13
12:08
подниму
4 Формат
 
09.08.13
10:20
Еще раз подниму

Все же, как можно без использования параметров в одном наборе сделать отбор и что в результате отбора шло левое соединение наборов, а не внутреннее?
5 Defender aka LINN
 
09.08.13
10:27
(4) Для начала снять галку "Автозаполнение"
6 Формат
 
09.08.13
10:28
допустим, но пока не понял как это повлияет на отбор
7 Zerg80
 
09.08.13
10:34
(6) Если память мне не изменяет - при установке отбора в таком случае всегда используется внутреннее соединение. Пару лет назад тоже с этим столкнулся.
8 Defender aka LINN
 
09.08.13
10:35
(6) Непосредственно. При выключенной галке отбор будет осуществляться только там, где ты ему скажешь
9 Формат
 
09.08.13
10:45
так у меня и сейчас по нужному полю для отбора галка по условию отключена. Или я не про то?
10 Формат
 
09.08.13
11:07
А как при снятой галке Автозаполнение указать параметры периода?
11 Формат
 
09.08.13
11:48
(8) Все равно при такой связки наборов и с отключением автозаполнения http://s019.radikal.ru/i624/1308/58/5cb0e0372fd6.jpg

при указании отбора по контрагенту (измерению регПродажи) в отчете остается только та номенклатура, которая проходила по продажам. Опять получается ВНУТРЕННЕЕ соединение наборов.


Неужели никак нельзя в СКД не используя параметров сделать сперва нужный отбор на набору СКД, а только потом вывести результат?
12 Zerg80
 
09.08.13
12:43
(11) Насколько я помню, дело в том, что сначала отбор срабатывает на первом наборе, а уже потом то, что осталось, соединяется со вторым.
13 Формат
 
09.08.13
12:46
так у меня получается первой набор по регОстаткиТовара, а второй по Продажам. И выходит я делаю отбор по второму набору, когда указываю отбор по контрагенту. В результате выходит только та номенклатура, которая продавалась и остатки только по ней идут.
14 Формат
 
09.08.13
12:48
Получается как будто сперва он соединяет наборы, а потом по аналогии с ГДЕ делает отбор по контрагенту.
А вот как сделать, чтобы сперва отработал отбор по второму набору, а только потом эти наборы произвели ЛЕВОЕ соединение?
15 Zerg80
 
09.08.13
12:48
(13) То есть так, да. это я в (11) неверно написал.
Вообщем я тогда так и не победил СКД :)
16 Zerg80
 
09.08.13
12:48
в (12) неверно, туплю уже
17 Формат
 
09.08.13
12:51
причем, если указать параметр для Продажи Контрагент = &Контрагент, то все отрабатывает как нужно. Т.е. он отбирает записи по второму набору, а потом только соединяет с первым набором
18 Формат
 
09.08.13
12:54
И вот еще, если сделать все в одном наборе и одним запросом через левое соединение и рег.Продажи засунуть, например, во вложенный запрос с указание отбора по контрагенту, то тоже отрабатывает как нужно. Сперва во вложенной отбирает что нужно, потом соединяет, но при всем этом не верно считаются итоги по "периодам"

Как то однобоко все получается
19 Zerg80
 
09.08.13
13:09
(18) Да вот кстати про параметры потом уже узнал. Я тоже из-за итогов тогда не использовал ЛЕВОЕ в самом запросе