|
Работа запроса в СКД и в консоли запросов: разница! | ☑ | ||
---|---|---|---|---|
0
Grusswelle
25.11.11
✎
12:04
|
Сабж! От чего может зависеть?! Текст запроса, параметры - всё Ctrl+C - Ctrl+V...
ВЫБРАТЬ ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.Контрагент, ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.алкПунктРазгрузки КАК ПунктРазгрузки, ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом КАК Накладная, ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.СуммаДокумента КАК СуммаДокумента, ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности КАК Отсрочка, ВЫБОР КОГДА ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.ДатаОтгрузки <> &ПустаяДата ТОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.ДатаОтгрузки, ДЕНЬ, ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности), &Период, ДЕНЬ) ИНАЧЕ РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.Дата, ДЕНЬ, ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности), &Период, ДЕНЬ) КОНЕЦ КАК ДнейПросрочки, ВЫБОР КОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ВЫБОР КОГДА ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.ДатаОтгрузки <> &ПустаяДата ТОГДА ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.ДатаОтгрузки ИНАЧЕ ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.Дата КОНЕЦ, ДЕНЬ, ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности), &Период, ДЕНЬ) > 0 ТОГДА ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.СуммаВзаиморасчетовОстаток ИНАЧЕ 0 КОНЕЦ КАК СуммаПросроченнойЗадолженности, СоответствиеОрганизаций.Организация1, ВЫБОР КОГДА ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.Организация = СоответствиеОрганизаций.Организация1 ТОГДА ВЫБОР КОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ВЫБОР КОГДА ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.ДатаОтгрузки <> &ПустаяДата ТОГДА ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.ДатаОтгрузки ИНАЧЕ ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.Дата КОНЕЦ, ДЕНЬ, ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности), &Период, ДЕНЬ) > 0 ТОГДА ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.СуммаВзаиморасчетовОстаток ИНАЧЕ 0 КОНЕЦ ИНАЧЕ 0 КОНЕЦ КАК Д1, ВЫБОР КОГДА ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.Организация = СоответствиеОрганизаций.Организация1 ТОГДА 0 ИНАЧЕ ВЫБОР КОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ВЫБОР КОГДА ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.ДатаОтгрузки <> &ПустаяДата ТОГДА ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.ДатаОтгрузки ИНАЧЕ ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.Дата КОНЕЦ, ДЕНЬ, ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности), &Период, ДЕНЬ) > 0 ТОГДА ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.СуммаВзаиморасчетовОстаток ИНАЧЕ 0 КОНЕЦ КОНЕЦ КАК Д2, ДОБАВИТЬКДАТЕ(ВЫБОР КОГДА ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.ДатаОтгрузки <> &ПустаяДата ТОГДА ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.ДатаОтгрузки ИНАЧЕ ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.Дата КОНЕЦ, ДЕНЬ, ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности) КАК ДатаОплаты, ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.ДоговорКонтрагента.Менеджер, "Не указан представитель") КАК Представитель, ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.Номер КАК НомерНакладной, ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.ДатаОтгрузки КАК ДатаНакладной, 0 КАК Д0, ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.СуммаВзаиморасчетовОстаток КАК Долг, ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДоговорКонтрагента.ДопустимаяСуммаЗадолженности КАК ДопустимаяСуммаЗадолженности, ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.ДоговорКонтрагента.Менеджер.Родитель.ПроцентШтрафа КАК ПроцентШтрафаРуководителя, ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.ДоговорКонтрагента.Менеджер.ПроцентШтрафа КАК ПроцентШтрафаМенеджера, ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.СуммаДокумента2 КАК СуммаДокумента2 ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки(, ДокументРасчетовСКонтрагентом ССЫЛКА Документ.РеализацияТоваровУслуг) КАК ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ ПользователиРазрешенныеМенеджеры.Менеджер КАК РазрешенныйМенеджер ИЗ Справочник.Пользователи.РазрешенныеМенеджеры КАК ПользователиРазрешенныеМенеджеры ГДЕ ПользователиРазрешенныеМенеджеры.Ссылка = &Пользователь) КАК ЗапросРазрешенныхМенеджеров ПО (ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДоговорКонтрагента.Менеджер В (ЗапросРазрешенныхМенеджеров.РазрешенныйМенеджер) ИЛИ ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДоговорКонтрагента.Менеджер.Родитель В (ЗапросРазрешенныхМенеджеров.РазрешенныйМенеджер) ИЛИ ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДоговорКонтрагента.Менеджер.Родитель.Родитель В (ЗапросРазрешенныхМенеджеров.РазрешенныйМенеджер) ИЛИ ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДоговорКонтрагента.Менеджер.Родитель.Родитель.Родитель В (ЗапросРазрешенныхМенеджеров.РазрешенныйМенеджер) ИЛИ ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДоговорКонтрагента.Менеджер.Родитель.Родитель.Родитель.Родитель В (ЗапросРазрешенныхМенеджеров.РазрешенныйМенеджер)), РегистрСведений.СоответствиеОрганизаций КАК СоответствиеОрганизаций ГДЕ (ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.ДатаОтгрузки <> &ПустаяДата ИЛИ ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.Дата <> &ПустаяДата) |
|||
1
Grusswelle
25.11.11
✎
12:06
|
ЗЫ: пользователь один и тот же, никаких RLS и т. д....
|
|||
2
PVV65
25.11.11
✎
12:10
|
В консоли запросов ты получаешь результат запроса, а в СКД результат запроса является исходной таблицей для компоновки, которая может еще очень многое сделать. Поэтому без схемы сравнивать два результата бессмысленно.
|
|||
3
Grusswelle
25.11.11
✎
12:18
|
(2) Не не не, убрал все группировки, вычисляемые поля и т. д., сравниваю два "плоских" результата.
|
|||
4
Dzenn
гуру
25.11.11
✎
12:20
|
Судя по коду, в частности по нагромождению неявных соединений, ты явно делаешь задачу через ..опу. А когда задача делается через ..опу, совет может быть только один - учиться делать не через ..опу. Например, ввести дополнительные регистры контроля прав и/или регистр, аккумулирующий данные под этот специфический отчёт. Стремись к тому, чтобы запрос был простым, как выстрел из дробовика, а не сложным, как путь нейтрона в синхрофазотроне. Думай как облегчить решение задачи, разложить её на более мелкие.
|
|||
5
Grusswelle
25.11.11
✎
12:24
|
(4) Моя задача как раз оптимизировать. Про простоту запроса и задач - согласен.
|
|||
6
Defender aka LINN
25.11.11
✎
12:27
|
(3) Это еще не говорит о том, что в консоли и в СКД выполняется один и тот же запрос.
|
|||
7
Grusswelle
25.11.11
✎
12:30
|
(6) Да. Буду делать так:
1. ТИИ базы; 2. Если не поможет - трейсить запросы SQL Server'а. |
|||
8
Defender aka LINN
25.11.11
✎
12:34
|
(7) ППЦ. А просто ПОСМОТРЕТЬ текст запроса результирующий - не, не наш метод?
|
|||
9
Inform
25.11.11
✎
12:36
|
(0) Сравни запросы, с помощью http://its.1c.ru/db/metod81#content:3058:1 можно посмотреть запрос который геренит СКД.
|
|||
10
Grusswelle
25.11.11
✎
12:36
|
(9) О! Спасибо!
|
|||
11
Axel2009
25.11.11
✎
12:37
|
d xtv в чем разница то?
|
|||
12
rs_trade
25.11.11
✎
12:38
|
(7) на хрена все это делать? ты еще к поясу сходи поклонись.
|
|||
13
Grusswelle
25.11.11
✎
12:40
|
(12)Что предложить можешь?
|
|||
14
Defender aka LINN
25.11.11
✎
12:42
|
Хотя я и так могу причину назвать. У тебя тоже эта мерзкая галка стоит.
|
|||
15
Grusswelle
25.11.11
✎
12:46
|
(14) ??
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |