Почему-то не могу подружить между собой объединение(UNION ALL) и $ПоследнееЗначение.
Пораздельности все отрабатывает нормально, а вместе никак

$ПоследнееЗначение вычеслил методом исключения.
ТекстЗапроса="
|SELECT
| ЖурЧек.IDDOCDEF as Док_вид,
| ЖурЧек.IDDOC as [Док $Документ],
| $Чек.Касса [Касса $Справочник.Кассы],
| left(ЖурЧек.DATE_TIME_IDDOC,9) ДатаДок,
| $ДокСтроки.Номенклатура AS [Товар $Справочник.Номенклатура],
| $СпрНом1.Производитель AS [Поставщик $Справочник.Контрагенты],
| $Чек.Продавец AS [Прод $Справочник.ФизЛица],
| ТабЦенЧ.ЦенаЧ*$ДокСтроки.Количество [СебСто $Число],
| $ДокСтроки.Количество [Колич $Число],
| $ДокСтроки.Всего [Сумма $Число]
|FROM
| _1sjourn ЖурЧек (nolock)
| left join $ДокументСтроки.ЧекККМ ДокСтроки (nolock) on ДокСтроки.iddoc=ЖурЧек.iddoc
| left join $Справочник.Номенклатура СпрНом1 (NOLOCK) ON
| СпрНом1.id=$ДокСтроки.Номенклатура
| left join $Документ.ЧекККМ Чек (nolock) on Чек.iddoc=ЖурЧек.iddoc
| left join (SELECT
| СпрНомЧ.ID ТоварЧ,
| $ПоследнееЗначение.Цены.Цена(ЦеныЧ.ID, :КонДата) ЦенаЧ
| FROM
| $Справочник.ТипыЦен СпрТипыЧ,$Справочник.Номенклатура СпрНомЧ
| left join $Справочник.Цены ЦеныЧ on (ЦеныЧ.PARENTEXT=СпрНомЧ.ID
| and $ЦеныЧ.ТипЦен=' 1Y ' or $ЦеныЧ.ТипЦен is NULL)
| WHERE СпрТипыЧ.ID=' 1Y '
| ) ТабЦенЧ on ТабЦенЧ.ТоварЧ=$ДокСтроки.Номенклатура
|WHERE
| (ЖурЧек.closed & 1 = 1) and (ЖурЧек.IDDOCDEF=$ВидДокумента.ЧекККМ)
| and (ЖурЧек.ISMARK = 0)
| and (ЖурЧек.DATE_TIME_IDDOC between :НачДата and :КонДата~)
| and ($ДокСтроки.Номенклатура IS NOT NULL)
|
|UNION ALL
|
|SELECT
| ЖурВозв.iddocdef Док_вид,
| ЖурВозв.iddoc [Док $Документ],
| ТабЧек.Касса [Касса $Справочник.Кассы],
| left(ЖурВозв.DATE_TIME_IDDOC,9) ДатаДок,
| $ДокСтрокиВ.Номенклатура AS [Товар $Справочник.Номенклатура],
| $СпрНом2.Производитель AS [Поставщик $Справочник.Контрагенты],
| ТабЧек.Продавец as [Прод $Справочник.ФизЛица],
| ТабЦенВ.ЦенаВ*(-$ДокСтрокиВ.Количество) [СебСто $Число],
| -($ДокСтрокиВ.Количество) [Колич $Число],
| -($ДокСтрокиВ.Всего) [Сумма $Число]
|FROM
| _1sjourn ЖурВозв (nolock),
| inner join $Документ.ВозвратОтПокупателя Возв (nolock) on Возв.iddoc=ЖурВозв.iddoc
| left join $ДокументСтроки.ВозвратОтПокупателя ДокСтрокиВ (nolock) on
| ДокСтрокиВ.iddoc=ЖурВозв.iddoc
| inner join (SELECT
| j_p.iddocdef,
| j_p.iddoc,
| $Чек.Продавец Продавец,
| $Чек.Касса Касса,
| cr.childid
| FROM _1sjourn j_p (nolock)
| inner join $Документ.ЧекККМ Чек (nolock) on Чек.iddoc = j_p.iddoc
| inner join _1scrdoc cr (nolock) on mdid=0
| and cr.ParentVal = 'O1' + $ВидДокумента36.ЧекККМ + j_p.iddoc
| inner join _1sjourn j_c (nolock) on j_c.iddoc = cr.childid
| WHERE (j_c.IDDOCDEF=$ВидДокумента.ВозвратОтПокупателя) and
| (j_c.Closed & 1 = 1) "+УслКассаЧ+УслДокЧ+УслПродЧ+"
| )ТабЧек on ТабЧек.CHILDID=Возв.iddoc
| left join $Справочник.Номенклатура СпрНом2 (NOLOCK) ON
| СпрНом2.id=$ДокСтрокиВ.Номенклатура
| left join (SELECT
| СпрНомВ.ID ТоварВ,
| $ПоследнееЗначение.Цены.Цена(ЦеныВ.ID, :КонДата) ЦенаВ
| FROM
| $Справочник.ТипыЦен СпрТипыВ,$Справочник.Номенклатура СпрНомВ
| left join $Справочник.Цены ЦеныВ on (ЦеныВ.PARENTEXT=СпрНомВ.ID
| and $ЦеныВ.ТипЦен=' 1Y ' or $ЦеныВ.ТипЦен is NULL)
| WHERE СпрТипыВ.ID=' 1Y '
| )ТабЦенВ on ТабЦенВ.ТоварВ=$ДокСтрокиВ.Номенклатура
|WHERE
| (ЖурВозв.closed & 1 = 1) and
| (ЖурВозв.IDDOCDEF=$ВидДокумента.ВозвратОтПокупателя) and
| (ЖурВозв.ISMARK = 0) and
| (ЖурВозв.DATE_TIME_IDDOC between :НачДата and :КонДата~)
|ORDER by 1
|";
Выдает ошибку: "State 42000, native 104, message [Microsoft][ODBC SQL Server Driver][SQL Server]ORDER BY items must appear in the select list if the statement contains a UNION operator."
Без $ПоследнееЗначение можно даже и без ORDER ..
Не могу понять причину ошибки..