Имя: Пароль:
1C
1С v8
Запрос. Как выбрать документы?
,
0 ЗлаяЗая
 
20.03.20
10:10
В документах "Реализация" есть вкладка "НомераИзделий".
Нужно выбрать все документы по условиям и содержимое этой вкладки. Даже, если она не заполнена. Как это сделать?
Делаю запрос вот так. Если вкладка не заполнена, то документ у меня не берется.

    Запрос=Новый Запрос;
    Запрос.Текст=   "ВЫБРАТЬ
                    |    РеализацияТоваровУслуг.Ссылка КАК ДокРеализации,
                    |    РеализацияТоваровУслугНомераИзделий.Номенклатура,
                    |    РеализацияТоваровУслугНомераИзделий.НомерИзделия
                    |ПОМЕСТИТЬ ТаблРеализация
                    |ИЗ
                    |    Документ.РеализацияТоваровУслуг.НомераИзделий КАК РеализацияТоваровУслугНомераИзделий
                    |        ПОЛНОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
                    |        ПО РеализацияТоваровУслугНомераИзделий.Ссылка = РеализацияТоваровУслуг.Ссылка
                    |ГДЕ
                    |    РеализацияТоваровУслугНомераИзделий.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон
                        |    И РеализацияТоваровУслугНомераИзделий.Ссылка.ПометкаУдаления = ЛОЖЬ";
1 Beduin
 
20.03.20
10:12
через левое соединение к реализации самой
2 ДенисЧ
 
20.03.20
10:16
выбрать РТУ.Ссылка, РТУТЧ.Номенклатура, РТУТЧ.НомерИзделия
ИЗ Документ.РеализацияТоваровУслуг КАК рту
левое соединение Документ.РеализацияТоваровУслуг.НомераИзделий
ГДЕ
                    |    РеализацияТоваровУслугНомераИзделий.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон
                        |    И РеализацияТоваровУслугНомераИзделий.Ссылка.ПометкаУдаления = ЛОЖЬ";
3 ЗлаяЗая
 
20.03.20
10:19
Делала так, тоже не выходит
|ИЗ
                    |    Документ.РеализацияТоваровУслуг.НомераИзделий КАК РеализацияТоваровУслугНомераИзделий
                    |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
                    |        ПО РеализацияТоваровУслугНомераИзделий.Ссылка = РеализацияТоваровУслуг.Ссылка
4 ЗлаяЗая
 
20.03.20
10:22
(2) и так тоже не выходит
5 Chameleon1980
 
20.03.20
10:22
Сразу к тч обращайся в запросе
6 ЗлаяЗая
 
20.03.20
10:23
(5) если к ней обращаюсь, а она пустая-  тоже ничего не выходит
7 Chameleon1980
 
20.03.20
10:25
ну тогда левое соединение
и условия писать только в соединении
в т.ч. условие по датам документов
только в соединении
это касается условий к таблицам, которые справа
8 dezss
 
20.03.20
10:28
(7) +1
(0) Условие в где делает твое соединение правым.
9 ДенисЧ
 
20.03.20
10:28
(8) не правым, а внутренним.
10 dezss
 
20.03.20
10:43
(9) Не...в данном случае вообще левым))) Не обратил внимания, что левая таблица - это та, которая может быть пустой.
Там ПОЛНОЕ, а не левое, и в ГДЕ условие только на одну из таблиц, так что точно не внутренним.
11 dezss
 
20.03.20
10:46
(10) тьфу...все же правое получается.
Странно, что не выбирает РеализацияТоваровУслуг.Ссылка КАК ДокРеализации,
Вообще в выборку должны попасть все документы, так как на РеализацияТоваровУслуг вообще никаких условий не наложено.
12 ЗлаяЗая
 
20.03.20
11:04
Сделала, может и кривовато, но сделала :)))
Сделала 2 временных таблицы и соединила их. В одном запросе.
Все получилось.
13 D_E_S_131
 
20.03.20
12:27
(12) Вот это жесть! Все без временных таблиц должно выбираться прекрасно.
14 D_E_S_131
 
20.03.20
12:31
"ВЫБРАТЬ
|    РеализацияТоваровУслуг.Ссылка КАК ДокРТУ,
|    ЕСТЬNULL(тчСерийныеНомера.СерийныйНомер, ЗНАЧЕНИЕ(Справочник.СерийныеНомера.ПустаяСсылка)) КАК СН
|ИЗ
|    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
|        ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.СерийныеНомера КАК тчСерийныеНомера
|        ПО РеализацияТоваровУслуг.Ссылка = тчСерийныеНомера.Ссылка
|ГДЕ
|    НЕ РеализацияТоваровУслуг.ПометкаУдаления
|    И РеализацияТоваровУслуг.Дата МЕЖДУ &Дата1 И &Дата2"