Имя: Пароль:
1C
1С v8
Запрос зависает по непонятной причине
,
0 Bobito77
 
17.10.16
12:36
ВЫБРАТЬ
    РеализацияТоваровУслуг.ДоговорКонтрагента КАК ДоговорКонтрагента1,
    ПоступлениеНаРасчетныйСчет.ДоговорКонтрагента КАК ДоговорКонтрагента,
    ПоступлениеНаРасчетныйСчет.Номер КАК Номер,
    ПоступлениеНаРасчетныйСчет.Дата КАК Дата,
    РеализацияТоваровУслуг.Номер КАК Номер1,
    РеализацияТоваровУслуг.Дата КАК Дата1,
    РеализацияТоваровУслуг.Ссылка КАК Ссылка,
    ПоступлениеНаРасчетныйСчет.Ссылка КАК Ссылка1,
    СчетФактураВыданный.Ссылка КАК Ссылка2
ИЗ
    Документ.СчетФактураВыданный КАК СчетФактураВыданный
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеНаРасчетныйСчет КАК ПоступлениеНаРасчетныйСчет
            ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
            ПО ПоступлениеНаРасчетныйСчет.ДоговорКонтрагента.Наименование = РеализацияТоваровУслуг.ДоговорКонтрагента.Наименование
        ПО СчетФактураВыданный.ДокументОснование <> ПоступлениеНаРасчетныйСчет.Ссылка
ГДЕ
    ДЕНЬГОДА(ПоступлениеНаРасчетныйСчет.Дата) = ДЕНЬГОДА(РеализацияТоваровУслуг.Дата)

УПОРЯДОЧИТЬ ПО
    Дата1
1 H A D G E H O G s
 
17.10.16
12:37
я бы тоже зависнул
2 Bobito77
 
17.10.16
12:38
(1) Коллеги пните в нужном направлении
3 RomaH
 
naïve
17.10.16
12:40
ПО СчетФактураВыданный.ДокументОснование <> ПоступлениеНаРасчетныйСчет.Ссылка
100 поступлений
100 сф
в итоге 10 000 записей
4 bootini
 
17.10.16
12:40
(1)
ПоступлениеНаРасчетныйСчет.ДоговорКонтрагента.Наименование = РеализацияТоваровУслуг.ДоговорКонтрагента.Наименование

Тут если у тебя много договоровс наименованием "Основной договор", то всё со всем соединяет
5 Naf_kultura
 
17.10.16
12:41
(3) точнее примерно так: 100*100-100
6 Господин ПЖ
 
17.10.16
12:41
причина стандартная - рукож.пие
7 Fedor-1971
 
17.10.16
12:41
(2) для чего нужен этот запрос?
На вскидку: два вложенных левых соединения по пересекающимся данным

(3) по ходу больше
8 RomaH
 
naïve
17.10.16
12:42
временные таблицы не стесняйся использовать
9 Господин ПЖ
 
17.10.16
12:42
за это

ПоступлениеНаРасчетныйСчет.ДоговорКонтрагента.Наименование = РеализацияТоваровУслуг.ДоговорКонтрагента.Наименование
        ПО СчетФактураВыданный.ДокументОснование <> ПоступлениеНаРасчетныйСчет.Ссылка

отдельное спасибо передает декарт
10 Fedor-1971
 
17.10.16
12:42
7+ ограничь выборки соединений условием ГДЕ
11 RomaH
 
naïve
17.10.16
12:43
ПО СчетФактураВыданный.ДокументОснование <> ПоступлениеНаРасчетныйСчет.Ссылка
вот это переводит ЛЕВОЕ соединение во ВНУТРЕННЕЕ
так и пиши сразу ВНУТРЕННЕЕ
12 krunm
 
17.10.16
12:43
ПО ПоступлениеНаРасчетныйСчет.ДоговорКонтрагента.Наименование = РеализацияТоваровУслуг.ДоговорКонтрагента.Наименование

при условии что есть договоры у с названием "Без договора" ваще жесть будет твориться
13 Bobito77
 
17.10.16
12:44
(7) мне нужны поступления на расчетный счет, где не выписана счет фактура на аванс
14 Bobito77
 
17.10.16
12:45
И дата которых совпадает с документом реализации
15 SSSSS_AAAAA
 
17.10.16
13:43
(14) и для этого ты сравниваешь "ДЕНЬГОДА(ПоступлениеНаРасчетныйСчет.Дата) = ДЕНЬГОДА(РеализацияТоваровУслуг.Дата)"
Сударь, вы знаете толк в извращениях...
16 SSSSS_AAAAA
 
17.10.16
14:09
(0) "        ПО СчетФактураВыданный.ДокументОснование <> ПоступлениеНаРасчетныйСчет.Ссылка
ГДЕ
    ДЕНЬГОДА(ПоступлениеНаРасчетныйСчет.Дата) = ДЕНЬГОДА(РеализацияТоваровУслуг.Дата)
"
Как уже было написано, тут ,в первой строке, получается декартово произведение, на котором, во второй строке, еще и все индексы похерены. И что тут непонятного в тормозах?
17 youalex
 
17.10.16
14:51
(13) похоже вместо "СчетФактураВыданный.ДокументОснование <> ПоступлениеНаРасчетныйСчет.Ссылка"
нужно
ИЗ ПоступлениеНаРасчетныйСчет
ЛС СчетФактураВыданный ПО
ГДЕ СчетФактураВыданный.Ссылка is null
Независимо от того, куда вы едете — это в гору и против ветра!