Странная ошибка: не работает типизация.
Запрос "составной" из двух запросов, объединенных по UNION ALL.
Если выполнять по отдельности первый запрос и второй запрос, то типизация работает.
Если выполнять запрос как "составной" через UNION ALL, то во втором SELECT-е не срабатывает типизация.
Второй SELECT содержит две строки с одинаковой типизацией (только имена полей разные):
- "СпрЕдиницы.ID as [ЕдиницаИзмерения :Справочник.ЕдиницыИзмерений]"
- "СпрЕдиницы.ID as [ОКЕИ :Справочник.ЕдиницыИзмерений]"
Во второй строке второго SELECT-а типизация срабатывает. А в первой строке - нет.
Это на конфигурации "Производство+Услуги+Бухгалтерия 7.7".
|SELECT
| СпрЕдиницы.ParentExt as [Номенклатура :Справочник.Номенклатура],
| NULL as ЕдиницаИзмерения,
| СпрЕдиницы.ID as [ЕдиницаНоменклатуры :Справочник.ЕдиницыНоменклатуры],
| СпрЕдиницы.Вес as Вес,
| СпрЕдиницы.Коэффициент as Коэффициент,
| '' as ШтрихКод,
//----
| СпрЕдиницы.ЕдиницаИзмерения as [ОКЕИ :Справочник.ЕдиницыИзмерений],
| СпрЕдиницыИзмерений.Code as ОКЕИ_Код,
| RTRIM(СпрЕдиницыИзмерений.Descr) as ОКЕИ_НаименованиеКраткое,
| RTRIM(СпрЕдиницыИзмерений.ПолнНаименование) as ОКЕИ_НаименованиеПолное,
//----
| '' as ЭтоБазоваяЕдиница,
| CASE
| WHEN (СпрНоменклатура.ID IS NOT NULL) AND (СпрЕдиницы.ID = СпрНоменклатура.ОсновнаяЕдиницаИзмерения) THEN 'Да'
| ELSE ''
| END AS ЭтоОсновнаяЕдиница
//----
|
|FROM [Справочник.ЕдиницыНоменклатуры] as СпрЕдиницы
|LEFT OUTER JOIN
| [Справочник.Номенклатура] СпрНоменклатура ON СпрЕдиницы.ParentExt = СпрНоменклатура.ID
|LEFT OUTER JOIN
| [Справочник.ЕдиницыИзмерений] СпрЕдиницыИзмерений ON СпрЕдиницы.ЕдиницаИзмерения = СпрЕдиницыИзмерений.ID
|
|WHERE (СпрЕдиницы.IsMark <> '*') AND (::УсловиеПоВладельцам)
|
|
|UNION ALL
|
|
|SELECT
| СпрНоменклатура.ID as [Номенклатура :Справочник.Номенклатура],
| СпрЕдиницы.ID as [ЕдиницаИзмерения :Справочник.ЕдиницыИзмерений],
| NULL as ЕдиницаНоменклатуры,
| 0 as Вес,
| 1 as Коэффициент,
| СпрНоменклатура.ШтрихКод as ШтрихКод,
//----
| СпрЕдиницы.ID as [ОКЕИ :Справочник.ЕдиницыИзмерений],
| СпрЕдиницы.Code as ОКЕИ_Код,
| RTRIM(СпрЕдиницы.Descr) as ОКЕИ_НаименованиеКраткое,
| RTRIM(СпрЕдиницы.ПолнНаименование) as ОКЕИ_НаименованиеПолное,
//----
| 'Да' as ЭтоБазоваяЕдиница,
| '' as ЭтоОсновнаяЕдиница
//----
|
|FROM [Справочник.Номенклатура] СпрНоменклатура
|LEFT OUTER JOIN
| [Справочник.ЕдиницыИзмерений] СпрЕдиницы ON СпрНоменклатура.ЕдиницаИзмерения = СпрЕдиницы.ID
|
|WHERE (СпрНоменклатура.IsFolder <> '1') AND (::УсловиеПоНоменклатуре)
В чем причина?
Это я что-то неправильно написал? Или ошибка в компоненте?