Имя: Пароль:
1C
1С v8
Связь в запросе по двум полям
,
0 Web00001
 
30.08.12
10:31
Из регистра выбираются остатки в разрезе номенклатуры и складов, делаю левое соединение со второй таблицей в которой данные тоже по двум полям, как мне соединить эти таблицы?
1 Ненавижу 1С
 
гуру
30.08.12
10:32
ПО ...=... И ...=...
2 ДенисЧ
 
30.08.12
10:32
Есть такая волшебная буква "И"
3 Web00001
 
30.08.12
10:37
(1)(2)об этом подумал в первую очередь, данные перестают попадать в выборку
4 andrewks
 
30.08.12
10:38
(3) предлагаешь потелепатировать?
5 Web00001
 
30.08.12
10:38
(4)ок
6 Web00001
 
30.08.12
10:39
ВЫБРАТЬ
   ЗаказыПродавцовОстатки.Номенклатура,
   ЗаказыПродавцовОстатки.СкладЗаказчик КАК Склад,
   ЗаказыПродавцовОстатки.КоличествоОстаток КАК Заказано,
   ТоварыВРозницеОстатки.КоличествоОстаток КАК ОстатокНаСкладе,
   ПродажиОбороты.КоличествоОборот КАК Продажи,
   ПроцентРаспределения.Количество КАК Коэффициент
ИЗ
   РегистрНакопления.ЗаказыПродавцов.Остатки КАК ЗаказыПродавцовОстатки
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРознице.Остатки КАК ТоварыВРозницеОстатки
       ПО ЗаказыПродавцовОстатки.Номенклатура = ТоварыВРозницеОстатки.Номенклатура
           И ЗаказыПродавцовОстатки.СкладЗаказчик = ТоварыВРозницеОстатки.Склад
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(&Дата1, &Дата2, , ) КАК ПродажиОбороты
       ПО ЗаказыПродавцовОстатки.Номенклатура = ПродажиОбороты.Номенклатура
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПроцентРаспределения КАК ПроцентРаспределения
       ПО ЗаказыПродавцовОстатки.Номенклатура = ПроцентРаспределения.Номенклатура
7 Ненавижу 1С
 
гуру
30.08.12
10:40
(6) и какие данные перестают попадать?
это весь запрос?
8 vmv
 
30.08.12
10:41
(6) сделай отдельные ВТ для каждой физической таблицы, проиндексировав по полям соединений и потом их соединяй

не тряси ерундой
9 Web00001
 
30.08.12
10:43
(7)Весь, ТоварыВРозницеОстатки - отсюда пропадают остатки если есть данные в таблице заказы продавцов
10 vmv
 
30.08.12
10:43
+(8) на самом деле в (6) не 4-ре таблицы соединяються, а еще туева кучка служебных
11 Web00001
 
30.08.12
10:44
(8)жестокая жесть какая, а зачем?
12 andrewks
 
30.08.12
10:44
(11) быстродействие
13 Ненавижу 1С
 
гуру
30.08.12
10:45
(8) а если они и так имеют индексы?
14 andrewks
 
30.08.12
10:45
что именно и куда не попадает?
15 Ненавижу 1С
 
гуру
30.08.12
10:46
(9) может остатков нет? а если без связи складов не пропадают?
16 andrewks
 
30.08.12
10:47
вот параметрами виртуалок воспользоваться было бы неплохо
17 Web00001
 
30.08.12
10:53
(14) в (9)
(15) остатки есть, если убрать И в соединении получаем остатки на том складе на котором было движение, по регистру ЗаказыПродавцов, хотя это не так
18 Ненавижу 1С
 
гуру
30.08.12
10:55
(17) а склады в самих регистрах то совпадают? ))
19 alextom81
 
30.08.12
11:17
Запрос.Текст = "ВЫБРАТЬ
                  |    ВложенныйЗапрос.ВидПродукции КАК ВидПродукции,
                  |    ВложенныйЗапрос.Номенклатура,
                  |    СУММА(ЕСТЬNULL(ВложенныйЗапрос.КоличествоОстаток, 0)) КАК КоличествоОстаток,
                  |    СУММА(ЕСТЬNULL(ВложенныйЗапрос.КоличествоПриход, 0)) КАК КоличествоПриход,
                  |    СУММА(ЕСТЬNULL(ВложенныйЗапрос.КоличествоЗаказано, 0)) КАК КоличествоЗаказано,
                  |    ЕстьNULL(ВложенныйЗапрос.Ко, 0) Как Ко
                  |ИЗ
                  |    (ВЫБРАТЬ
                  |        НоменклатураДляЗаказа.Номенклатура КАК Номенклатура,
                  |        НоменклатураДляЗаказа.ВидПродукции КАК ВидПродукции,
                  |        ЕСТЬNULL(ТоварыВРозницеОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток,
                  |        ЕСТЬNULL(ТоварыВРозницеОбороты.КоличествоПриход, 0) КАК КоличествоПриход,
                  |        ЕСТЬNULL(УДС_ТоварыЗаказанныеМагазиномОбороты.КоличествоПриход, 0) КАК КоличествоЗаказано,
                  |        НоменклатураДляЗаказа.КоличествоКГВМесте КАК Ко
                  |    ИЗ
                  |        РегистрСведений.НоменклатураДляЗаказа КАК НоменклатураДляЗаказа
                  |            ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРознице.Остатки(&Дата, Склад = &Склад) КАК ТоварыВРозницеОстатки
                  |            ПО НоменклатураДляЗаказа.Номенклатура = ТоварыВРозницеОстатки.Номенклатура
                  |            ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРознице.Обороты(НАЧАЛОПЕРИОДА(&Дата, ДЕНЬ), КОНЕЦПЕРИОДА(&Дата, ДЕНЬ), День, Склад = Склад) КАК ТоварыВРозницеОбороты
                  |            ПО НоменклатураДляЗаказа.Номенклатура = ТоварыВРозницеОбороты.Номенклатура
                  |            ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.УДС_ТоварыЗаказанныеМагазином.Обороты(НАЧАЛОПЕРИОДА(&Дата, ДЕНЬ), КОНЕЦПЕРИОДА(&Дата, ДЕНЬ), День, Магазин = &склад) КАК ТоварыЗаказанныеМагазиномОбороты
                  |            ПО УДС_НоменклатураДляЗаказа.Номенклатура = ТоварыЗаказанныеМагазиномОбороты.Номенклатура) КАК ВложенныйЗапрос
                  |
                  |СГРУППИРОВАТЬ ПО
                  |    ВложенныйЗапрос.ВидПродукции,
                  |    ВложенныйЗапрос.Номенклатура,
                  |    ВложенныйЗапрос.Ко
                  |
                  |УПОРЯДОЧИТЬ ПО
                  |    ВидПродукции
                  |ИТОГИ ПО
                  |    ВидПродукции";
20 alextom81
 
30.08.12
11:18
НоменклатураДляЗаказа - регистр сведений, по которому идут все дальнейшие соединения. Потом красиво в дерево значений выводиться
21 Web00001
 
30.08.12
11:41
(19)В каком месте связь одной таблицы по двум полям? Не могу найти
22 Web00001
 
30.08.12
11:45
что такое УДС_НоменклатураДляЗаказа?
23 Ненавижу 1С
 
гуру
30.08.12
11:52
так что с (18)?
24 Web00001
 
30.08.12
11:57
(23)Ты имеешь ввиду на тех ли складах лежат остатки? Да там все нормально, берешь делаешь движение по регистру заказыПродавцов, на нужный склад и на этот склад сразу попадают остатки, берешь документ меняешь склад, остатки переезжают
AdBlock убивает бесплатный контент. 1Сергей