Имя: Пароль:
1C
1С v8
ВЫРАЗИТЬ() по нескольким типам в запросе.
,
0 H A D G E H O G s
 
11.02.12
22:01
Ночи доброй.
Как говорит мой младший брат про меня:

"Брат старый стал - не помнит нихера" © Брат-2

Хочу странного:

Выразить(ТоварыНаСкладах.Регистратор как (Документ.ПоступлениеТоваровУслуг, Документ.ВозвраТоваровПокупателем).


Как сделать?
34 Asmody
 
12.02.12
00:04
(17) у меня баттхёрт или я чего-то не понимаю: ты фактически написал "если А имеет тип Б, то привести А к типу Б"
35 mirosh
 
12.02.12
00:04
(33) а зачем грубить, товарищ инженер знаний?
36 Дикообразко
 
12.02.12
00:04
ВЫРАЗИТЬ(ТоварыНаСкладах.Регистратор КАК Документ.ПоступлениеТоваров).Номер


не?
37 H A D G E H O G s
 
12.02.12
00:04
(34) Ты все правильно понял.
38 H A D G E H O G s
 
12.02.12
00:05
(36) Да, но не только ПоступлениеТоваров, но и КорректировкаЗаписейРегистра , к примеру.
39 Immortal
 
12.02.12
00:05
(35)сплю я, не обращай внимания
40 Дикообразко
 
12.02.12
00:05
(38) естьnull?
41 Asmody
 
12.02.12
00:05
(37) зачем приводить к типу, если оно и так уже такого типа?
42 Дикообразко
 
12.02.12
00:06
естьnull(ВЫРАЗИТЬ(ТоварыНаСкладах.Регистратор КАК Документ.ПоступлениеТоваров).Номер,ВЫРАЗИТЬ(ТоварыНаСкладах.Регистратор КАК Документ.КорректировкаЗаписейРегистра ).Номер  )
43 Дикообразко
 
12.02.12
00:06
(41)1c тупая скотина
44 Asmody
 
12.02.12
00:06
а чем ССЫЛКА(...) ИЛИ ССЫЛКА(...) в ГДЕ не угодило?
45 H A D G E H O G s
 
12.02.12
00:07
(44) Счаст попробую
46 mirosh
 
12.02.12
00:07
(41) не факт, что оно такого типа.

Тут два варианта.
1. Выбрать сначала с одним типом (в разделе ГДЕ слово ССЫЛКА) и объединить с другим типом.
2. Либо проверять сразу в полях через "выбор когда Ссылка тогда выразить"
47 H A D G E H O G s
 
12.02.12
00:08
(44) Это меняет результат запроса, теоретически, но практически мне подходит.
48 H A D G E H O G s
 
12.02.12
00:09
(42) Тоже вариант
49 H A D G E H O G s
 
12.02.12
00:09
Балин, забросали.
50 H A D G E H O G s
 
12.02.12
00:10
Все, погодьте, пойду тестить быстродействие
51 Дикообразко
 
12.02.12
00:10
(49) работай давай, а то расслабился ))
52 H A D G E H O G s
 
12.02.12
00:10
Везет быдлокодерам - как напишут - так и работает и не парься.
53 Immortal
 
12.02.12
00:12
(52)да) хорошо быть вредненцем)
54 Дикообразко
 
12.02.12
00:12
(53)+1
55 Immortal
 
12.02.12
00:17
правда, я не очень понимаю, почему бы просто не выбрать
ВЫБРАТЬ
Т.Номер
ИЗ
Документ.ПоступлениеТоваровУслуг КАК Т
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
Т.Номер
ИЗ
Документ.Блабла КАК Т,
но это видно так надо - из ТоваровНаСкладах?
56 Дикообразко
 
12.02.12
00:18
(55) а ВЫБОР КОГДА везде тормоза дает?
я думал только в соединениях :(
57 H A D G E H O G s
 
12.02.12
00:18
(55) 2 раза запрос к регистру делать?
58 Дикообразко
 
12.02.12
00:18
*в условиях соединений
59 H A D G E H O G s
 
12.02.12
00:19
(56) Я вот тоже не уверен
60 Дикообразко
 
12.02.12
00:19
(57) так если в индексе, то может быть и быстрее получиться
61 mirosh
 
12.02.12
00:20
(60) ключевое слово "если". проще наверно сначала во временную таблицу, там проиндексировать
62 Immortal
 
12.02.12
00:22
(56)не тормоза, но ему(движку БД) это тоже надо посчитать
(57)два чтения  - надо смотреть, что быстрее будет
почему к таблицам документов нельзя напрямую обратится?
(61)это конечно хорошо..когда темп дб резиновая
63 Asmody
 
12.02.12
00:23
регистр по регистратору должен быть проиндексирован по-идее.
64 Asmody
 
12.02.12
00:24
я так и не понял, почему не подходит ССЫЛКА в ГДЕ
65 H A D G E H O G s
 
12.02.12
00:26
(64) Подходит. Мне подходит, но в других случаях - нет.
66 H A D G E H O G s
 
12.02.12
00:26
Потому что она обрежет движения регистра, у которых регистратор не Поступление и не Корректировка
67 H A D G E H O G s
 
12.02.12
00:27
Вы погодите, я сейчас
68 BOZKURT
 
12.02.12
00:28
(39) При всем уважении как к человеку, НО, как к модеру, некорректно.. Лучше сдай свой пост/должность..
69 Дядя Васька
 
12.02.12
00:29
А я и (9) не очень понял... Если использовать приведение типов результат запроса разве как-то изменится? Что ТоварыНаСкладах.Регистратор.Номер что через выразить - количество строк одинаково, а значит через две точки продет как раз по тем ссылкам что есть в результатах запроса ТоварыНаСкладах.Регистратор с выразить или без. Не?
70 Asmody
 
12.02.12
00:29
(66) чтобы не обрезало правильнее использовать левое соединение
71 Дикообразко
 
12.02.12
00:29
(68)правильно, модер не должен извиняться,
на .уй должен посылать
72 Immortal
 
12.02.12
00:30
(68)да я её и не просил
(69)количество соединений различно-)
73 Дикообразко
 
12.02.12
00:31
(69) без явного указания типа 1с сделает соединения ко всет таблицам типов регистратора
74 mirosh
 
12.02.12
00:31
(73) да, это так
75 Armando
 
12.02.12
00:32
(0) Во все не вчитывался. Что в итоге-то? В ИТСах пишут, что надо как (17).
Только если номера нужны, то вот так:

ВЫБОР
   КОГДА ТоварыНаСкладах.Регистратор ССЫЛКА Документ.ПоступлениеТоваров
       ТОГДА ВЫРАЗИТЬ(ТоварыНаСкладах.Регистратор КАК Документ.ПоступлениеТоваров).Номер
   КОГДА ТоварыНаСкладах.Регистратор ССЫЛКА Документ.КорректировкаЗаписейРегистров
       ТОГДА ВЫРАЗИТЬ(ТоварыНаСкладах.Регистратор КАК Документ.КорректировкаЗаписейРегистров).Номер
КОНЕЦ
76 Дядя Васька
 
12.02.12
00:34
(72) Так ить какие в ГДЕ наотбирает, к тем и соединиться, не?
77 H A D G E H O G s
 
12.02.12
00:34
(75) В Итоге - я счаст замеры делаю, запросы SQL смотрю.

Но я рад, что не читая ИТС (и как у вас на них время есть?) я пришел к тому же.
78 H A D G E H O G s
 
12.02.12
00:40
Вот запрос с Регистратор.Номер

exec sp_executesql N'SELECT TOP 10
CASE WHEN T1._RecorderTRef = 0x00000177 THEN T2._Number WHEN T1._RecorderTRef = 0x00000212 THEN T3._Number WHEN T1._RecorderTRef = 0x0000015C THEN T4._Number WHEN T1._RecorderTRef = 0x000001F5 THEN T5._Number WHEN T1._RecorderTRef = 0x00000186 THEN T6._Number WHEN T1._RecorderTRef = 0x00000187 THEN T7._Number WHEN T1._RecorderTRef = 0x00000105 THEN T8._Number WHEN T1._RecorderTRef = 0x00000190 THEN T9._Number WHEN T1._RecorderTRef = 0x0000010A THEN T10._Number WHEN T1._RecorderTRef = 0x000001D0 THEN T11._Number WHEN T1._RecorderTRef = 0x000001BF THEN T12._Number WHEN T1._RecorderTRef = 0x00000108 THEN T13._Number WHEN T1._RecorderTRef = 0x0000018B THEN T14._Number WHEN T1._RecorderTRef = 0x000001B7 THEN T15._Number WHEN T1._RecorderTRef = 0x0000018D THEN T16._Number WHEN T1._RecorderTRef = 0x00000154 THEN T17._Number WHEN T1._RecorderTRef = 0x00000109 THEN T18._Number WHEN T1._RecorderTRef = 0x00000193 THEN T19._Number WHEN T1._RecorderTRef = 0x000001C8 THEN T20._Number WHEN T1._RecorderTRef = 0x00006277 THEN T21._Number WHEN T1._RecorderTRef = 0x000001BD THEN T22._Number WHEN T1._RecorderTRef = 0x000001B6 THEN T23._Number WHEN T1._RecorderTRef = 0x00000175 THEN T24._Number WHEN T1._RecorderTRef = 0x0000014B THEN T25._Number WHEN T1._RecorderTRef = 0x00000156 THEN T26._Number WHEN T1._RecorderTRef = 0x0000015A THEN T27._Number WHEN T1._RecorderTRef = 0x000000E6 THEN T28._Number WHEN T1._RecorderTRef = 0x000001EE THEN T29._Number WHEN T1._RecorderTRef = 0x00000183 THEN T30._Number ELSE CAST(NULL AS NVARCHAR(11)) END,
T1._Period
FROM _AccumRg19347 T1 WITH(NOLOCK)
LEFT OUTER JOIN _Document375 T2 WITH(NOLOCK)
ON T1._RecorderTRef = P1 AND T1._RecorderRRef = T2._IDRRef
LEFT OUTER JOIN _Document530 T3 WITH(NOLOCK)
ON T1._RecorderTRef = @P2 AND T1._RecorderRRef = T3._IDRRef
LEFT OUTER JOIN _Document348 T4 WITH(NOLOCK)
ON T1._RecorderTRef = @P3 AND T1._RecorderRRef = T4._IDRRef
LEFT OUTER JOIN _Document501 T5 WITH(NOLOCK)
ON T1._RecorderTRef = @P4 AND T1._RecorderRRef = T5._IDRRef
LEFT OUTER JOIN _Document390 T6 WITH(NOLOCK)
ON T1._RecorderTRef = @P5 AND T1._RecorderRRef = T6._IDRRef
LEFT OUTER JOIN _Document391 T7 WITH(NOLOCK)
ON T1._RecorderTRef = @P6 AND T1._RecorderRRef = T7._IDRRef
LEFT OUTER JOIN _Document261 T8 WITH(NOLOCK)
ON T1._RecorderTRef = @P7 AND T1._RecorderRRef = T8._IDRRef
LEFT OUTER JOIN _Document400 T9 WITH(NOLOCK)
ON T1._RecorderTRef = @P8 AND T1._RecorderRRef = T9._IDRRef
LEFT OUTER JOIN _Document266 T10 WITH(NOLOCK)
ON T1._RecorderTRef = @P9 AND T1._RecorderRRef = T10._IDRRef
LEFT OUTER JOIN _Document464 T11 WITH(NOLOCK)
ON T1._RecorderTRef = P10 AND T1._RecorderRRef = T11._IDRRef
LEFT OUTER JOIN _Document447 T12 WITH(NOLOCK)
ON T1._RecorderTRef = P11 AND T1._RecorderRRef = T12._IDRRef
LEFT OUTER JOIN _Document264 T13 WITH(NOLOCK)
ON T1._RecorderTRef = P12 AND T1._RecorderRRef = T13._IDRRef
LEFT OUTER JOIN _Document395 T14 WITH(NOLOCK)
ON T1._RecorderTRef = P13 AND T1._RecorderRRef = T14._IDRRef
LEFT OUTER JOIN _Document439 T15 WITH(NOLOCK)
ON T1._RecorderTRef = P14 AND T1._RecorderRRef = T15._IDRRef
LEFT OUTER JOIN _Document397 T16 WITH(NOLOCK)
ON T1._RecorderTRef = P15 AND T1._RecorderRRef = T16._IDRRef
LEFT OUTER JOIN _Document340 T17 WITH(NOLOCK)
ON T1._RecorderTRef = P16 AND T1._RecorderRRef = T17._IDRRef
LEFT OUTER JOIN _Document265 T18 WITH(NOLOCK)
ON T1._RecorderTRef = P17 AND T1._RecorderRRef = T18._IDRRef
LEFT OUTER JOIN _Document403 T19 WITH(NOLOCK)
ON T1._RecorderTRef = P18 AND T1._RecorderRRef = T19._IDRRef
LEFT OUTER JOIN _Document456 T20 WITH(NOLOCK)
ON T1._RecorderTRef = P19 AND T1._RecorderRRef = T20._IDRRef
LEFT OUTER JOIN _Document25207 T21 WITH(NOLOCK)
ON T1._RecorderTRef = @P20 AND T1._RecorderRRef = T21._IDRRef
LEFT OUTER JOIN _Document445 T22 WITH(NOLOCK)
ON T1._RecorderTRef = @P21 AND T1._RecorderRRef = T22._IDRRef
LEFT OUTER JOIN _Document438 T23 WITH(NOLOCK)
ON T1._RecorderTRef = @P22 AND T1._RecorderRRef = T23._IDRRef
LEFT OUTER JOIN _Document373 T24 WITH(NOLOCK)
ON T1._RecorderTRef = @P23 AND T1._RecorderRRef = T24._IDRRef
LEFT OUTER JOIN _Document331 T25 WITH(NOLOCK)
ON T1._RecorderTRef = @P24 AND T1._RecorderRRef = T25._IDRRef
LEFT OUTER JOIN _Document342 T26 WITH(NOLOCK)
ON T1._RecorderTRef = @P25 AND T1._RecorderRRef = T26._IDRRef
LEFT OUTER JOIN _Document346 T27 WITH(NOLOCK)
ON T1._RecorderTRef = @P26 AND T1._RecorderRRef = T27._IDRRef
LEFT OUTER JOIN _Document230 T28 WITH(NOLOCK)
ON T1._RecorderTRef = @P27 AND T1._RecorderRRef = T28._IDRRef
LEFT OUTER JOIN _Document494 T29 WITH(NOLOCK)
ON T1._RecorderTRef = @P28 AND T1._RecorderRRef = T29._IDRRef
LEFT OUTER JOIN _Document387 T30 WITH(NOLOCK)
ON T1._RecorderTRef = @P29 AND T1._RecorderRRef = T30._IDRRef
WHERE (T1._RecordKind = @P30)',N'P1 varbinary(4),@P2 varbinary(4),@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),P15 varbinary(4),P16 varbinary(4),P17 varbinary(4),P18 varbinary(4),P19 varbinary(4),@P20 varbinary(4),@P21 varbinary(4),@P22 varbinary(4),@P23 varbinary(4),@P24 varbinary(4),@P25 varbinary(4),@P26 varbinary(4),@P27 varbinary(4),@P28 varbinary(4),@P29 varbinary(4),@P30 numeric(1)',0x00000177,0x00000212,0x0000015C,0x000001F5,0x00000186,0x00000187,0x00000105,0x00000190,0x0000010A,0x000001D0,0x000001BF,0x00000108,0x0000018B,0x000001B7,0x0000018D,0x00000154,0x00000109,0x00000193,0x000001C8,0x00006277,0x000001BD,0x000001B6,0x00000175,0x0000014B,0x00000156,0x0000015A,0x000000E6,0x000001EE,0x00000183,0
79 H A D G E H O G s
 
12.02.12
00:41
Как в (75)

exec sp_executesql N'SELECT TOP 10
CASE WHEN (T1._RecorderTRef = 0x000001B7) THEN T2._Number WHEN (T1._RecorderTRef = 0x00000154) THEN T3._Number END,
T1._Period
FROM _AccumRg19347 T1 WITH(NOLOCK)
LEFT OUTER JOIN _Document439 T2 WITH(NOLOCK)
ON T1._RecorderTRef = P1 AND T1._RecorderRRef = T2._IDRRef
LEFT OUTER JOIN _Document340 T3 WITH(NOLOCK)
ON T1._RecorderTRef = @P2 AND T1._RecorderRRef = T3._IDRRef
WHERE (T1._RecordKind = @P3)',N'P1 varbinary(4),@P2 varbinary(4),@P3 numeric(1)',0x000001B7,0x00000154,0
80 H A D G E H O G s
 
12.02.12
00:42
Как в (44)

exec sp_executesql N'SELECT TOP 10
CASE WHEN T1._RecorderTRef = 0x00000177 THEN T2._Number WHEN T1._RecorderTRef = 0x00000212 THEN T3._Number WHEN T1._RecorderTRef = 0x0000015C THEN T4._Number WHEN T1._RecorderTRef = 0x000001F5 THEN T5._Number WHEN T1._RecorderTRef = 0x00000186 THEN T6._Number WHEN T1._RecorderTRef = 0x00000187 THEN T7._Number WHEN T1._RecorderTRef = 0x00000105 THEN T8._Number WHEN T1._RecorderTRef = 0x00000190 THEN T9._Number WHEN T1._RecorderTRef = 0x0000010A THEN T10._Number WHEN T1._RecorderTRef = 0x000001D0 THEN T11._Number WHEN T1._RecorderTRef = 0x000001BF THEN T12._Number WHEN T1._RecorderTRef = 0x00000108 THEN T13._Number WHEN T1._RecorderTRef = 0x0000018B THEN T14._Number WHEN T1._RecorderTRef = 0x000001B7 THEN T15._Number WHEN T1._RecorderTRef = 0x0000018D THEN T16._Number WHEN T1._RecorderTRef = 0x00000154 THEN T17._Number WHEN T1._RecorderTRef = 0x00000109 THEN T18._Number WHEN T1._RecorderTRef = 0x00000193 THEN T19._Number WHEN T1._RecorderTRef = 0x000001C8 THEN T20._Number WHEN T1._RecorderTRef = 0x00006277 THEN T21._Number WHEN T1._RecorderTRef = 0x000001BD THEN T22._Number WHEN T1._RecorderTRef = 0x000001B6 THEN T23._Number WHEN T1._RecorderTRef = 0x00000175 THEN T24._Number WHEN T1._RecorderTRef = 0x0000014B THEN T25._Number WHEN T1._RecorderTRef = 0x00000156 THEN T26._Number WHEN T1._RecorderTRef = 0x0000015A THEN T27._Number WHEN T1._RecorderTRef = 0x000000E6 THEN T28._Number WHEN T1._RecorderTRef = 0x000001EE THEN T29._Number WHEN T1._RecorderTRef = 0x00000183 THEN T30._Number ELSE CAST(NULL AS NVARCHAR(11)) END,
T1._Period
FROM _AccumRg19347 T1 WITH(NOLOCK)
LEFT OUTER JOIN _Document375 T2 WITH(NOLOCK)
ON T1._RecorderTRef = P1 AND T1._RecorderRRef = T2._IDRRef
LEFT OUTER JOIN _Document530 T3 WITH(NOLOCK)
ON T1._RecorderTRef = @P2 AND T1._RecorderRRef = T3._IDRRef
LEFT OUTER JOIN _Document348 T4 WITH(NOLOCK)
ON T1._RecorderTRef = @P3 AND T1._RecorderRRef = T4._IDRRef
LEFT OUTER JOIN _Document501 T5 WITH(NOLOCK)
ON T1._RecorderTRef = @P4 AND T1._RecorderRRef = T5._IDRRef
LEFT OUTER JOIN _Document390 T6 WITH(NOLOCK)
ON T1._RecorderTRef = @P5 AND T1._RecorderRRef = T6._IDRRef
LEFT OUTER JOIN _Document391 T7 WITH(NOLOCK)
ON T1._RecorderTRef = @P6 AND T1._RecorderRRef = T7._IDRRef
LEFT OUTER JOIN _Document261 T8 WITH(NOLOCK)
ON T1._RecorderTRef = @P7 AND T1._RecorderRRef = T8._IDRRef
LEFT OUTER JOIN _Document400 T9 WITH(NOLOCK)
ON T1._RecorderTRef = @P8 AND T1._RecorderRRef = T9._IDRRef
LEFT OUTER JOIN _Document266 T10 WITH(NOLOCK)
ON T1._RecorderTRef = @P9 AND T1._RecorderRRef = T10._IDRRef
LEFT OUTER JOIN _Document464 T11 WITH(NOLOCK)
ON T1._RecorderTRef = P10 AND T1._RecorderRRef = T11._IDRRef
LEFT OUTER JOIN _Document447 T12 WITH(NOLOCK)
ON T1._RecorderTRef = P11 AND T1._RecorderRRef = T12._IDRRef
LEFT OUTER JOIN _Document264 T13 WITH(NOLOCK)
ON T1._RecorderTRef = P12 AND T1._RecorderRRef = T13._IDRRef
LEFT OUTER JOIN _Document395 T14 WITH(NOLOCK)
ON T1._RecorderTRef = P13 AND T1._RecorderRRef = T14._IDRRef
LEFT OUTER JOIN _Document439 T15 WITH(NOLOCK)
ON T1._RecorderTRef = P14 AND T1._RecorderRRef = T15._IDRRef
LEFT OUTER JOIN _Document397 T16 WITH(NOLOCK)
ON T1._RecorderTRef = P15 AND T1._RecorderRRef = T16._IDRRef
LEFT OUTER JOIN _Document340 T17 WITH(NOLOCK)
ON T1._RecorderTRef = P16 AND T1._RecorderRRef = T17._IDRRef
LEFT OUTER JOIN _Document265 T18 WITH(NOLOCK)
ON T1._RecorderTRef = P17 AND T1._RecorderRRef = T18._IDRRef
LEFT OUTER JOIN _Document403 T19 WITH(NOLOCK)
ON T1._RecorderTRef = P18 AND T1._RecorderRRef = T19._IDRRef
LEFT OUTER JOIN _Document456 T20 WITH(NOLOCK)
ON T1._RecorderTRef = P19 AND T1._RecorderRRef = T20._IDRRef
LEFT OUTER JOIN _Document25207 T21 WITH(NOLOCK)
ON T1._RecorderTRef = @P20 AND T1._RecorderRRef = T21._IDRRef
LEFT OUTER JOIN _Document445 T22 WITH(NOLOCK)
ON T1._RecorderTRef = @P21 AND T1._RecorderRRef = T22._IDRRef
LEFT OUTER JOIN _Document438 T23 WITH(NOLOCK)
ON T1._RecorderTRef = @P22 AND T1._RecorderRRef = T23._IDRRef
LEFT OUTER JOIN _Document373 T24 WITH(NOLOCK)
ON T1._RecorderTRef = @P23 AND T1._RecorderRRef = T24._IDRRef
LEFT OUTER JOIN _Document331 T25 WITH(NOLOCK)
ON T1._RecorderTRef = @P24 AND T1._RecorderRRef = T25._IDRRef
LEFT OUTER JOIN _Document342 T26 WITH(NOLOCK)
ON T1._RecorderTRef = @P25 AND T1._RecorderRRef = T26._IDRRef
LEFT OUTER JOIN _Document346 T27 WITH(NOLOCK)
ON T1._RecorderTRef = @P26 AND T1._RecorderRRef = T27._IDRRef
LEFT OUTER JOIN _Document230 T28 WITH(NOLOCK)
ON T1._RecorderTRef = @P27 AND T1._RecorderRRef = T28._IDRRef
LEFT OUTER JOIN _Document494 T29 WITH(NOLOCK)
ON T1._RecorderTRef = @P28 AND T1._RecorderRRef = T29._IDRRef
LEFT OUTER JOIN _Document387 T30 WITH(NOLOCK)
ON T1._RecorderTRef = @P29 AND T1._RecorderRRef = T30._IDRRef
WHERE (T1._RecordKind = @P30) AND ((T1._RecorderTRef = P14) OR (T1._RecorderTRef = P16))', N'P1 varbinary(4),@P2 varbinary(4),@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),P15 varbinary(4),P16 varbinary(4),P17 varbinary(4),P18 varbinary(4),P19 varbinary(4),@P20 varbinary(4),@P21 varbinary(4),@P22 varbinary(4),@P23 varbinary(4),@P24 varbinary(4),@P25 varbinary(4),@P26 varbinary(4),@P27 varbinary(4),@P28 varbinary(4),@P29 varbinary(4),@P30 numeric(1,0)', 0x00000177, 0x00000212, 0x0000015C, 0x000001F5, 0x00000186, 0x00000187, 0x00000105, 0x00000190, 0x0000010A, 0x000001D0, 0x000001BF, 0x00000108, 0x0000018B, 0x000001B7, 0x0000018D, 0x00000154, 0x00000109, 0x00000193, 0x000001C8, 0x00006277, 0x000001BD, 0x000001B6, 0x00000175, 0x0000014B, 0x00000156, 0x0000015A, 0x000000E6, 0x000001EE, 0x00000183, 0
81 Immortal
 
12.02.12
00:42
(76)так я у тебя в посте про ГДЕ ничего не увидел
82 H A D G E H O G s
 
12.02.12
00:43
По методу Дикообраза

exec sp_executesql N'SELECT TOP 10
ISNULL(CAST(T2._Number AS NCHAR(11)),T3._Number),
T1._Period
FROM _AccumRg19347 T1 WITH(NOLOCK)
LEFT OUTER JOIN _Document439 T2 WITH(NOLOCK)
ON T1._RecorderTRef = P1 AND T1._RecorderRRef = T2._IDRRef
LEFT OUTER JOIN _Document340 T3 WITH(NOLOCK)
ON T1._RecorderTRef = @P2 AND T1._RecorderRRef = T3._IDRRef
WHERE (T1._RecordKind = @P3)',N'P1 varbinary(4),@P2 varbinary(4),@P3 numeric(1)',0x000001B7,0x00000154,0
83 H A D G E H O G s
 
12.02.12
00:44
Счаст ИТС с Дикообразом в скорости мериться будут.
84 H A D G E H O G s
 
12.02.12
00:46
Счаст мы им Первые 10 отрежем и посмотрим, как они на 390 тыс. строк запоют.
85 BOZKURT
 
12.02.12
00:46
(83) Сам с собой общаешься?!...
86 Дядя Васька
 
12.02.12
00:46
(82) А по методу Асмодея?
87 Дикообразко
 
12.02.12
00:46
(85) умным рассказывает, мы затаив дыхание слушаем
88 Дикообразко
 
12.02.12
00:47
(86) ты думаешь у (80) есть шансы?
89 H A D G E H O G s
 
12.02.12
00:48
(86) см (80)
90 Чайник Рассела
 
12.02.12
00:48
и де здесь нормальные люди?
91 H A D G E H O G s
 
12.02.12
00:49
Потерпите, сервак перезагружается.
92 Дядя Васька
 
12.02.12
00:49
(88),(89) Свернуло, проглядел. А в оригинале это как выглядело?
93 Immortal
 
12.02.12
00:49
к (75): на итс-ах пишут, в первую очередь, что регистр должен быть самодостаточным-)
94 Дядя Васька
 
12.02.12
00:50
+(92) А то чет как-то много всего. Не только соединений, но и WHERE тоже какой-то длиннючий подозрительно.
95 H A D G E H O G s
 
12.02.12
00:51
(93) Скажи это базовой конфе.
96 H A D G E H O G s
 
12.02.12
00:51
Метод ИТС дал
Reads 6142
Duration 678
97 Дикообразко
 
12.02.12
00:52
(93) см (66)
98 Дикообразко
 
12.02.12
00:52
(97) -> (94)
99 Armando
 
12.02.12
00:52
100 Armando
 
12.02.12
00:55
101 Дядя Васька
 
12.02.12
00:56
(98) Ну это уже смена условия на ходу... Не считается. В сабже четко указано что нужны номера только определенных видов доков из возможных регистраторов. Никаких других случаев.
102 H A D G E H O G s
 
12.02.12
00:57
Даже как то странно

Метод Дикообразко дал
Reads 6142
Duration 672
103 H A D G E H O G s
 
12.02.12
00:57
Ничья?
104 H A D G E H O G s
 
12.02.12
00:58
Объединить делать?
105 Дикообразко
 
12.02.12
00:58
(102)что есть Duration ?
а если больше условий?
106 Immortal
 
12.02.12
00:59
(99) для особо одаренных:
При необходимости жертвуйте компактностью хранения данных ради производительности. Если в запросе вам понадобилось значение, полученное через ссылку, то, возможно, это значение можно хранить непосредственно в данном объекте. Например, если при работе с регистром вам требуется информация о дате регистратора, вы можете завести в регистре соответствующий реквизит и назначать ему значение при проведении документов. Это приведет к дублированию информации и некоторому (незначительному) увеличению ее объема, но может существенно повысить производительность и стабильность работы запроса.
107 Immortal
 
12.02.12
01:00
(104)сделай, если можешь
108 H A D G E H O G s
 
12.02.12
01:00
Хотя, нуего на, Регистратор.Номер даже без перезагрузки сервака выдал
Reads 18000
Duration 8915

Уже успех, что я от него отказался.
109 H A D G E H O G s
 
12.02.12
01:01
(106) Конфигурацию типа 1С:...Базовая я не имею права менять. Только внешки. Так?
110 H A D G E H O G s
 
12.02.12
01:01
(105) Время выполнения в миллисекундах.
111 H A D G E H O G s
 
12.02.12
01:02
Все, в топку работу, пойду в Скайрим я погоняю.
112 Immortal
 
12.02.12
01:02
(109)ты об этом написал посту в семидесятом)
извини, у меня телепатия не работает-)
113 BOZKURT
 
12.02.12
01:02
(106) Всегда задумываюсь над этим и делаю, если надо. Хоть и некошерно.
(108) Ты мля со стенкой говоришь чтоле?
114 Дикообразко
 
12.02.12
01:04
(111) стоять...
объединить будет?
115 H A D G E H O G s
 
12.02.12
01:04
Нет. Лениво.
116 H A D G E H O G s
 
12.02.12
01:04
Почти уверен, что не быстрее.
117 Дикообразко
 
12.02.12
01:05
(116)
а код скулльный хотя бы можешь вытащить?
118 H A D G E H O G s
 
12.02.12
01:05
119 H A D G E H O G s
 
12.02.12
01:05
(117)
см (79) (82)
120 Immortal
 
12.02.12
01:06
(118)мне почему то в скайриме крик "безжалостная сила" всё время "Быстронах!" напоминает
121 H A D G E H O G s
 
12.02.12
01:06
(120) Играешь?
122 Дикообразко
 
12.02.12
01:07
(119) там нет через объединить...
ну и фиг с тобой :)
123 Immortal
 
12.02.12
01:07
(121)да, поржать да подубасить кого-нибудь
124 BOZKURT
 
12.02.12
01:08
(118) Мда уж.. Я, рисовал тебя, Хуялкой на снегу...
:)
Щутка (с)
125 Asmody
 
12.02.12
01:15
хрена себе! получается, что ГДЕ ССЫЛКА все равно разворачивается в кучу джойнов. Но нахрена?!
126 Asmody
 
12.02.12
01:17
а ты ничего не перепутал? как-то (78) и (80) подозрительно похожи
127 H A D G E H O G s
 
12.02.12
01:18
(126) Нет.
Ну и логично все.

Сначала оно выбирает номер, по всем таблицам поползав, а потом фильтр по ГДЕ накладывает.
128 Asmody
 
12.02.12
01:19
хотя, я кажется знаю, почему джойнит. у тебя в выбрать есть Регистратор.Номер
129 H A D G E H O G s
 
12.02.12
01:19
(126) Вот если попробовать резльтат во Временную полозить и потом из нее номер отобрать - тогда может сработать.
130 Asmody
 
12.02.12
01:20
можно сделать вложенный с Регистратор, а потом оттуда доставать Номер
131 Asmody
 
12.02.12
01:21
ну или явно делать левое, хотя через точку оно само за тебя сделает
132 Дикообразко
 
12.02.12
01:24
(130) нет смысла,
проще как ИТС рекомендует сделать
133 asady
 
12.02.12
01:44
(0) всё не читал...
выдрать номер из представления регистратора в переборе результата запроса предлагали?
Закон Брукера: Даже маленькая практика стоит большой теории.