Имя: Пароль:
1C
1С v8
Задваиваются остатки в запросе
0 Klesk
 
29.10.12
11:14
ВЫБРАТЬ
   ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура,
   СУММА(ТоварыНаСкладахОстаткиИОбороты.ВНаличииНачальныйОстаток) КАК ОстатокНаНачало,
   СУММА(ТоварыНаСкладахОстаткиИОбороты.ВНаличииКонечныйОстаток) КАК ОстатокНаКонец,
   СУММА(ВЫБОР
           КОГДА ТИПЗНАЧЕНИЯ(ТоварыНаСкладахОстаткиИОбороты.Регистратор) <> ТИП(Документ.ПеремещениеТоваров)
               ТОГДА ТоварыНаСкладахОстаткиИОбороты.ВНаличииПриход
           ИНАЧЕ 0
       КОНЕЦ) КАК Приход,
   СУММА(ВЫБОР
           КОГДА ТИПЗНАЧЕНИЯ(ТоварыНаСкладахОстаткиИОбороты.Регистратор) <> ТИП(Документ.ПеремещениеТоваров)
               ТОГДА ТоварыНаСкладахОстаткиИОбороты.ВНаличииРасход
           ИНАЧЕ 0
       КОНЕЦ) КАК Расход
ИЗ
   РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&ДатаНач, &ДатаКон, Регистратор, , ) КАК ТоварыНаСкладахОстаткиИОбороты

СГРУППИРОВАТЬ ПО
   ТоварыНаСкладахОстаткиИОбороты.Номенклатура

ИМЕЮЩИЕ
   СУММА(ВЫБОР
           КОГДА ТИПЗНАЧЕНИЯ(ТоварыНаСкладахОстаткиИОбороты.Регистратор) <> ТИП(Документ.ПеремещениеТоваров)
               ТОГДА ТоварыНаСкладахОстаткиИОбороты.ВНаличииПриход
           ИНАЧЕ 0
       КОНЕЦ) = 0 И
   СУММА(ВЫБОР
           КОГДА ТИПЗНАЧЕНИЯ(ТоварыНаСкладахОстаткиИОбороты.Регистратор) <> ТИП(Документ.ПеремещениеТоваров)
               ТОГДА ТоварыНаСкладахОстаткиИОбороты.ВНаличииРасход
           ИНАЧЕ 0
       КОНЕЦ) = 0


подскажите , что не так, и как надо
1 cw014
 
29.10.12
11:15
По регистратору выведи записи, скорее всего они и задваивают
2 mikecool
 
29.10.12
11:15
патамушта Регистратор
3 Defender aka LINN
 
29.10.12
11:15
Запрос не глядел, боюсь аппетит испортить перед обедом, но даже из-под тега смердит левым соединением, которое двоит строки.
4 cw014
 
29.10.12
11:16
(3) ошибаешься
5 Klesk
 
29.10.12
11:29
а как без регистратора, 1с в регистр вид операции не добавила
6 hhhh
 
29.10.12
11:41
(5) потому что по видам операции регистры не будут закрываться в 0, итоги будут разбухать и базы пухнуть.
7 floody
 
29.10.12
12:00
убирай вообще все, что связано с ПеремещениеТоваров
8 Classic
 
29.10.12
12:37
Странно что только двоит
9 Classic
 
29.10.12
12:39
Убери суммы и группировку и посмотри, что у тебя выводится до группирования
10 Klesk
 
31.10.12
21:43
всем спасибо переписал с временными таблицами
11 vmv
 
31.10.12
21:58
(10) давно бы так, с виртуальными таблицами без временных работают только ... отморозки
12 Klesk
 
31.10.12
22:16
(11) не думал ,что запрос по одному регистру может так некорректно выводиться, за отморозка - спасибо, но кстати никто так и не объяснил почему так.
13 decdmb
 
31.10.12
22:38
Если не сложно, покажи на как переписал (для общего развития)
14 Klesk
 
31.10.12
23:23
(13) не думаю, что стоит у меня учится, но пожалуйста :)


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

СГРУППИРОВАТЬ ПО
   ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура
;

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

СГРУППИРОВАТЬ ПО
   ТоварыНаСкладахОбороты.Номенклатура
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ЦеныНоменклатурыСрезПоследних.Номенклатура,
   ЦеныНоменклатурыСрезПоследних.ВидЦены,
   ЦеныНоменклатурыСрезПоследних.Цена
ПОМЕСТИТЬ ТЦены
ИЗ
   РегистрСведений.ЦеныНоменклатуры.СрезПоследних({(&ТекущаяДата)}, ) КАК ЦеныНоменклатурыСрезПоследних
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
   ТоварыНаСкладахОстатки.ВНаличииОстаток КАК Остаток,
   ISNULL(ТПоступление.ВНаличииПриход,0) КАК Приход,
   ISNULL(ТПродажи.Количество,0) КАК Расход,
   ISNULL(ТЦены.Цена,0) КАК Цена,
   ТЦены.ВидЦены
ИЗ
   РегистрНакопления.ТоварыНаСкладах.Остатки({(&КонецПериода)}, ) КАК ТоварыНаСкладахОстатки
       ЛЕВОЕ СОЕДИНЕНИЕ ТПродажи КАК ТПродажи
       ПО ТоварыНаСкладахОстатки.Номенклатура = ТПродажи.Номенклатура
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТЦены КАК ТЦены
       ПО ТоварыНаСкладахОстатки.Номенклатура = ТЦены.Номенклатура
       ЛЕВОЕ СОЕДИНЕНИЕ ТПоступление КАК ТПоступление
       ПО ТоварыНаСкладахОстатки.Номенклатура = ТПоступление.Номенклатура
ГДЕ
   ТЦены.ВидЦены = &ВидЦены
   И ISNULL(ТПоступление.ВНаличииПриход,0)=0
   И ISNULL(ТПродажи.Количество,0)=0
15 AlexNew
 
31.10.12
23:29
(14) Бред. Но порадовало особенно ISNULL(ТЦены.Цена,0) при ВНУТРЕННЕЕ СОЕДИНЕНИЕ.
16 Klesk
 
31.10.12
23:32
(15) пох, главное работает
17 AlexNew
 
31.10.12
23:35
(16) И че показывает?
18 Klesk
 
31.10.12
23:40
неходовые товары по которым не было реализаций за период, и поступлений за второй период