Имя: Пароль:
1C
1С v8
Странное преобразование запроса 1С в запрос SQL
0 pvase
 
09.10.19
17:07
При выполнении запроса появились тормоза. Вот запрос 1С:

ВЫБРАТЬ
    ДокументВозвратТоваровОтПокупателя.Ссылка КАК Ссылка,
    Регистр_ТКД.ЕстьКопия КАК ЕстьТКД
ИЗ
    Документ.ВозвратТоваровОтПокупателя КАК ДокументВозвратТоваровОтПокупателя
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Регистр_ТКД КАК Регистр_ТКД
        ПО ДокументВозвратТоваровОтПокупателя.Ссылка = Регистр_ТКД.ДокТКД.Ссылка
        И Регистр_ТКД.ДокТКД ССЫЛКА Документ.ВозвратТоваровОтПокупателя

Вся проблема в том, что Регистр_ТКД.ДокТКД - это ссылка на любой документ. Так вот 1С-ка такой запрос транслирует вот в такой запрос SQL:

SELECT T1._IDRRef
    ,T2._Fld31525
FROM dbo._Document313 T1
LEFT OUTER JOIN dbo._InfoRg31523 T2
LEFT OUTER JOIN dbo._Document290 T3 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000122
    AND T2._Fld31524_RRRef = T3._IDRRef
LEFT OUTER JOIN dbo._Document439 T4 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000001B7
    AND T2._Fld31524_RRRef = T4._IDRRef
LEFT OUTER JOIN dbo._Document427 T5 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000001AB
    AND T2._Fld31524_RRRef = T5._IDRRef
LEFT OUTER JOIN dbo._Document340 T6 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000154
    AND T2._Fld31524_RRRef = T6._IDRRef
LEFT OUTER JOIN dbo._Document527 T7 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x0000020F
    AND T2._Fld31524_RRRef = T7._IDRRef
LEFT OUTER JOIN dbo._Document390 T8 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000186
    AND T2._Fld31524_RRRef = T8._IDRRef
LEFT OUTER JOIN dbo._Document282 T9 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x0000011A
    AND T2._Fld31524_RRRef = T9._IDRRef
LEFT OUTER JOIN dbo._Document30118 T10 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000075A6
    AND T2._Fld31524_RRRef = T10._IDRRef
LEFT OUTER JOIN dbo._Document30114 T11 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000075A2
    AND T2._Fld31524_RRRef = T11._IDRRef
LEFT OUTER JOIN dbo._Document562 T12 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000232
    AND T2._Fld31524_RRRef = T12._IDRRef
LEFT OUTER JOIN dbo._Document442 T13 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000001BA
    AND T2._Fld31524_RRRef = T13._IDRRef
LEFT OUTER JOIN dbo._Document569 T14 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000239
    AND T2._Fld31524_RRRef = T14._IDRRef
LEFT OUTER JOIN dbo._Document281 T15 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000119
    AND T2._Fld31524_RRRef = T15._IDRRef
LEFT OUTER JOIN dbo._Document503 T16 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000001F7
    AND T2._Fld31524_RRRef = T16._IDRRef
LEFT OUTER JOIN dbo._Document369 T17 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000171
    AND T2._Fld31524_RRRef = T17._IDRRef
LEFT OUTER JOIN dbo._Document493 T18 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000001ED
    AND T2._Fld31524_RRRef = T18._IDRRef
LEFT OUTER JOIN dbo._Document512 T19 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000200
    AND T2._Fld31524_RRRef = T19._IDRRef
LEFT OUTER JOIN dbo._Document350 T20 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x0000015E
    AND T2._Fld31524_RRRef = T20._IDRRef
LEFT OUTER JOIN dbo._Document462 T21 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000001CE
    AND T2._Fld31524_RRRef = T21._IDRRef
LEFT OUTER JOIN dbo._Document30121 T22 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000075A9
    AND T2._Fld31524_RRRef = T22._IDRRef
LEFT OUTER JOIN dbo._Document357 T23 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000165
    AND T2._Fld31524_RRRef = T23._IDRRef
LEFT OUTER JOIN dbo._Document551 T24 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000227
    AND T2._Fld31524_RRRef = T24._IDRRef
LEFT OUTER JOIN dbo._Document379 T25 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x0000017B
    AND T2._Fld31524_RRRef = T25._IDRRef
LEFT OUTER JOIN dbo._Document517 T26 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000205
    AND T2._Fld31524_RRRef = T26._IDRRef
LEFT OUTER JOIN dbo._Document375 T27 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000177
    AND T2._Fld31524_RRRef = T27._IDRRef
LEFT OUTER JOIN dbo._Document405 T28 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000195
    AND T2._Fld31524_RRRef = T28._IDRRef
LEFT OUTER JOIN dbo._Document329 T29 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000149
    AND T2._Fld31524_RRRef = T29._IDRRef
LEFT OUTER JOIN dbo._Document421 T30 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000001A5
    AND T2._Fld31524_RRRef = T30._IDRRef
LEFT OUTER JOIN dbo._Document297 T31 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000129
    AND T2._Fld31524_RRRef = T31._IDRRef
LEFT OUTER JOIN dbo._Document580 T32 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000244
    AND T2._Fld31524_RRRef = T32._IDRRef
LEFT OUTER JOIN dbo._Document301 T33 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x0000012D
    AND T2._Fld31524_RRRef = T33._IDRRef
LEFT OUTER JOIN dbo._Document307 T34 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000133
    AND T2._Fld31524_RRRef = T34._IDRRef
LEFT OUTER JOIN dbo._Document399 T35 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x0000018F
    AND T2._Fld31524_RRRef = T35._IDRRef
LEFT OUTER JOIN dbo._Document456 T36 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000001C8
    AND T2._Fld31524_RRRef = T36._IDRRef
LEFT OUTER JOIN dbo._Document446 T37 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000001BE
    AND T2._Fld31524_RRRef = T37._IDRRef
LEFT OUTER JOIN dbo._Document373 T38 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000175
    AND T2._Fld31524_RRRef = T38._IDRRef
LEFT OUTER JOIN dbo._Document355 T39 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000163
    AND T2._Fld31524_RRRef = T39._IDRRef
LEFT OUTER JOIN dbo._Document387 T40 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000183
    AND T2._Fld31524_RRRef = T40._IDRRef
LEFT OUTER JOIN dbo._Document566 T41 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000236
    AND T2._Fld31524_RRRef = T41._IDRRef
LEFT OUTER JOIN dbo._Document576 T42 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000240
    AND T2._Fld31524_RRRef = T42._IDRRef
LEFT OUTER JOIN dbo._Document586 T43 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x0000024A
    AND T2._Fld31524_RRRef = T43._IDRRef
LEFT OUTER JOIN dbo._Document407 T44 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000197
    AND T2._Fld31524_RRRef = T44._IDRRef
LEFT OUTER JOIN dbo._Document416 T45 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000001A0
    AND T2._Fld31524_RRRef = T45._IDRRef
LEFT OUTER JOIN dbo._Document480 T46 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000001E0
    AND T2._Fld31524_RRRef = T46._IDRRef
LEFT OUTER JOIN dbo._Document336 T47 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000150
    AND T2._Fld31524_RRRef = T47._IDRRef
LEFT OUTER JOIN dbo._Document497 T48 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000001F1
    AND T2._Fld31524_RRRef = T48._IDRRef
LEFT OUTER JOIN dbo._Document544 T49 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000220
    AND T2._Fld31524_RRRef = T49._IDRRef
LEFT OUTER JOIN dbo._Document529 T50 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000211
    AND T2._Fld31524_RRRef = T50._IDRRef
LEFT OUTER JOIN dbo._Document381 T51 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x0000017D
    AND T2._Fld31524_RRRef = T51._IDRRef
LEFT OUTER JOIN dbo._Document538 T52 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x0000021A
    AND T2._Fld31524_RRRef = T52._IDRRef
LEFT OUTER JOIN dbo._Document372 T53 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000174
    AND T2._Fld31524_RRRef = T53._IDRRef
LEFT OUTER JOIN dbo._Document423 T54 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000001A7
    AND T2._Fld31524_RRRef = T54._IDRRef
LEFT OUTER JOIN dbo._Document597 T55 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000255
    AND T2._Fld31524_RRRef = T55._IDRRef
LEFT OUTER JOIN dbo._Document433 T56 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000001B1
    AND T2._Fld31524_RRRef = T56._IDRRef
LEFT OUTER JOIN dbo._Document30116 T57 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000075A4
    AND T2._Fld31524_RRRef = T57._IDRRef
LEFT OUTER JOIN dbo._Document332 T58 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x0000014C
    AND T2._Fld31524_RRRef = T58._IDRRef
LEFT OUTER JOIN dbo._Document585 T59 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000249
    AND T2._Fld31524_RRRef = T59._IDRRef
LEFT OUTER JOIN dbo._Document500 T60 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000001F4
    AND T2._Fld31524_RRRef = T60._IDRRef
LEFT OUTER JOIN dbo._Document30119 T61 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000075A7
    AND T2._Fld31524_RRRef = T61._IDRRef
LEFT OUTER JOIN dbo._Document460 T62 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000001CC
    AND T2._Fld31524_RRRef = T62._IDRRef
LEFT OUTER JOIN dbo._Document363 T63 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x0000016B
    AND T2._Fld31524_RRRef = T63._IDRRef
LEFT OUTER JOIN dbo._Document380 T64 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x0000017C
    AND T2._Fld31524_RRRef = T64._IDRRef
LEFT OUTER JOIN dbo._Document573 T65 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x0000023D
    AND T2._Fld31524_RRRef = T65._IDRRef
LEFT OUTER JOIN dbo._Document563 T66 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000233
    AND T2._Fld31524_RRRef = T66._IDRRef
LEFT OUTER JOIN dbo._Document30108 T67 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x0000759C
    AND T2._Fld31524_RRRef = T67._IDRRef
LEFT OUTER JOIN dbo._Document479 T68 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000001DF
    AND T2._Fld31524_RRRef = T68._IDRRef
LEFT OUTER JOIN dbo._Document289 T69 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000121
    AND T2._Fld31524_RRRef = T69._IDRRef
LEFT OUTER JOIN dbo._Document358 T70 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000166
    AND T2._Fld31524_RRRef = T70._IDRRef
LEFT OUTER JOIN dbo._Document554 T71 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x0000022A
    AND T2._Fld31524_RRRef = T71._IDRRef
LEFT OUTER JOIN dbo._Document490 T72 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000001EA
    AND T2._Fld31524_RRRef = T72._IDRRef
LEFT OUTER JOIN dbo._Document553 T73 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000229
    AND T2._Fld31524_RRRef = T73._IDRRef
LEFT OUTER JOIN dbo._Document541 T74 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x0000021D
    AND T2._Fld31524_RRRef = T74._IDRRef
LEFT OUTER JOIN dbo._Document601 T75 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000259
    AND T2._Fld31524_RRRef = T75._IDRRef
LEFT OUTER JOIN dbo._Document595 T76 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000253
    AND T2._Fld31524_RRRef = T76._IDRRef
LEFT OUTER JOIN dbo._Document441 T77 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000001B9
    AND T2._Fld31524_RRRef = T77._IDRRef
LEFT OUTER JOIN dbo._Document321 T78 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000141
    AND T2._Fld31524_RRRef = T78._IDRRef
LEFT OUTER JOIN dbo._Document606 T79 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x0000025E
    AND T2._Fld31524_RRRef = T79._IDRRef
LEFT OUTER JOIN dbo._Document444 T80 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000001BC
    AND T2._Fld31524_RRRef = T80._IDRRef
LEFT OUTER JOIN dbo._Document411 T81 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x0000019B
    AND T2._Fld31524_RRRef = T81._IDRRef
LEFT OUTER JOIN dbo._Document280 T82 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000118
    AND T2._Fld31524_RRRef = T82._IDRRef
LEFT OUTER JOIN dbo._Document385 T83 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000181
    AND T2._Fld31524_RRRef = T83._IDRRef
LEFT OUTER JOIN dbo._Document474 T84 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000001DA
    AND T2._Fld31524_RRRef = T84._IDRRef
LEFT OUTER JOIN dbo._Document455 T85 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000001C7
    AND T2._Fld31524_RRRef = T85._IDRRef
LEFT OUTER JOIN dbo._Document549 T86 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000225
    AND T2._Fld31524_RRRef = T86._IDRRef
LEFT OUTER JOIN dbo._Document466 T87 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000001D2
    AND T2._Fld31524_RRRef = T87._IDRRef
LEFT OUTER JOIN dbo._Document458 T88 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000001CA
    AND T2._Fld31524_RRRef = T88._IDRRef
LEFT OUTER JOIN dbo._Document443 T89 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000001BB
    AND T2._Fld31524_RRRef = T89._IDRRef
LEFT OUTER JOIN dbo._Document300 T90 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x0000012C
    AND T2._Fld31524_RRRef = T90._IDRRef
LEFT OUTER JOIN dbo._Document523 T91 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x0000020B
    AND T2._Fld31524_RRRef = T91._IDRRef
LEFT OUTER JOIN dbo._Document599 T92 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000257
    AND T2._Fld31524_RRRef = T92._IDRRef
LEFT OUTER JOIN dbo._Document397 T93 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x0000018D
    AND T2._Fld31524_RRRef = T93._IDRRef
LEFT OUTER JOIN dbo._Document344 T94 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000158
    AND T2._Fld31524_RRRef = T94._IDRRef
LEFT OUTER JOIN dbo._Document339 T95 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000153
    AND T2._Fld31524_RRRef = T95._IDRRef
LEFT OUTER JOIN dbo._Document524 T96 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x0000020C
    AND T2._Fld31524_RRRef = T96._IDRRef
LEFT OUTER JOIN dbo._Document30115 T97 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000075A3
    AND T2._Fld31524_RRRef = T97._IDRRef
LEFT OUTER JOIN dbo._Document596 T98 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000254
    AND T2._Fld31524_RRRef = T98._IDRRef
LEFT OUTER JOIN dbo._Document362 T99 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x0000016A
    AND T2._Fld31524_RRRef = T99._IDRRef
LEFT OUTER JOIN dbo._Document451 T100 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000001C3
    AND T2._Fld31524_RRRef = T100._IDRRef
LEFT OUTER JOIN dbo._Document494 T101 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000001EE
    AND T2._Fld31524_RRRef = T101._IDRRef
LEFT OUTER JOIN dbo._Document468 T102 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000001D4
    AND T2._Fld31524_RRRef = T102._IDRRef
LEFT OUTER JOIN dbo._Document436 T103 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000001B4
    AND T2._Fld31524_RRRef = T103._IDRRef
LEFT OUTER JOIN dbo._Document292 T104 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000124
    AND T2._Fld31524_RRRef = T104._IDRRef
LEFT OUTER JOIN dbo._Document330 T105 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x0000014A
    AND T2._Fld31524_RRRef = T105._IDRRef
LEFT OUTER JOIN dbo._Document277 T106 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000115
    AND T2._Fld31524_RRRef = T106._IDRRef
LEFT OUTER JOIN dbo._Document557 T107 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x0000022D
    AND T2._Fld31524_RRRef = T107._IDRRef
LEFT OUTER JOIN dbo._Document475 T108 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000001DB
    AND T2._Fld31524_RRRef = T108._IDRRef
LEFT OUTER JOIN dbo._Document371 T109 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000173
    AND T2._Fld31524_RRRef = T109._IDRRef
LEFT OUTER JOIN dbo._Document322 T110 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000142
    AND T2._Fld31524_RRRef = T110._IDRRef
LEFT OUTER JOIN dbo._Document502 T111 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000001F6
    AND T2._Fld31524_RRRef = T111._IDRRef
LEFT OUTER JOIN dbo._Document603 T112 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x0000025B
    AND T2._Fld31524_RRRef = T112._IDRRef
LEFT OUTER JOIN dbo._Document600 T113 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000258
    AND T2._Fld31524_RRRef = T113._IDRRef
LEFT OUTER JOIN dbo._Document463 T114 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000001CF
    AND T2._Fld31524_RRRef = T114._IDRRef
LEFT OUTER JOIN dbo._Document415 T115 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x0000019F
    AND T2._Fld31524_RRRef = T115._IDRRef
LEFT OUTER JOIN dbo._Document319 T116 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x0000013F
    AND T2._Fld31524_RRRef = T116._IDRRef
LEFT OUTER JOIN dbo._Document352 T117 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000160
    AND T2._Fld31524_RRRef = T117._IDRRef
LEFT OUTER JOIN dbo._Document345 T118 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000159
    AND T2._Fld31524_RRRef = T118._IDRRef
LEFT OUTER JOIN dbo._Document461 T119 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000001CD
    AND T2._Fld31524_RRRef = T119._IDRRef
LEFT OUTER JOIN dbo._Document449 T120 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000001C1
    AND T2._Fld31524_RRRef = T120._IDRRef
LEFT OUTER JOIN dbo._Document376 T121 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000178
    AND T2._Fld31524_RRRef = T121._IDRRef
LEFT OUTER JOIN dbo._Document365 T122 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x0000016D
    AND T2._Fld31524_RRRef = T122._IDRRef
LEFT OUTER JOIN dbo._Document296 T123 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000128
    AND T2._Fld31524_RRRef = T123._IDRRef
LEFT OUTER JOIN dbo._Document396 T124 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x0000018C
    AND T2._Fld31524_RRRef = T124._IDRRef
LEFT OUTER JOIN dbo._Document594 T125 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000252
    AND T2._Fld31524_RRRef = T125._IDRRef
LEFT OUTER JOIN dbo._Document543 T126 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x0000021F
    AND T2._Fld31524_RRRef = T126._IDRRef
LEFT OUTER JOIN dbo._Document386 T127 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000182
    AND T2._Fld31524_RRRef = T127._IDRRef
LEFT OUTER JOIN dbo._Document314 T128 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x0000013A
    AND T2._Fld31524_RRRef = T128._IDRRef
LEFT OUTER JOIN dbo._Document532 T129 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000214
    AND T2._Fld31524_RRRef = T129._IDRRef
LEFT OUTER JOIN dbo._Document558 T130 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x0000022E
    AND T2._Fld31524_RRRef = T130._IDRRef
LEFT OUTER JOIN dbo._Document440 T131 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000001B8
    AND T2._Fld31524_RRRef = T131._IDRRef
LEFT OUTER JOIN dbo._Document334 T132 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x0000014E
    AND T2._Fld31524_RRRef = T132._IDRRef
LEFT OUTER JOIN dbo._Document342 T133 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000156
    AND T2._Fld31524_RRRef = T133._IDRRef
LEFT OUTER JOIN dbo._Document30112 T134 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000075A0
    AND T2._Fld31524_RRRef = T134._IDRRef
LEFT OUTER JOIN dbo._Document484 T135 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000001E4
    AND T2._Fld31524_RRRef = T135._IDRRef
LEFT OUTER JOIN dbo._Document530 T136 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000212
    AND T2._Fld31524_RRRef = T136._IDRRef
LEFT OUTER JOIN dbo._Document361 T137 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000169
    AND T2._Fld31524_RRRef = T137._IDRRef
LEFT OUTER JOIN dbo._Document607 T138 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x0000025F
    AND T2._Fld31524_RRRef = T138._IDRRef
LEFT OUTER JOIN dbo._Document351 T139 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x0000015F
    AND T2._Fld31524_RRRef = T139._IDRRef
LEFT OUTER JOIN dbo._Document409 T140 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000199
    AND T2._Fld31524_RRRef = T140._IDRRef
LEFT OUTER JOIN dbo._Document388 T141 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000184
    AND T2._Fld31524_RRRef = T141._IDRRef
LEFT OUTER JOIN dbo._Document478 T142 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000001DE
    AND T2._Fld31524_RRRef = T142._IDRRef
LEFT OUTER JOIN dbo._Document414 T143 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x0000019E
    AND T2._Fld31524_RRRef = T143._IDRRef
LEFT OUTER JOIN dbo._Document30117 T144 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000075A5
    AND T2._Fld31524_RRRef = T144._IDRRef
LEFT OUTER JOIN dbo._Document491 T145 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000001EB
    AND T2._Fld31524_RRRef = T145._IDRRef
LEFT OUTER JOIN dbo._Document513 T146 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000201
    AND T2._Fld31524_RRRef = T146._IDRRef
LEFT OUTER JOIN dbo._Document279 T147 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000117
    AND T2._Fld31524_RRRef = T147._IDRRef
LEFT OUTER JOIN dbo._Document403 T148 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000193
    AND T2._Fld31524_RRRef = T148._IDRRef
LEFT OUTER JOIN dbo._Document522 T149 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x0000020A
    AND T2._Fld31524_RRRef = T149._IDRRef
LEFT OUTER JOIN dbo._Document404 T150 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000194
    AND T2._Fld31524_RRRef = T150._IDRRef
LEFT OUTER JOIN dbo._Document559 T151 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x0000022F
    AND T2._Fld31524_RRRef = T151._IDRRef
LEFT OUTER JOIN dbo._Document471 T152 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000001D7
    AND T2._Fld31524_RRRef = T152._IDRRef
LEFT OUTER JOIN dbo._Document561 T153 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000231
    AND T2._Fld31524_RRRef = T153._IDRRef
LEFT OUTER JOIN dbo._Document392 T154 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000188
    AND T2._Fld31524_RRRef = T154._IDRRef
LEFT OUTER JOIN dbo._Document537 T155 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000219
    AND T2._Fld31524_RRRef = T155._IDRRef
LEFT OUTER JOIN dbo._Document418 T156 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000001A2
    AND T2._Fld31524_RRRef = T156._IDRRef
LEFT OUTER JOIN dbo._Document309 T157 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000135
    AND T2._Fld31524_RRRef = T157._IDRRef
LEFT OUTER JOIN dbo._Document598 T158 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000256
    AND T2._Fld31524_RRRef = T158._IDRRef
LEFT OUTER JOIN dbo._Document582 T159 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000246
    AND T2._Fld31524_RRRef = T159._IDRRef
LEFT OUTER JOIN dbo._Document604 T160 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x0000025C
    AND T2._Fld31524_RRRef = T160._IDRRef
LEFT OUTER JOIN dbo._Document555 T161 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x0000022B
    AND T2._Fld31524_RRRef = T161._IDRRef
LEFT OUTER JOIN dbo._Document519 T162 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000207
    AND T2._Fld31524_RRRef = T162._IDRRef
LEFT OUTER JOIN dbo._Document565 T163 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000235
    AND T2._Fld31524_RRRef = T163._IDRRef
LEFT OUTER JOIN dbo._Document508 T164 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000001FC
    AND T2._Fld31524_RRRef = T164._IDRRef
LEFT OUTER JOIN dbo._Document299 T165 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x0000012B
    AND T2._Fld31524_RRRef = T165._IDRRef
LEFT OUTER JOIN dbo._Document347 T166 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x0000015B
    AND T2._Fld31524_RRRef = T166._IDRRef
LEFT OUTER JOIN dbo._Document31386 T167 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00007A9A
    AND T2._Fld31524_RRRef = T167._IDRRef
LEFT OUTER JOIN dbo._Document506 T168 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000001FA
    AND T2._Fld31524_RRRef = T168._IDRRef
LEFT OUTER JOIN dbo._Document333 T169 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x0000014D
    AND T2._Fld31524_RRRef = T169._IDRRef
LEFT OUTER JOIN dbo._Document348 T170 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x0000015C
    AND T2._Fld31524_RRRef = T170._IDRRef
LEFT OUTER JOIN dbo._Document391 T171 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000187
    AND T2._Fld31524_RRRef = T171._IDRRef
LEFT OUTER JOIN dbo._Document294 T172 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000126
    AND T2._Fld31524_RRRef = T172._IDRRef
LEFT OUTER JOIN dbo._Document579 T173 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000243
    AND T2._Fld31524_RRRef = T173._IDRRef
LEFT OUTER JOIN dbo._Document570 T174 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x0000023A
    AND T2._Fld31524_RRRef = T174._IDRRef
LEFT OUTER JOIN dbo._Document568 T175 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000238
    AND T2._Fld31524_RRRef = T175._IDRRef
LEFT OUTER JOIN dbo._Document312 T176 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000138
    AND T2._Fld31524_RRRef = T176._IDRRef
LEFT OUTER JOIN dbo._Document426 T177 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000001AA
    AND T2._Fld31524_RRRef = T177._IDRRef
LEFT OUTER JOIN dbo._Document587 T178 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x0000024B
    AND T2._Fld31524_RRRef = T178._IDRRef
LEFT OUTER JOIN dbo._Document467 T179 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000001D3
    AND T2._Fld31524_RRRef = T179._IDRRef
LEFT OUTER JOIN dbo._Document286 T180 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x0000011E
    AND T2._Fld31524_RRRef = T180._IDRRef
LEFT OUTER JOIN dbo._Document509 T181 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000001FD
    AND T2._Fld31524_RRRef = T181._IDRRef
LEFT OUTER JOIN dbo._Document389 T182 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000185
    AND T2._Fld31524_RRRef = T182._IDRRef
LEFT OUTER JOIN dbo._Document487 T183 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000001E7
    AND T2._Fld31524_RRRef = T183._IDRRef
LEFT OUTER JOIN dbo._Document516 T184 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000204
    AND T2._Fld31524_RRRef = T184._IDRRef
LEFT OUTER JOIN dbo._Document325 T185 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000145
    AND T2._Fld31524_RRRef = T185._IDRRef
LEFT OUTER JOIN dbo._Document410 T186 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x0000019A
    AND T2._Fld31524_RRRef = T186._IDRRef
LEFT OUTER JOIN dbo._Document422 T187 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000001A6
    AND T2._Fld31524_RRRef = T187._IDRRef
LEFT OUTER JOIN dbo._Document496 T188 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000001F0
    AND T2._Fld31524_RRRef = T188._IDRRef
LEFT OUTER JOIN dbo._Document498 T189 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000001F2
    AND T2._Fld31524_RRRef = T189._IDRRef
LEFT OUTER JOIN dbo._Document311 T190 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000137
    AND T2._Fld31524_RRRef = T190._IDRRef
LEFT OUTER JOIN dbo._Document353 T191 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000161
    AND T2._Fld31524_RRRef = T191._IDRRef
LEFT OUTER JOIN dbo._Document589 T192 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x0000024D
    AND T2._Fld31524_RRRef = T192._IDRRef
LEFT OUTER JOIN dbo._Document536 T193 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000218
    AND T2._Fld31524_RRRef = T193._IDRRef
LEFT OUTER JOIN dbo._Document295 T194 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000127
    AND T2._Fld31524_RRRef = T194._IDRRef
LEFT OUTER JOIN dbo._Document293 T195 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000125
    AND T2._Fld31524_RRRef = T195._IDRRef
LEFT OUTER JOIN dbo._Document608 T196 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000260
    AND T2._Fld31524_RRRef = T196._IDRRef
LEFT OUTER JOIN dbo._Document492 T197 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000001EC
    AND T2._Fld31524_RRRef = T197._IDRRef
LEFT OUTER JOIN dbo._Document465 T198 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000001D1
    AND T2._Fld31524_RRRef = T198._IDRRef
LEFT OUTER JOIN dbo._Document447 T199 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000001BF
    AND T2._Fld31524_RRRef = T199._IDRRef
LEFT OUTER JOIN dbo._Document30124 T200 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000075AC
    AND T2._Fld31524_RRRef = T200._IDRRef
LEFT OUTER JOIN dbo._Document316 T201 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x0000013C
    AND T2._Fld31524_RRRef = T201._IDRRef
LEFT OUTER JOIN dbo._Document377 T202 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x00000179
    AND T2._Fld31524_RRRef = T202._IDRRef
LEFT OUTER JOIN dbo._Document575 T203 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x0000023F
    AND T2._Fld31524_RRRef = T203._IDRRef
LEFT OUTER JOIN dbo._Document382 T204 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x0000017E
    AND T2._Fld31524_RRRef = T204._IDRRef
LEFT OUTER JOIN dbo._Document472 T205 ON T2._Fld31524_TYPE = 0x08
    AND T2._Fld31524_RTRef = 0x000001D8
    AND T2._Fld31524_RRRef = T205._IDRRef
LEFT OUTER JOIN dbo._Document548 T206 ON T2._Fld31524_TYPE = 0
1 RomanYS
 
09.10.19
17:08
Замени Регистр_ТКД.ДокТКД.Ссылка на Регистр_ТКД.ДокТКД
2 mikecool
 
09.10.19
17:08
так и должно быть
3 RomanYS
 
09.10.19
17:08
(2) :)
4 pvase
 
09.10.19
17:08
В общем сюда ввесь запрос не влез, он занимает 4264 строки, если отформатировать. Как так может быть, неужели вот такой запрос:
SELECT
    T1._IDRRef
    ,T2._Fld31525
FROM dbo._Document313 T1
LEFT OUTER JOIN dbo._InfoRg31523 T2 ON T2._Fld31524_RRRef = T1._IDRRef AND T2._Fld31524_RTRef = 0x00000139
5 sqr4
 
09.10.19
17:11
связь по документу множественного типа, она такая
6 pvase
 
09.10.19
17:11
Т.е. "Регистр_ТКД.ДокТКД.Ссылка" заводит 1С-ку глубокое раздумие. Это же надо было такое придумать :)
7 sqr4
 
09.10.19
17:11
*реквизиту
8 mikecool
 
09.10.19
17:13
(6) ваши предложения?
9 mikecool
 
09.10.19
17:13
+8 как по реквизиту множественного вида понять - что присоединять?
10 hhhh
 
09.10.19
17:13
(6) ну Регистр_ТКД.ДокТКД.Ссылка   - это дебилизм, согласись.

правильно   Регистр_ТКД.ДокТКД
11 pvase
 
09.10.19
17:17
(10) Согласен, но не согласен. Потому что Ссылка - это и есть само поле _RREF. Т.е. если я выберу Регистр_ТКД.ДокТКД.Ссылка.Ссылка
то он мне сделает еще по одному джойну для получения документов по ссылке? Как то "защиту от дурака" забыли включить :)
12 RomanYS
 
09.10.19
17:17
(6) Всё неправильно: это неявное соединение со всеми возможными типами ДокТКД. Похоже у тебя там тип любой документ или хуже
13 D_E_S_131
 
09.10.19
17:17
А для чего поставлено условие связи "И Регистр_ТКД.ДокТКД ССЫЛКА Документ.ВозвратТоваровОтПокупателя"? Разве "ВозвратТоваровОтПокупателя" по ссылке может соединиться с каким-то другим видом документов?
14 RomanYS
 
09.10.19
17:18
(12) *правильно
15 sqr4
 
09.10.19
17:19
А тут же явно надо сначала в ВТ выбрать все документы из регистра с типом Документ.ВозвратТоваровОтПокупателя и привести  Регистр_ТКД.ДокТКД к этому типа, а затем уж соединять. Разве нет?
16 RomanYS
 
09.10.19
17:19
(11) >> "Защиту от дурака" забыли включить
Может быть ситуация когда подобное реально нужно.
17 H A D G E H O G s
 
09.10.19
17:20
Регистр_ТКД.ДокТКД.Ссылка

просто ничем не отличается от
Регистр_ТКД.ДокТКД.Дата
18 H A D G E H O G s
 
09.10.19
17:20
к примеру
19 D_E_S_131
 
09.10.19
17:20
(15) И без этого все прекрасно выводится. Не нужно только ".Ссылка" приписывать куда не следует.
20 shuhard
 
09.10.19
17:20
(11) делай приведение типов, проблема известная, то же самое с субконто
21 H A D G E H O G s
 
09.10.19
17:21
ЛюбаяСсылка должна быть запрещена на уровне платформы
22 ИУБиПовиц
 
09.10.19
17:21
А если   Регистр_ТКД.ЕстьКопия КАК ЕстьТКД выразить как документ определенного типа, не поможет?
23 sqr4
 
09.10.19
17:22
(19) Чето я не согласен, но проверять не буду)
24 H A D G E H O G s
 
09.10.19
17:22
Секс с "Указать руками все типы данного реквизита" должен демотивировать указывать лишние типы, иначе сейчас он мотивирует вхерачить ЛюбуюСсылку и пожинать бурю.
25 D_E_S_131
 
09.10.19
17:23
Ну или если уж очень надо, то сделать соединение с "Выразить(Регистр_ТКДюДокТКД КАК Документ.ВозвратТоваровОтПокупателя).Ссылка"
26 D_E_S_131
 
09.10.19
17:24
(23) А я вот не поленился и проверил :)
27 RomanYS
 
09.10.19
17:24
(23) ".Ссылка" - это откровенный косяк, который дает сотни соединений,
а (15) какой-то тюнинг, который должен дать(или не дать) проценты скорости
28 RomanYS
 
09.10.19
17:25
(25) так это всё равно лишнее соединение , хоть и одно
29 sqr4
 
09.10.19
17:29
(26) Намотаю на ус
30 HardBall
 
09.10.19
17:30
31 unregistered
 
09.10.19
17:33
(13) >> А для чего поставлено условие связи...

В условии связи "ССЫЛКА" поле ДокТКД, а в условии связи "=" поле ДокТКД.Ссылка.

Почувствуйте разницу. ".Ссылка" надо убирать.
32 xXeNoNx
 
09.10.19
17:46
(8) Ваще не странная ситуация, оно так должно быть
33 ILM
 
гуру
09.10.19
19:19
ВЫРАЗИТЬ же есть, этого будет достаточно!!!

ВЫБРАТЬ
    ДокументВозвратТоваровОтПокупателя.Ссылка КАК Ссылка,
    Регистр_ТКД.ЕстьКопия КАК ЕстьТКД
ИЗ
    Документ.ВозвратТоваровОтПокупателя КАК ДокументВозвратТоваровОтПокупателя
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Регистр_ТКД КАК Регистр_ТКД
        ПО ДокументВозвратТоваровОтПокупателя.Ссылка = ВЫРАЗИТЬ(Регистр_ТКД.ДокТКД КАК Документ.ВозвратТоваровОтПокупателя)
34 Tonik992
 
09.10.19
20:10
(33) При таком забросе ВЫРАЗИТЬ не нужно.
35 RomanYS
 
09.10.19
20:11
(33) Достаточно
ПО ДокументВозвратТоваровОтПокупателя.Ссылка = Регистр_ТКД.ДокТКД
36 ILM
 
гуру
09.10.19
20:35
(34) (35) неуд вам по 1с
37 RomanYS
 
09.10.19
20:46
(36) да хоть два неуда. Сделай замеры и покажи разницу. А потом сравни с (0)
И (27) прочитай потом)
38 ILM
 
гуру
09.10.19
20:50
60 сек и 0 сек
39 RomanYS
 
09.10.19
20:52
(38) Это что ты сравнивал?
40 RomanYS
 
09.10.19
20:58
вот запрос
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ВозвратТоваровОтПокупателя.Ссылка,
    |    ВозвратТоваровОтПокупателя.Представление,
    |    Хозрасчетный.СчетДт,
    |    ПРЕДСТАВЛЕНИЕ(Хозрасчетный.СчетДт)
    |ИЗ
    |    Документ.ВозвратТоваровОтПокупателя КАК ВозвратТоваровОтПокупателя
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
    |        ПО (Хозрасчетный.Регистратор = ВозвратТоваровОтПокупателя.Ссылка)
    |            И (Хозрасчетный.НомерСтроки = 1)";
    
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ЗапросСВЫРАЗИТЬ = Новый Запрос;
    ЗапросСВЫРАЗИТЬ.Текст =
    "ВЫБРАТЬ
    |    ВозвратТоваровОтПокупателя.Ссылка,
    |    ВозвратТоваровОтПокупателя.Представление,
    |    Хозрасчетный.СчетДт,
    |    ПРЕДСТАВЛЕНИЕ(Хозрасчетный.СчетДт)
    |ИЗ
    |    Документ.ВозвратТоваровОтПокупателя КАК ВозвратТоваровОтПокупателя
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
    |        ПО (ВЫРАЗИТЬ(Хозрасчетный.Регистратор КАК Документ.ВозвратТоваровОтПокупателя) = ВозвратТоваровОтПокупателя.Ссылка)
    |            И (Хозрасчетный.НомерСтроки = 1)";
    
    
    РезультатЗапроса = ЗапросСВЫРАЗИТЬ.Выполнить();
41 ILM
 
гуру
09.10.19
20:58
без выразить и с ним.
42 ILM
 
гуру
09.10.19
20:59
наоборот две таблицы во втором.
43 RomanYS
 
09.10.19
21:00
+(40)  а вот замер
7    Запрос = Новый Запрос;    0,000143
8    Запрос.Текст =    0,000050
21    РезультатЗапроса = Запрос.Выполнить();    0,011239
23    ЗапросСВЫРАЗИТЬ = Новый Запрос;    0,000066
24    ЗапросСВЫРАЗИТЬ.Текст =    0,000028
37    РезультатЗапроса = ЗапросСВЫРАЗИТЬ.Выполнить();    2,364521
41    КонецПроцедуры    0,000004
44 RomanYS
 
09.10.19
21:01
(43) с выразить почему-то медленнее в 200 раз
45 RomanYS
 
09.10.19
21:02
(42) показывай
46 RomanYS
 
09.10.19
21:05
(43) сейчас на серверной проверю. На файловой стабильно в 200-300 раз быстрее БЕЗ ВЫРАЗИТЬ
47 ILM
 
гуру
09.10.19
21:08
у меня sql
48 RomanYS
 
09.10.19
21:09
(47) запросы покажи и замер
49 ILM
 
гуру
09.10.19
21:19
1-й
ВЫБРАТЬ
    ВозвратТоваровОтПокупателя.Ссылка,
    ВозвратТоваровОтПокупателя.Представление,
    Хозрасчетный.СчетДт
ИЗ
    РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ВозвратТоваровОтПокупателя КАК ВозвратТоваровОтПокупателя
    ПО (Хозрасчетный.Регистратор = ВозвратТоваровОтПокупателя.Ссылка)
    

2-й    
ВЫБРАТЬ
    ВозвратТоваровОтПокупателя.Ссылка,
    ВозвратТоваровОтПокупателя.Представление,
    Хозрасчетный.СчетДт
ИЗ
    РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ВозвратТоваровОтПокупателя КАК ВозвратТоваровОтПокупателя
ПО ВЫРАЗИТЬ(Хозрасчетный.Регистратор КАК Документ.ВозвратТоваровОтПокупателя) = ВозвратТоваровОтПокупателя.Ссылка
    
В консоли
1-й 8 сек
2-й 0 сек
Ну они уже закэшированы
50 RomanYS
 
09.10.19
21:25
(49) а у меня на SQL
РезультатЗапроса = ЗапросСВЫРАЗИТЬ.Выполнить();    0,176656    92,57%
РезультатЗапроса = Запрос.Выполнить();    0,013954    7,31%
51 RomanYS
 
09.10.19
21:28
(49) сделал тоже внутреннее. Всё равно С ВЫРАЗИТЬ в 10 раз медленнее
РезультатЗапроса = Запрос.Выполнить();    1    0,018647    9,03
РезультатЗапроса = ЗапросСВЫРАЗИТЬ.Выполнить();    1    0,187568    90,85
52 RomanYS
 
09.10.19
21:36
(49) на твоих запросах тоже ВЫРАЗИТЬ пригрывает в 6-7 раз

Нужен кто-то третий!!!
53 RomanYS
 
09.10.19
21:37
https://cloud.mail.ru/public/28PK/4jh9cf2Mc


    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ВозвратТоваровОтПокупателя.Ссылка,
    |    ВозвратТоваровОтПокупателя.Представление,
    |    Хозрасчетный.СчетДт,
    |    ПРЕДСТАВЛЕНИЕ(Хозрасчетный.СчетДт)
    |ИЗ
    |    Документ.ВозвратТоваровОтПокупателя КАК ВозвратТоваровОтПокупателя
    |        ВНУТРЕННЕЕ  СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
    |        ПО (Хозрасчетный.Регистратор = ВозвратТоваровОтПокупателя.Ссылка)
    |            И (Хозрасчетный.НомерСтроки = 1)";
    
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ЗапросСВЫРАЗИТЬ = Новый Запрос;
    ЗапросСВЫРАЗИТЬ.Текст =
    "ВЫБРАТЬ
    |    ВозвратТоваровОтПокупателя.Ссылка,
    |    ВозвратТоваровОтПокупателя.Представление,
    |    Хозрасчетный.СчетДт,
    |    ПРЕДСТАВЛЕНИЕ(Хозрасчетный.СчетДт)
    |ИЗ
    |    Документ.ВозвратТоваровОтПокупателя КАК ВозвратТоваровОтПокупателя
    |        ВНУТРЕННЕЕ  СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
    |        ПО (ВЫРАЗИТЬ(Хозрасчетный.Регистратор КАК Документ.ВозвратТоваровОтПокупателя) = ВозвратТоваровОтПокупателя.Ссылка)
    |            И (Хозрасчетный.НомерСтроки = 1)";
    
    
    РезультатЗапроса = ЗапросСВЫРАЗИТЬ.Выполнить();
    
    ЗапросILM = Новый Запрос;
    ЗапросILM.Текст =
    
    "ВЫБРАТЬ    
    |    ВозвратТоваровОтПокупателя.Ссылка,
    |    ВозвратТоваровОтПокупателя.Представление,
    |    Хозрасчетный.СчетДт
    |ИЗ
    |    РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
    |    ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ВозвратТоваровОтПокупателя КАК ВозвратТоваровОтПокупателя
    |    ПО (Хозрасчетный.Регистратор = ВозвратТоваровОтПокупателя.Ссылка)";
    РезультатЗапроса = ЗапросILM.Выполнить();
    
    
    ЗапросILM_СВЫРАЗИТЬ = Новый Запрос;
    ЗапросILM_СВЫРАЗИТЬ.Текст =
    "ВЫБРАТЬ
    |    ВозвратТоваровОтПокупателя.Ссылка,
    |    ВозвратТоваровОтПокупателя.Представление,
    |    Хозрасчетный.СчетДт
    | ИЗ
    |    РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
    |ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ВозвратТоваровОтПокупателя КАК ВозвратТоваровОтПокупателя
    |ПО ВЫРАЗИТЬ(Хозрасчетный.Регистратор КАК Документ.ВозвратТоваровОтПокупателя) = ВозвратТоваровОтПокупателя.Ссылка";
    РезультатЗапроса = ЗапросILM_СВЫРАЗИТЬ.Выполнить();
54 RomanYS
 
09.10.19
21:42
H A D G E H O G s
что говорит теория, нужно выразить в таком соединении?
55 ILM
 
гуру
09.10.19
21:44
у нас возвратов мало  база за 8 лет.
56 H A D G E H O G s
 
09.10.19
21:53
Не нужен.
57 RomanYS
 
09.10.19
21:54
(55) так же, но результаты обратные!
Сейчас выложу обработку с УФ/ОФ чтобы замеры сразу выводились
58 ILM
 
гуру
09.10.19
21:57
Я спать, до завтра
59 RomanYS
 
09.10.19
22:03
60 H A D G E H O G s
 
09.10.19
22:03
Первое - без выразить, второе - с выразить
http://prntscr.com/ph3hs4

В первом случае используется индекс по регистратору, во втором - нет.

Это работает, когда одна из таблиц - маленькая (у меня 1020 строк).

Во втором случае индекс не используется, потому что в условие связи добавляется ВЫБОР

http://prntscr.com/ph3hs4
61 H A D G E H O G s
 
09.10.19
22:03
exec sp_executesql N'INSERT INTO #tt6 WITH(TABLOCK) (_Q_001_F_000RRef, _Q_001_F_001RRef, _Q_001_F_002) SELECT
T1._IDRRef,
T2._Fld21823RRef,
T2._Fld21829
FROM dbo._Document364 T1
LEFT OUTER JOIN dbo._AccumRg21822 T2
ON ((CASE WHEN T2._RecorderTRef = 0x0000016C THEN T2._RecorderRRef END = T1._IDRRef)) AND (T2._Fld931 = P1)
WHERE (T1._Fld931 = @P2)',N'P1 numeric(10),@P2 numeric(10)',0,0

ON ((CASE WHEN T2._RecorderTRef = 0x0000016C THEN T2._RecorderRRef END = T1._IDRRef))
62 RomanYS
 
09.10.19
22:04
(59) Мои результаты

8.3.15.1656 File
Запрос1: 0 мс
Запрос1_с_ВЫРАЗИТЬ: 265 мс
Запрос2: 0 мс
Запрос2_с_ВЫРАЗИТЬ: 362 мс

8.3.6.2421 Srvr
Запрос1: 11 мс
Запрос1_с_ВЫРАЗИТЬ: 178 мс
Запрос2: 10 мс
Запрос2_с_ВЫРАЗИТЬ: 65 мс
63 RomanYS
 
09.10.19
22:04
(58) Иди, двоечник)
64 RomanYS
 
09.10.19
22:06
(61) а почему  (38) (49) может быть (или не может?)?

(38) можно предположить, что холодный/горячий кэш. А вот (49)?
65 palsergeich
 
10.10.19
01:37
(64) Там пропуск в индексе у Вас в запросе.
Вы еще из РБ получите период и сравните результат.
И скорее всего изза этого оптимизатор в каждом случае решает брать данные из разных индексов
66 palsergeich
 
10.10.19
01:42
Период + Регистратор + НомерСтроки (Кластерный)
Регистратор + НомерСтроки + KEY LOOKUP
Также теоретически (но это вряд ли) возможно использование этого индекса Счет + Период + Регистратор
Я бы по (49) посмотрел какой индекс в 1 и 2 случае используются апотомсделал бы то же самое но еще бы достал поле период. К содалению у меня сейчас нет наполненной базы с РБ
67 palsergeich
 
10.10.19
01:44
(33) А почему ВЫРАЗИТЬ в условии соединения, а не Ссылка ?
68 palsergeich
 
10.10.19
01:45
(67) Все вопрос снял, это я в глаза уже долблюсь, пошел спать
69 RomanYS
 
10.10.19
08:45
Апну на дорожку.
В (59) обработка с замером. На практике ищем опровержение или подтверждение (33). Предварительный вывод:так делать нельзя.
Ну и ILM вызывается для проведения переаттестации (36) ;)
70 DrZombi
 
гуру
10.10.19
09:12
(0) Регистр составного типа, а с составными типами, вот как раз так и получается...
Не стоит писать все через точку ".ССЫЛКА", 1С хреново оптимизирует запросы :)
71 ILM
 
гуру
10.10.19
11:05
(69) Счас запущу на сервере. Результаты выложу.
72 ILM
 
гуру
10.10.19
12:38
Ну, был не прав))) Только что же я ночью запускал в 2 часа ночи?

8.3.15.1489 Srvr
Запрос1: 8 мс
Запрос1_с_ВЫРАЗИТЬ: 48 мс
Запрос2: 3 мс
Запрос2_с_ВЫРАЗИТЬ: 72 мс
8.3.15.1489 Srvr
Запрос1: 4 мс
Запрос1_с_ВЫРАЗИТЬ: 35 мс
Запрос2: 3 мс
Запрос2_с_ВЫРАЗИТЬ: 65 мс
8.3.15.1489 Srvr
Запрос1: 4 мс
Запрос1_с_ВЫРАЗИТЬ: 36 мс
Запрос2: 3 мс
Запрос2_с_ВЫРАЗИТЬ: 74 мс
73 DrZombi
 
гуру
10.10.19
12:57
(72) Ваш запрос закешировался ):
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой