0
Drac0
04.10.13
✎
11:04
|
Добрый день.
Есть такая структура данных:
Справочник Владелец (СпрВл), подчиненный ему справочник СпрП, у которого есть ТЧ с полем П1, тип значения некий справочник.
Мне необходимо настроить отбор по следующй логике: если установлено условие на равенство или вхождение в список, то берем те элементы СпрП, где в ТЧ есть значение параметра, а если условие на неравенство или не вхождение, то элемент, чья ТЧ содержит параметр, исключаем полностью.
Запрос имеет следующий вид:
[CODE]
ВЫБРАТЬ
СпрП.Ссылка КАК СпрП_Ссылка,
СпрП_ТЧ.П1 КАК ТЧ_П1
ИЗ
Справочник.СпрП КАК СпрП
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.СпрВл КАК СпрВл
ПО СпрВл.Ссылка = Фабрики.Владелец
И &ТутНекийОтбор
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СпрП.ТЧ КАК СпрП_ТЧ
ПО СпрП_ТЧ.Ссылка = СпрП.Ссылка
ГДЕ
НЕ СпрП.ТЧ.П1 = &ОтборП1
[/CODE]
Это его вид в Консоли. И если в ГДЕ ставить или убирать НЕ, то получаем абсолютно нужный эффект. Но при переносе в СКД и изменении для использования П1 в качестве отбора:
[CODE]
ВЫБРАТЬ
СпрП.Ссылка КАК СпрП_Ссылка,
СпрП_ТЧ.П1 КАК ТЧ_П1
ИЗ
Справочник.СпрП КАК СпрП
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.СпрВл КАК СпрВл
ПО СпрВл.Ссылка = Фабрики.Владелец
И &ТутНекийОтбор
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СпрП.ТЧ КАК СпрП_ТЧ
ПО СпрП_ТЧ.Ссылка = СпрП.Ссылка
{ГДЕ
СпрП.ТЧ.П1 КАК ОтборП1}
[/CODE]
Условия на неравенство и невхождения в список не работают корректно. Собственно, можно ли как-то логику работы отбора приблизить к варианту работы условия?
|
|