Имя: Пароль:
1C
1С v8
Нужна помощь с запросом
,
0 Builder
 
13.09.11
15:30
Собственно задача - получить продажи по кассе, получить их себестоимость и прибавить 1%.
Отчет начинает работать криво когда в документе списывается несколько партий одного товара. Умножает сумму продаж на кол-во списанных партий.

Подскажите как быть.

ВЫБРАТЬ
   Продажи.Подразделение,
   Продажи.Номенклатура,
   ПродажиСебестоимость.Количество,
   Продажи.Стоимость,
   ПродажиСебестоимость.Стоимость / 101 * 100 КАК Стоимость1,
   Продажи.Стоимость - ПродажиСебестоимость.Стоимость КАК Прибыль,
   Продажи.Регистратор.Организация,
   Продажи.Регистратор
ИЗ
   РегистрНакопления.Продажи КАК Продажи
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПродажиСебестоимость КАК ПродажиСебестоимость
       ПО Продажи.Регистратор = ПродажиСебестоимость.Регистратор
           И Продажи.Номенклатура = ПродажиСебестоимость.Номенклатура
           И Продажи.Подразделение = ПродажиСебестоимость.Подразделение
           И Продажи.Регистратор.Организация = ПродажиСебестоимость.Регистратор.Организация
ГДЕ
   Продажи.Период >= &НачалоПериода
   И Продажи.Период <= &КонецПериода
   И ПродажиСебестоимость.Период >= &НачалоПериода
   И ПродажиСебестоимость.Период <= &КонецПериода
   И Продажи.Регистратор ССЫЛКА Документ.ОтчетОРозничныхПродажах
   И ПродажиСебестоимость.Регистратор ССЫЛКА Документ.ОтчетОРозничныхПродажах
1 shuhard
 
13.09.11
15:31
(0) группировка то где ?
2 Builder
 
13.09.11
15:32
(1) в СКД
3 lubja
 
13.09.11
15:33
плюс, не могу смотреть, когда условия не в параметрах виртуальной таблицы. быстрее будет работать...
4 shuhard
 
13.09.11
15:34
(2) в запросе где группировка ?
5 Builder
 
13.09.11
15:34
(1) Группировка используется Подразделение/ Номенклатура.
6 hhhh
 
13.09.11
15:38
(5) надо группировать до ЛЕВОЕ СОДИНЕНИЕ, а не после.
7 shuhard
 
13.09.11
15:40
(5) в запросе нужно группировать, а не после
когда записи левого соединения расплодились

и групповая функция будет не сумма, а максимум
8 Builder
 
13.09.11
15:43
(7) а поподробнее?
9 shuhard
 
13.09.11
15:56
(8) подзапрос/временная таблица
в которой надо сгруппировать записи из РегистрНакопления.ПродажиСебестоимость

результат связать налево
10 Builder
 
13.09.11
16:50
Спасибо, что то вроде получается...
11 Builder
 
13.09.11
17:55
В общем получилось вот так.
Но есть проблема - товар который не списался по партиям (не попал в ПродажиСебестоимость) не попадает в этот отчет! Хотя в регистр Продажи он попадает...

ВЫБРАТЬ
   Продажи.Подразделение,
   Продажи.Номенклатура,
   Продажи.Стоимость Как СтоимостьПродаж,
   ПродажиСебестоимость.Стоимость КАК СебестоимостьП,
   ПродажиСебестоимость.Стоимость / 101 * 100 КАК Стоимость1,
   Продажи.Стоимость - ПродажиСебестоимость.Стоимость КАК Прибыль,
   Продажи.Регистратор.Организация,
   Продажи.Регистратор
ИЗ
   РегистрНакопления.Продажи КАК Продажи
       ЛЕВОЕ СОЕДИНЕНИЕ    
       (ВЫБРАТЬ
           Подразделение,
           Номенклатура,
           Регистратор,
           Сумма (РегистрНакопления.ПродажиСебестоимость.Стоимость)
       из
           РегистрНакопления.ПродажиСебестоимость
       Сгруппировать по
           Подразделение,
           Номенклатура,
           Регистратор) как ПродажиСебестоимость
       ПО Продажи.Регистратор = ПродажиСебестоимость.Регистратор
           И Продажи.Номенклатура = ПродажиСебестоимость.Номенклатура
           И Продажи.Подразделение = ПродажиСебестоимость.Подразделение
           И Продажи.Регистратор.Организация = ПродажиСебестоимость.Регистратор.Организация
ГДЕ
   Продажи.Период >= &НачалоПериода
   И Продажи.Период <= &КонецПериода
//    И ПродажиСебестоимость.Номенклатура = &ВыбНоменклатура
//    И Продажи.Номенклатура = &ВыбНоменклатура
   И Продажи.Регистратор ССЫЛКА Документ.ОтчетОРозничныхПродажах
   И ПродажиСебестоимость.Регистратор ССЫЛКА Документ.ОтчетОРозничныхПродажах
12 shuhard
 
13.09.11
17:57
(11) свяжи налево Продажи со своим запросом
не забудь окучить NULL
13 Axel2009
 
13.09.11
18:00
делать через объединение.
14 Builder
 
13.09.11
20:48
(12) Чет не пойму как это сделать. Не совсем освоил еще запросы в 8-ке...
15 Рэйв
 
13.09.11
20:51
(14)Есть много литературы по запросам SQL. Логика в 8ке таже самая, только удобства ради все по русски...Хотя и по аглицки понимает. Так что рекомендую почитать. 2-3 часа максимум и если ты не совсем даун основы постигнешь.
16 Челмедведосвин
 
13.09.11
20:56
На диске ИТС можно почитать.
17 Builder
 
14.09.11
09:09
Спасибо за советы, обязательно почитаю.
Но сейчас надо срочно доделать этот отчет.