Имя: Пароль:
1C
1С v8
Помогите сделать правильное объединение в запросе
0 dfaa
 
04.08.11
10:24
нужно как то объединить регистратор, иначе остатки скачут. Объединял с пустой ссылкой не прокатило.

//////////////////////////////////////////////////////
ВЫБРАТЬ
   Номенклатура.Ссылка КАК Номенклатура,
   Склады.Ссылка КАК Склад,
   0 КАК КоличествоНачальныйОстаток,
   0 КАК КоличествоПриход,
   0 КАК КоличествоРасход,
   0 КАК КоличествоКонечныйОстаток,
   Значение(Документ.ПоступлениеТоваровУслуг.ПустаяСсылка)КАК Регистратор
ИЗ
   Справочник.Склады КАК Склады,
   Справочник.Номенклатура КАК Номенклатура

ОБЪЕДИНИТЬ

ВЫБРАТЬ
   ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
   ТоварыНаСкладахОстаткиИОбороты.Склад,
   ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток,
   ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход,
   ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход,
   ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток,
   ТоварыНаСкладахОстаткиИОбороты.Регистратор
ИЗ
   РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&ДатаНач, &ДатаКон, Авто, , ) КАК ТоварыНаСкладахОстаткиИОбороты
1 chelentano
 
04.08.11
10:25
(0) непонятно, что ты хочешь сделать вообще
2 butterbean
 
04.08.11
10:26
(0) нафига тут объединение вообще??
3 salvator
 
04.08.11
10:26
(0) Че?
4 vicof
 
04.08.11
10:28
ВЫБРАТЬ
   Номенклатура.Ссылка КАК Номенклатура,
   Склады.Ссылка КАК Склад,
      Значение(Документ.ПоступлениеТоваровУслуг.ПустаяСсылка)КАК Регистратор
ИЗ
   Справочник.Склады КАК Склады,
   Справочник.Номенклатура КАК Номенклатура

Апплодирую стоя :)
5 chelentano
 
04.08.11
10:30
(0) объясни лучше, что ты хочешь получить в результате
6 el-gamberro
 
04.08.11
10:31
(5) Непонятно разве?! Нужон отчет показывающий непонятно что и выполняющийся полчаса.
7 blutang
 
04.08.11
10:34
Нужно запрос по регистру
ПРАВОЕ СОЕДИНЕНИЕ со Справочником.Номенклатура по номенклатуре. Это даст не только остатки по регистру, но и нулевые остатки по номенклатуре.
8 dfaa
 
04.08.11
10:34
(6) да ладно пол часа 5 сек выполняет.
Нужно вот что:
1. чтоб в отчёте выводилась вся номенклатура и та у которой есть остатки и та у которой их не за период.
2 по каждой номенклатуре должен выводиться регистратор
9 dfaa
 
04.08.11
10:35
(7) я такое делал, но потом если делать отбор по складам то остатки улетают
10 dfaa
 
04.08.11
10:41
Согласен что задание тупое, но какое есть :)) Не я его себе ставлю
11 blutang
 
04.08.11
10:42
(8) А чтобы регистратор - надо сгруппировать по складу и номенклатуре
12 vicof
 
04.08.11
10:42
(10) не задание тупое.
13 vicof
 
04.08.11
10:42
(9) мож покажешь?
14 el-gamberro
 
04.08.11
10:43
ВЫБРАТЬ
   Номенклатура.Ссылка КАК Номенклатура,
   Склады.Ссылка КАК Склад,
   0 КАК КоличествоНачальныйОстаток,
   0 КАК КоличествоПриход,
   0 КАК КоличествоРасход,
   0 КАК КоличествоКонечныйОстаток,
   NULL КАК Регистратор
ИЗ
   Справочник.Склады КАК Склады,
   Справочник.Номенклатура КАК Номенклатура

ОБЪЕДИНИТЬ

ВЫБРАТЬ
   ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
   ТоварыНаСкладахОстаткиИОбороты.Склад,
   ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток,
   ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход,
   ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход,
   ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток,
   ТоварыНаСкладахОстаткиИОбороты.Регистратор
ИЗ
   РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&ДатаНач, &ДатаКон, Авто, , ) КАК ТоварыНаСкладахОстаткиИОбороты
15 dfaa
 
04.08.11
10:43
(13) что показать ?
16 vicof
 
04.08.11
10:44
(15) что ты там делал
17 lubja
 
04.08.11
10:45
а может лучше правым соединением?
18 dfaa
 
04.08.11
10:45
(16) при соединении ?
19 Defender aka LINN
 
04.08.11
10:46
На СКД взлетит. В запросе нет.
20 dfaa
 
04.08.11
10:46
это при соединении

/////////////////////////////////////////////////
ВЫБРАТЬ
   Номенклатур.Ссылка КАК спр,
   ЕСТЬNULL(ТоварыНаСкладахОстаткиИОбороты.Номенклатура, Номенклатур.Ссылка) КАК рег,
   ЕСТЬNULL(ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток, 0) КАК КоличествоНачальныйОстаток,
   ЕСТЬNULL(ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход, 0) КАК КоличествоПриход,
   ЕСТЬNULL(ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход, 0) КАК КоличествоРасход,
   ЕСТЬNULL(ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток, 0) КАК КоличествоКонечныйОстаток,
   ТоварыНаСкладахОстаткиИОбороты.ПериодСекунда,
   ТоварыНаСкладахОстаткиИОбороты.Регистратор,
   ТоварыНаСкладахОстаткиИОбороты.Склад
ИЗ
   РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&ДатаНачала, &ДатаКонец, Авто, , ) КАК ТоварыНаСкладахОстаткиИОбороты
       ПОЛНОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатур
       ПО ТоварыНаСкладахОстаткиИОбороты.Номенклатура = Номенклатур.Ссылка
       ПОЛНОЕ СОЕДИНЕНИЕ Документ.ОтчетОРозничныхПродажах КАК ОтчетОРозничныхПродажах
       ПО ТоварыНаСкладахОстаткиИОбороты.Регистратор = ОтчетОРозничныхПродажах.Ссылка
       ПОЛНОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
       ПО ТоварыНаСкладахОстаткиИОбороты.Регистратор = ПоступлениеТоваровУслуг.Ссылка
       ПОЛНОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
       ПО ТоварыНаСкладахОстаткиИОбороты.Регистратор = РеализацияТоваровУслуг.Ссылка
       ПОЛНОЕ СОЕДИНЕНИЕ Документ.ПеремещениеТоваров КАК ПеремещениеТоваров
       ПО ТоварыНаСкладахОстаткиИОбороты.Регистратор = ПеремещениеТоваров.Ссылка
       ПОЛНОЕ СОЕДИНЕНИЕ Документ.ОприходованиеТоваров КАК ОприходованиеТоваров
       ПО ТоварыНаСкладахОстаткиИОбороты.Регистратор = ОприходованиеТоваров.Ссылка
       ПОЛНОЕ СОЕДИНЕНИЕ Документ.СписаниеТоваров КАК СписаниеТоваров
       ПО ТоварыНаСкладахОстаткиИОбороты.Регистратор = СписаниеТоваров.Ссылка
       ПОЛНОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры
       ПО ТоварыНаСкладахОстаткиИОбороты.ХарактеристикаНоменклатуры = ХарактеристикиНоменклатуры.Ссылка
ГДЕ
   Номенклатур.ЭтоГруппа = ЛОЖЬ
////////////////////////////////////////////////////
21 vicof
 
04.08.11
10:46
(18) угу
22 dfaa
 
04.08.11
10:48
(19) на СКД и делаю. отрабатывает быстро
23 el-gamberro
 
04.08.11
10:48
Способов миллион. Чем тебе 14 не нра?:)
24 dfaa
 
04.08.11
10:49
(23) 14 не отрабатывает тоже если у регистратора NULL та же фигня со остатками. поэтому я и пробовал пихать туда пустую ссылку
25 dfaa
 
04.08.11
10:58
(23) способов то миллион только пока рабочего я не нашёл :)
26 dfaa
 
04.08.11
11:10
up
27 lubja
 
04.08.11
11:12
а вот такой вариант?

ВЫБРАТЬ
   ВложенныйЗапрос.Склад,
   ВложенныйЗапрос.Номенклатура,
   ЕСТЬNULL(ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток, 0) КАК НачОст,
   ЕСТЬNULL(ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход, 0) КАК Приход,
   ЕСТЬNULL(ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход, 0) КАК Расход,
   ЕСТЬNULL(ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток, 0) КАК КонОст
ИЗ
   (ВЫБРАТЬ
       Склады.Ссылка КАК Склад,
       Номенклатура.Ссылка КАК Номенклатура
   ИЗ
       Справочник.Номенклатура КАК Номенклатура,
       Справочник.Склады КАК Склады) КАК ВложенныйЗапрос
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, , , ) КАК ТоварыНаСкладахОстаткиИОбороты
       ПО ВложенныйЗапрос.Склад = ТоварыНаСкладахОстаткиИОбороты.Склад
           И ВложенныйЗапрос.Номенклатура = ТоварыНаСкладахОстаткиИОбороты.Номенклатура
28 lubja
 
04.08.11
11:13
ну и регистратор вытащишь из регистра с проверкой на null
29 dfaa
 
04.08.11
11:21
(27) попробовал в консольки запросов, и на скд остатки не выводит вообще почему то
30 lubja
 
04.08.11
11:24
(29) вообще - в смысле во всех строках 0 ?
31 dfaa
 
04.08.11
11:27
(30) прошу прощения заработался, забыл в ресурсы кинуть остатки. Остатки выводит но неправильно как у меня при объединении
32 dfaa
 
04.08.11
11:28
(30) приход расход отрабатывают отлично, а вот кон остат и нач остаток скачут
33 lubja
 
04.08.11
11:29
(32) с чего взял? :)
34 dfaa
 
04.08.11
11:30
проверил с отчётом ведомость по товарам на складах
35 lubja
 
04.08.11
11:32
(34) а я проверяю, все сходится... и остатки, и движения....
36 dfaa
 
04.08.11
11:37
(35) а с регистратором проверяла ? по номенклатуре выводит правильно с регистратором касячит
Добавил вот это
ЕСТЬNULL(ТоварыНаСкладахОстаткиИОбороты.Регистратор, ВложенныйЗапрос.Номенклатура) КАК Регистратор,
37 lubja
 
04.08.11
11:46
(36) добавила

ЕСТЬNULL(ТоварыНаСкладахОстаткиИОбороты.Регистратор, 0) КАК Регистратор

выводит норм... если в заданном периоде были и поступления и продажи, выводит несколько строк с одинаковыми складом и номенклатурой, но с разными регистраторами. к примеру:

Склад1    Номенклатура1   Поступление1  67   100  0  167
Склад1    Номенклатура1   Реализация1   167  0    2  165
Склад1    Номенклатура1   Реализация2   165  0    1  164
Склад1    Номенклатура1   Реализация3   164  0    5  159
38 lubja
 
04.08.11
11:48
ну и если движений не было, но есть остатки, то, соответственно, регистратор не выводится...
39 dfaa
 
04.08.11
11:52
(38) сейчас попробую
40 dfaa
 
04.08.11
12:01
Я полностью согласен остатки сами он правильно выводит по конкретной номенклатуре и регистратору. А общий итог в самом низу, как у вас ?
41 lubja
 
04.08.11
12:15
итоги по складу сошелся полностью