Имя: Пароль:
1C
1С v8
Запрос по нескольким таблицам
,
0 Kavar
 
21.09.15
07:16
К примеру, хочу выбрать данные из двух разных документов.


Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    Дети.Ссылка КАК Ребенок,
        |    РП_НачислениеНачисления.ДнейПосещения,
        |    РП_НачислениеНачисления.СтавкаЗаДень КАК СтавкаЗаДень,
        |    СУММА(РП_НачислениеНачисления.Всего) КАК Начислено,
        |    СУММА(РП_ПоступлениеОплатыОплата.Сумма) КАК Оплачено
        |ИЗ
        |    Справочник.Дети КАК Дети
        |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.РП_Начисление.Начисления КАК РП_НачислениеНачисления
        |        ПО Дети.Ссылка = РП_НачислениеНачисления.Ребенок
        |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.РП_ПоступлениеОплаты.Оплата КАК РП_ПоступлениеОплатыОплата
        |        ПО Дети.Ссылка = РП_ПоступлениеОплатыОплата.Ребенок
        |ГДЕ
        |    Дети.Учреждение = &Учреждение
        |    И РП_НачислениеНачисления.Ссылка.Дата МЕЖДУ &НачПер И &КонПер
        |    И РП_ПоступлениеОплатыОплата.Ссылка.Дата МЕЖДУ &НачПер И &КонПер
        |
        |СГРУППИРОВАТЬ ПО
        |    Дети.Ссылка,
        |    РП_НачислениеНачисления.ДнейПосещения,
        |    РП_НачислениеНачисления.СтавкаЗаДень
        |
        |УПОРЯДОЧИТЬ ПО
        |    Дети.Наименование";



В результаты попадают только те дети, которые есть и в документах начисления и в документах оплаты.
Как сделать, что бы попали все?
В одном запросе это можно сделать? или результаты двух разных объеденять?
1 Апош
 
21.09.15
07:18
объеденять не получится, 1Ска не знает такого слова
2 Kavar
 
21.09.15
07:20
(1) А зачем 1ске это слово знать?
3 Альбатрос
 
21.09.15
07:23
Сделать временные таблицы с ГДЕ и потом соединять.
4 Альбатрос
 
21.09.15
07:23
ГДЕ преобразует во внутренне соединение
5 Kavar
 
21.09.15
07:28
(3) Спасиб. щас попробую.
6 GROOVY
 
21.09.15
08:24
(1) Я тоже "объедЕнять" не знаю.
7 Kavar
 
21.09.15
08:28
(6) Ну объедИнить, сути вопроса не меняет )
8 Лодырь
 
21.09.15
08:51
(7) У тебя условие

И РП_НачислениеНачисления.Ссылка.Дата МЕЖДУ &НачПер И &КонПер
        |    И РП_ПоступлениеОплатыОплата.Ссылка.Дата МЕЖДУ &НачПер И &КонПер

срабатывает только на существующие записи по регистрам. Сделай так же чтобы оно выполнялось, если эти записи несуществуют.
9 Альбатрос
 
21.09.15
09:12
(8) По регистрам?
10 Лодырь
 
21.09.15
09:17
(9) Ну по документам ) как то непривычно для меня что отчет по документам, а не по регистрам.
11 Kavar
 
21.09.15
09:59
(8) И как это сделать?
12 Ыт
 
21.09.15
10:08
Условие в соединение наложи
13 Ыт
 
21.09.15
10:13
Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    Дети.Ссылка КАК Ребенок,
        |    РП_НачислениеНачисления.ДнейПосещения,
        |    РП_НачислениеНачисления.СтавкаЗаДень КАК СтавкаЗаДень,
        |    СУММА(РП_НачислениеНачисления.Всего) КАК Начислено,
        |    СУММА(РП_ПоступлениеОплатыОплата.Сумма) КАК Оплачено
        |ИЗ
        |    Справочник.Дети КАК Дети
        |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.РП_Начисление.Начисления КАК РП_НачислениеНачисления
        |        ПО Дети.Ссылка = РП_НачислениеНачисления.Ребенок И (   РП_НачислениеНачисления.Ссылка.Дата МЕЖДУ &НачПер И &КонПер)
        |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.РП_ПоступлениеОплаты.Оплата КАК РП_ПоступлениеОплатыОплата
        |        ПО Дети.Ссылка = РП_ПоступлениеОплатыОплата.Ребенок и(  РП_ПоступлениеОплатыОплата.Ссылка.Дата МЕЖДУ &НачПер И &КонПер)
        |ГДЕ
        |    Дети.Учреждение = &Учреждение
        |  
        |    И РП_ПоступлениеОплатыОплата.Ссылка.Дата МЕЖДУ &НачПер И &КонПер
        |
        |СГРУППИРОВАТЬ ПО
        |    Дети.Ссылка,
        |    РП_НачислениеНачисления.ДнейПосещения,
        |    РП_НачислениеНачисления.СтавкаЗаДень
        |
        |УПОРЯДОЧИТЬ ПО
        |    Дети.Наименование"
14 Kavar
 
21.09.15
10:27
(13) Понял, спасиб.
В "ГДЕ" только условие по учреждению остается
15 Vladal
 
21.09.15
11:37
ЛЕВОЕ СОЕДИНЕНИЕ
ПОЛНОЕ СОЕДИНЕНИЕ
ВНУТРЕННЕЕ СОЕДИНЕНИЕ

ну и есть еще ПРАВОЕ СОЕДИНЕНИЕ.

если объединить все значения обеих таблиц, бери полное соединение
16 Ыт
 
21.09.15
11:38
Так там вроде три таблицы ?
17 Vladal
 
21.09.15
11:45
(16) Три. Справочник и два документа.