Имя: Пароль:
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с (под рукой профайлера скульного нет), посмотреть запрос переправляемый на сервер скл?
Независимо от того, куда вы едете — это в гору и против ветра!