|
Помогите транслировать/найти запрос t-sql в 1с | ☑ | ||
---|---|---|---|---|
0
zharkin
06.05.13
✎
13:07
|
Помогите найти место в конфигурации 1с, откуда может вызываться подобный запрос!
Вот текст запроса в t-sql exec sp_executesql N'SELECT ISNULL(CAST(T2._Q_000_F_001 AS NUMERIC(27, 2)),P1), T2._Q_000_F_000RRef, T1._Q_001_F_000_TYPE, T1._Q_001_F_000_RTRef, T1._Q_001_F_000_RRRef FROM #tt3 T1 WITH(NOLOCK) LEFT OUTER JOIN #tt2 T2 WITH(NOLOCK) LEFT OUTER JOIN _Document125 T3 WITH(NOLOCK) ON T2._Q_000_F_002_TYPE = @P2 AND T2._Q_000_F_002_RTRef = @P3 AND T2._Q_000_F_002_RRRef = T3._IDRRef LEFT OUTER JOIN _Document87 T4 WITH(NOLOCK) ON T2._Q_000_F_002_TYPE = @P2 AND T2._Q_000_F_002_RTRef = @P4 AND T2._Q_000_F_002_RRRef = T4._IDRRef LEFT OUTER JOIN _Document116 T5 WITH(NOLOCK) ON T2._Q_000_F_002_TYPE = @P2 AND T2._Q_000_F_002_RTRef = @P5 AND T2._Q_000_F_002_RRRef = T5._IDRRef LEFT OUTER JOIN _Document131 T6 WITH(NOLOCK) ON T2._Q_000_F_002_TYPE = @P2 AND T2._Q_000_F_002_RTRef = @P6 AND T2._Q_000_F_002_RRRef = T6._IDRRef LEFT OUTER JOIN _Document117 T7 WITH(NOLOCK) ON T2._Q_000_F_002_TYPE = @P2 AND T2._Q_000_F_002_RTRef = @P7 AND T2._Q_000_F_002_RRRef = T7._IDRRef LEFT OUTER JOIN _Document61 T8 WITH(NOLOCK) ON T2._Q_000_F_002_TYPE = @P2 AND T2._Q_000_F_002_RTRef = @P8 AND T2._Q_000_F_002_RRRef = T8._IDRRef LEFT OUTER JOIN _Document86 T9 WITH(NOLOCK) ON T2._Q_000_F_002_TYPE = @P2 AND T2._Q_000_F_002_RTRef = @P9 AND T2._Q_000_F_002_RRRef = T9._IDRRef LEFT OUTER JOIN _Document120 T10 WITH(NOLOCK) ON T2._Q_000_F_002_TYPE = @P2 AND T2._Q_000_F_002_RTRef = P10 AND T2._Q_000_F_002_RRRef = T10._IDRRef LEFT OUTER JOIN _Document115 T11 WITH(NOLOCK) ON T2._Q_000_F_002_TYPE = @P2 AND T2._Q_000_F_002_RTRef = P11 AND T2._Q_000_F_002_RRRef = T11._IDRRef LEFT OUTER JOIN _Document62 T12 WITH(NOLOCK) ON T2._Q_000_F_002_TYPE = @P2 AND T2._Q_000_F_002_RTRef = P12 AND T2._Q_000_F_002_RRRef = T12._IDRRef LEFT OUTER JOIN _Document118 T13 WITH(NOLOCK) ON T2._Q_000_F_002_TYPE = @P2 AND T2._Q_000_F_002_RTRef = P13 AND T2._Q_000_F_002_RRRef = T13._IDRRef LEFT OUTER JOIN _Document119 T14 WITH(NOLOCK) ON T2._Q_000_F_002_TYPE = @P2 AND T2._Q_000_F_002_RTRef = P14 AND T2._Q_000_F_002_RRRef = T14._IDRRef ON ((T2._Q_000_F_002_TYPE = T1._Q_001_F_000_TYPE AND T2._Q_000_F_002_RTRef = T1._Q_001_F_000_RTRef AND T2._Q_000_F_002_RRRef = T1._Q_001_F_000_RRRef) OR (CASE WHEN T2._Q_000_F_002_TYPE = 0x08 AND T2._Q_000_F_002_RTRef = 0x0000007D THEN T3._Fld2891_TYPE WHEN T2._Q_000_F_002_TYPE = 0x08 AND T2._Q_000_F_002_RTRef = 0x00000057 THEN T4._Fld1639_TYPE WHEN T2._Q_000_F_002_TYPE = 0x08 AND T2._Q_000_F_002_RTRef = 0x00000074 THEN T5._Fld2429_TYPE WHEN T2._Q_000_F_002_TYPE = 0x08 AND T2._Q_000_F_002_RTRef = 0x00000083 THEN T6._Fld3052_TYPE WHEN T2._Q_000_F_002_TYPE = 0x08 AND T2._Q_000_F_002_RTRef = 0x00000075 THEN T7._Fld2483_TYPE WHEN T2._Q_000_F_002_TYPE = 0x08 AND T2._Q_000_F_002_RTRef = 0x0000003D THEN T8._Fld775_TYPE WHEN T2._Q_000_F_002_TYPE = 0x08 AND T2._Q_000_F_002_RTRef = 0x00000056 THEN T9._Fld1586_TYPE WHEN T2._Q_000_F_002_TYPE = 0x08 AND T2._Q_000_F_002_RTRef = 0x00000078 THEN T10._Fld2633_TYPE WHEN T2._Q_000_F_002_TYPE = 0x08 AND T2._Q_000_F_002_RTRef = 0x00000073 THEN T11._Fld2379_TYPE WHEN T2._Q_000_F_002_TYPE = 0x08 AND T2._Q_000_F_002_RTRef = 0x0000003E THEN T12._Fld832_TYPE WHEN T2._Q_000_F_002_TYPE = 0x08 AND T2._Q_000_F_002_RTRef = 0x00000076 THEN T13._Fld2539_TYPE WHEN T2._Q_000_F_002_TYPE = 0x08 AND T2._Q_000_F_002_RTRef = 0x00000077 THEN T14._Fld2589_TYPE ELSE CAST(NULL AS BINARY(1)) END = T1._Q_001_F_000_TYPE AND CASE WHEN T2._Q_000_F_002_TYPE = 0x08 AND T2._Q_000_F_002_RTRef = 0x0000007D THEN T3._Fld2891_RTRef WHEN T2._Q_000_F_002_TYPE = 0x08 AND T2._Q_000_F_002_RTRef = 0x00000057 THEN T4._Fld1639_RTRef WHEN T2._Q_000_F_002_TYPE = 0x08 AND T2._Q_000_F_002_RTRef = 0x00000074 THEN T5._Fld2429_RTRef WHEN T2._Q_000_F_002_TYPE = 0x08 AND T2._Q_000_F_002_RTRef = 0x00000083 THEN T6._Fld3052_RTRef WHEN T2._Q_000_F_002_TYPE = 0x08 AND T2._Q_000_F_002_RTRef = 0x00000075 THEN T7._Fld2483_RTRef WHEN T2._Q_000_F_002_TYPE = 0x08 AND T2._Q_000_F_002_RTRef = 0x0000003D THEN T8._Fld775_RTRef WHEN T2._Q_000_F_002_TYPE = 0x08 AND T2._Q_000_F_002_RTRef = 0x00000056 THEN T9._Fld1586_RTRef WHEN T2._Q_000_F_002_TYPE = 0x08 AND T2._Q_000_F_002_RTRef = 0x00000078 THEN T10._Fld2633_RTRef WHEN T2._Q_000_F_002_TYPE = 0x08 AND T2._Q_000_F_002_RTRef = 0x00000073 THEN T11._Fld2379_RTRef WHEN T2._Q_000_F_002_TYPE = 0x08 AND T2._Q_000_F_002_RTRef = 0x0000003E THEN T12._Fld832_RTRef WHEN T2._Q_000_F_002_TYPE = 0x08 AND T2._Q_000_F_002_RTRef = 0x00000076 THEN T13._Fld2539_RTRef WHEN T2._Q_000_F_002_TYPE = 0x08 AND T2._Q_000_F_002_RTRef = 0x00000077 THEN T14._Fld2589_RTRef ELSE CAST(NULL AS BINARY(4)) END = T1._Q_001_F_000_RTRef AND CASE WHEN T2._Q_000_F_002_TYPE = 0x08 AND T2._Q_000_F_002_RTRef = 0x0000007D THEN T3._Fld2891_RRRef WHEN T2._Q_000_F_002_TYPE = 0x08 AND T2._Q_000_F_002_RTRef = 0x00000057 THEN T4._Fld1639_RRRef WHEN T2._Q_000_F_002_TYPE = 0x08 AND T2._Q_000_F_002_RTRef = 0x00000074 THEN T5._Fld2429_RRRef WHEN T2._Q_000_F_002_TYPE = 0x08 AND T2._Q_000_F_002_RTRef = 0x00000083 THEN T6._Fld3052_RRRef WHEN T2._Q_000_F_002_TYPE = 0x08 AND T2._Q_000_F_002_RTRef = 0x00000075 THEN T7._Fld2483_RRRef WHEN T2._Q_000_F_002_TYPE = 0x08 AND T2._Q_000_F_002_RTRef = 0x0000003D THEN T8._Fld775_RRRef WHEN T2._Q_000_F_002_TYPE = 0x08 AND T2._Q_000_F_002_RTRef = 0x00000056 THEN T9._Fld1586_RRRef WHEN T2._Q_000_F_002_TYPE = 0x08 AND T2._Q_000_F_002_RTRef = 0x00000078 THEN T10._Fld2633_RRRef WHEN T2._Q_000_F_002_TYPE = 0x08 AND T2._Q_000_F_002_RTRef = 0x00000073 THEN T11._Fld2379_RRRef WHEN T2._Q_000_F_002_TYPE = 0x08 AND T2._Q_000_F_002_RTRef = 0x0000003E THEN T12._Fld832_RRRef WHEN T2._Q_000_F_002_TYPE = 0x08 AND T2._Q_000_F_002_RTRef = 0x00000076 THEN T13._Fld2539_RRRef WHEN T2._Q_000_F_002_TYPE = 0x08 AND T2._Q_000_F_002_RTRef = 0x00000077 THEN T14._Fld2589_RRRef ELSE CAST(NULL AS BINARY(16)) END = T1._Q_001_F_000_RRRef)) WHERE (ISNULL(CAST(T2._Q_000_F_001 AS NUMERIC(27, 2)),P1) > P1)', N'P1 numeric(1,0),@P2 varbinary(1),@P3 varbinary(4),@P4 varbinary(4),@P5 varbinary(4),@P6 varbinary(4),@P7 varbinary(4),@P8 varbinary(4),@P9 varbinary(4),P10 varbinary(4),P11 varbinary(4),P12 varbinary(4),P13 varbinary(4),P14 varbinary(4)', 0, 0x08, 0x0000007D, 0x00000057, 0x00000074, 0x00000083, 0x00000075, 0x0000003D, 0x00000056, 0x00000078, 0x00000073, 0x0000003E, 0x00000076, 0x00000077 |
|||
2
бомболюк
06.05.13
✎
13:11
|
по мне так это показ формы списка какого то журнала документов.
|
|||
3
zharkin
06.05.13
✎
13:11
|
не могу понять, откуда такой запрос вызывается. конфа УТ 10.2
|
|||
4
zharkin
06.05.13
✎
13:12
|
(2) у меня тоже закралось подозрение, что это какой то список документов
|
|||
5
piter3
06.05.13
✎
13:13
|
сначала выяснить, что есть documentsxxx
|
|||
6
shuhard
06.05.13
✎
13:13
|
(3)[не могу понять, откуда такой запрос вызывается]
ну уж форум точно не может угадать что стоит за Fld2891 в твоем экземпляре УТ 10.2 |
|||
7
zharkin
06.05.13
✎
13:15
|
все документы _Document я выяснил - это ПКО, РКО и все банковские доки. Не понятно вот это FROM #tt3 T1 WITH(NOLOCK)
|
|||
8
SherifSP
06.05.13
✎
13:15
|
ТС, тебе на битву экстрасенсов нужно, там тебе точно скажут откуда вызывается данный код)
|
|||
9
mikecool
06.05.13
✎
13:26
|
#tt3 это временная таблица
ищи ПОМЕСТИТЬ |
|||
10
1Сергей
06.05.13
✎
13:29
|
(9) = INTO
|
|||
11
Sammo
06.05.13
✎
13:29
|
1. Откуда взят запрос?
2. Зачем оно надо? Попробуй поискать - обращение к реквизиту составного типа, который имеет тип 125 и т.д. |
|||
12
zharkin
06.05.13
✎
13:32
|
(11)
1. запрос взят из профайлера - этот запрос очень грузит процессор 2. найти и оптимизировать этот запрос или вообще от него отказаться |
|||
13
Sammo
06.05.13
✎
13:33
|
Выбрать
ЕстьNULL(числовой реквизит, 0), Ссылка, Ссылка из |
|||
14
Sammo
06.05.13
✎
13:34
|
(12) Включить технологический журнал и там смотреть долго выполняемые запросы 1с. После этого по времени и тесту свести со скулевым.
|
|||
15
GANR
06.05.13
✎
13:38
|
(0) Принцип деления пополам понимаешь? Делишь участок кода, на котором выполняется это запрос на 2 и тот, на котором запроса нет, отбрасываешь - и так, пока интервал не сведется к одной строчке кода, где и выполняется этот самый запрос. Все понятно???
|
|||
16
GANR
06.05.13
✎
13:43
|
Вот пример http://eco.sutd.ru/Study/Informat/mpd.html, только в нем идет речь о точке пересечения функции с осью Х, а у нас - о строчке кода в 1С, где выполняется запрос.
|
|||
17
GANR
06.05.13
✎
13:45
|
Есть, конечно, неприятный момент - в коде могу быть циклы.
|
|||
18
Speshuric
06.05.13
✎
13:52
|
(0)
1. Это запрос в котором соединяется 2 временные таблицы по реквизиту от поля составного типа. В нём есть что-то вроде: ИЗ ВременнаяТаблица1 ЛЕВОЕ СОЕДИНЕНИЕ ВременнаяТаблица2 ПО ВременнаяТаблица1.Док.Основание = ВременнаяТаблица2.Док (может там и не основание, а какой-то другой рекивзит - это легко посмотреть, например по "_Fld2589_RRRef" ) 2. Составные типы - зло, а временными таблицами надо уметь пользоваться. |
|||
19
zharkin
06.05.13
✎
14:04
|
(18) составные типы к сожалению повсеместно используются в типовых конфигурациях.
|
|||
20
zharkin
06.05.13
✎
14:11
|
(18) да, это реквизит ДокументОснование из документа ПлатежныйОрдерПоступлениеДенежныхСредств
|
|||
21
Speshuric
06.05.13
✎
14:18
|
(19) Вот не надо лишнего на типовые наговаривать. Да, составные типы там используются, но условий соединения типа того что приведено выше там не встречается.
(20) Ну и искать по коду где есть "ПО " и через две точки "ДокументОснование". Можно глазами, можно выгрузить d MXL |
|||
22
Infsams654
06.05.13
✎
14:23
|
(0) а для чего это нужно искать? Не нравится этот запрос t-sql, нужно предъявить 1С, что из этого места должно выглядеть по-другому ?
|
|||
23
Speshuric
06.05.13
✎
19:07
|
(14) Глупость сказал. Если ТЖ включить, то нафига сопоставлять? ТЖ и сам всё скажет.
|
|||
24
Sammo
07.05.13
✎
07:07
|
(23) Полуглупость. Имхо, про включение ТЖ - прав.
|
|||
25
vde69
07.05.13
✎
07:45
|
это RLS ...
"exec sp_executesql " - этим отличается рельса от прямого запроса |
|||
26
vde69
07.05.13
✎
07:56
|
(25)+
а таблица #tt3 - это результат прямого запроса на который накладывается уже сама рельса. ИХМО накладывание происходит внутри ХП из-за некоторых нюансов с правами. |
|||
27
zharkin
07.05.13
✎
15:41
|
помогло включение ТЖ.
сделал такой файл настройки logcfg.xml <?xml version="1.0" encoding="utf-8"?> <config xmlns="http://v8.1c.ru/v8/tech-log"> <dump create="false" /> <log location="D:\1Clog\" history="168"> <event> <eq property="Name" value="DBMSSQL"/> <ge property="Duration" value="40000"/> </event> <property name="Context"/> </log> </config> |
|||
28
zharkin
07.05.13
✎
15:48
|
получил текст модуля, который создавал запрос.
|
|||
29
vde69
07.05.13
✎
15:50
|
(28) и реально в модуле нашел этот запрос???
|
|||
30
zharkin
07.05.13
✎
15:53
|
(29)да. только он на языке 1С очень сильно отличается от t-sql
|
|||
31
zharkin
07.05.13
✎
15:53
|
оказалось не rls....
|
|||
32
Speshuric
07.05.13
✎
21:30
|
(28) Покажи хоть проблемное место в виде 1С-ного запроса.
|
|||
33
Fragster
гуру
07.05.13
✎
21:37
|
Где-то раньше есть определение Insert #tt3 Select..., вот в его сторону надо копать
|
|||
34
TormozIT
гуру
12.05.13
✎
10:57
|
Технологический журнал спасет.
|
|||
35
ILM
гуру
12.05.13
✎
16:42
|
Вопрос зачем уже задавали?
|
|||
36
zharkin
13.05.13
✎
15:12
|
(32) вот кусок проблемного запроса, особенно условие "Расчеты.Сделка.ДокументОснование = СведенияДок.КПКДокумент"
ВЫБРАТЬ ЕСТЬNULL(Расчеты.СуммаВзаиморасчетовОстаток, 0) КАК СуммаВзаиморасчетовОстаток, Расчеты.Контрагент, СведенияДок.КПКДокумент ИЗ СведенияДок КАК СведенияДок ЛЕВОЕ СОЕДИНЕНИЕ Расчеты КАК Расчеты ПО (Расчеты.Сделка = СведенияДок.КПКДокумент ИЛИ Расчеты.Сделка.ДокументОснование = СведенияДок.КПКДокумент) ГДЕ ЕСТЬNULL(Расчеты.СуммаВзаиморасчетовОстаток, 0) > 0 |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |