Имя: Пароль:
1C
1С v8
Чудеса с запросом
🠗 (Волшебник 28.08.2015 09:59)
0 NWsFF
 
28.08.15
09:58
Имеем запрос, не важно зачем он, составлен для примера
ВЫБРАТЬ РАЗЛИЧНЫЕ
    ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.Контрагент,
    ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДоговорКонтрагента,
    ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом,
    ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.СуммаВзаиморасчетовОстаток
ПОМЕСТИТЬ ВТ_Кредиты
ИЗ
    РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки КАК ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки
ГДЕ
    ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.СуммаВзаиморасчетовОстаток < 0
    И ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДоговорКонтрагента = &ДоговорКонтрагента
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_Кредиты.Контрагент,
    ВТ_Кредиты.ДоговорКонтрагента
ИЗ
    ВТ_Кредиты КАК ВТ_Кредиты

Не выдает никаких данных, но если в финальную выборку добавить все поля из временной таблицы то данные появляются. Фактически первый запрос выбирает данные, но из временной таблицы достать их может только если в выборке есть все составное поле ДокументРасчетов, иначе данные не выбираются, релиз 8.2.19.83 только его глюк?
1 zak555
 
28.08.15
10:01
не верю
2 AllJoke
 
28.08.15
10:23
Проверил - всё работает. Смотрите условия.
3 NWsFF
 
28.08.15
10:50
(1) Я сам не верю, чистый бред, но факт остается фактом.
(2) Зачем мне смотреть условия, если на финальную выборку влияет наличие поля ДокументРасчетов, оно есть, данные есть, нет и данных нет
4 NWsFF
 
28.08.15
12:22
Вот запрос, теоритически должен вывести наличие одновременно дебиторской и кредиторской задолженности по договорам, запрос не отрабатывает, теряя данные

ВЫБРАТЬ РАЗЛИЧНЫЕ
    ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.Контрагент,
    ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДоговорКонтрагента,
    ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом,
    ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.СуммаВзаиморасчетовОстаток
ПОМЕСТИТЬ ВТ_Кредиты
ИЗ
    РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки КАК ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки
ГДЕ
    ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.СуммаВзаиморасчетовОстаток < 0
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
    ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.Контрагент,
    ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДоговорКонтрагента,
    ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом,
    ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.СуммаВзаиморасчетовОстаток
ПОМЕСТИТЬ ВТ_Дебиты
ИЗ
    РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки КАК ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки
ГДЕ
    ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.СуммаВзаиморасчетовОстаток > 0
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВложенныйЗапрос.Контрагент,
    ВложенныйЗапрос.ДоговорКонтрагента,
    ВложенныйЗапрос1.Контрагент КАК Контрагент1,
    ВложенныйЗапрос1.ДоговорКонтрагента КАК ДоговорКонтрагента1
ИЗ
    (ВЫБРАТЬ
        ВТ_Кредиты.Контрагент КАК Контрагент,
        ВТ_Кредиты.ДоговорКонтрагента КАК ДоговорКонтрагента
    ИЗ
        ВТ_Кредиты КАК ВТ_Кредиты
    
    СГРУППИРОВАТЬ ПО
        ВТ_Кредиты.Контрагент,
        ВТ_Кредиты.ДоговорКонтрагента) КАК ВложенныйЗапрос
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            ВТ_Дебиты.Контрагент КАК Контрагент,
            ВТ_Дебиты.ДоговорКонтрагента КАК ДоговорКонтрагента
        ИЗ
            ВТ_Дебиты КАК ВТ_Дебиты
        
        СГРУППИРОВАТЬ ПО
            ВТ_Дебиты.Контрагент,
            ВТ_Дебиты.ДоговорКонтрагента) КАК ВложенныйЗапрос1
        ПО ВложенныйЗапрос.Контрагент = ВложенныйЗапрос1.Контрагент
            И ВложенныйЗапрос.ДоговорКонтрагента = ВложенныйЗапрос1.ДоговорКонтрагента
5 NWsFF
 
28.08.15
12:30
Можно каким либо средствами 1с (под рукой профайлера скульного нет), посмотреть запрос переправляемый на сервер скл?
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан