Доброе время суток!
Помогите пож... Ступор уже начался... Есть запрос:
select
БигС.Док [Док $Документ],
БигС.ДокВид Док_вид,
БигС.Тал [Талон $Справочник.ГарантийныеТалоны],
БигС.Скл [Склад $Справочник.Склады],
БигС.ПрихД [ПрихД $число],
БигС.РасхД [РасхД $число],
РегОст.ресКоличествоПриход [ПрихР $число],
РегОст.ресКоличествоРасход [РасхР $число]
from
(
select
ДокС.IDDoc Док,
$ВидДокумента.ВозвратПокупателя ДокВид,
СпрГТ.ID Тал,
$Док.загСклад Скл,
$ДокС.табКоличествоЕд ПрихД,
0 РасхД
from $ДокументСтроки.ВозвратПокупателя ДокС
inner join $Документ.ВозвратПокупателя Док on Док.IDDoc = ДокС.IDDoc
inner join _1sjourn j (nolock) on j.IDDoc = ДокС.IDDoc and j.Date_Time_Iddoc between :ДН and :ДК~ and j.Closed & 1 = 1
inner join $Справочник.Товары СпрТ (nolock) on СпрТ.ID = $ДокС.табТовар and СпрТ.IsMark = 0 and $СпрТ.спрПризнакГар = 1
inner join $Справочник.Производитель СпрПр (nolock) on СпрПр.ID = $СпрТ.спрПроизводитель and СпрПр.IsMark = 0
inner join $Справочник.ГарантийныеТалоны СпрГТ (nolock) on СпрГТ.ID = $СпрПр.спрГарантийныйТалон and СпрГТ.IsMark = 0
union all
select
ДокС.IDDoc,
$ВидДокумента.ВозвратПоставщику,
СпрГТ.ID,
$Док.загСклад,
0,
$ДокС.табКоличествоЕд
from $ДокументСтроки.ВозвратПоставщику ДокС
inner join $Документ.ВозвратПоставщику Док on Док.IDDoc = ДокС.IDDoc
inner join _1sjourn j (nolock) on j.IDDoc = ДокС.IDDoc and j.Date_Time_Iddoc between :ДН and :ДК~ and j.Closed & 1 = 1
inner join $Справочник.Товары СпрТ (nolock) on СпрТ.ID = $ДокС.табТовар and СпрТ.IsMark = 0 and $СпрТ.спрПризнакГар = 1
inner join $Справочник.Производитель СпрПр (nolock) on СпрПр.ID = $СпрТ.спрПроизводитель and СпрПр.IsMark = 0
inner join $Справочник.ГарантийныеТалоны СпрГТ (nolock) on СпрГТ.ID = $СпрПр.спрГарантийныйТалон and СпрГТ.IsMark = 0
) БигС
State 42S22, native 207, message [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name 'sp845'.
В DDS-нике написано, что это поле табТовар табличной части. в обоих доках такое есть.
Поставило в тупик то, что если из подзапроса убрать любой из юнионов, то РАБОТАЕТ
При этом если построить второй юнион по другому документу (реквизиты почти те же самые), то ругается на другую таблицу. Если выбрать документ с другой структурой, например такая вторая часть юниона:
union all
select
ДокС.IDDoc,
$ВидДокумента.ИнвентаризацияТалонов,
$ДокС.табТалон,
$Док.загСклад,
case when $ДокС.табФактическийОстаток - $ДокС.табУчетныйОстатокРег > 0 then $ДокС.табФактическийОстаток - $ДокС.табУчетныйОстатокРег else 0 end,
case when $ДокС.табФактическийОстаток - $ДокС.табУчетныйОстатокРег > 0 then 0 else $ДокС.табУчетныйОстатокРег - $ДокС.табФактическийОстаток end
from $ДокументСтроки.ИнвентаризацияТалонов ДокС (nolock)
inner join $Документ.ИнвентаризацияТалонов Док (nolock) on Док.IDDoc = ДокС.IDDoc
inner join _1sjourn j (nolock) on j.IDDoc = ДокС.IDDoc and j.Date_Time_Iddoc between :ДН and :ДК~ and j.Closed & 1 = 1
where $ДокС.табФактическийОстаток <> $ДокС.табУчетныйОстатокРег
, то говорит Meta name parser error: поле таблицы не найдено "$ДокС.табКоличествоЕд". Это поле описано в первой части юниона и оно у дока есть
Опять же поодиночке все работет... Если это знаки препинания, то поодиночке б ругалось...

Что за ___? Неужели наложение таблиц какое. уж даж NOLOCK'и у строк документа убирал, не помогло (((
Люди, мож кто встречался с энтим.... где копать то?