Прямой запрос к справочнику Сотрудники:
RS = CreateObject("ODBCRecordSet");
RS.SetDatabase1C();
MW = CreateObject("MetaDataWork");
SELECT
Rtt.ID as [Элемент $Справочник.Сотрудники],
Rtt.Descr as Наименование,
$Rtt.ОсновнойЭлемент as [ОсновнойЭлемент $Справочник.Сотрудники],
$ПоследнееЗначение.Сотрудники.ИмеетАкции(Rtt.ID, :ВыбДата) as Акции,
$ПоследнееЗначение.Сотрудники.СостояниеФизлица(Rtt.ID, :ВыбДата) as [СостояниеФизлица $Перечисление.СостояниеФизлица]
FROM
$Справочник.Сотрудники as Rtt
WHERE
Rtt.IsFolder = 2 AND
Rtt.IsMark = 0 AND
$Rtt.ОсновнойЭлемент = Rtt.ID
AND $ПоследнееЗначение.Сотрудники.СостояниеФизлица(Rtt.ID, :ВыбДата) = :ПустоеСостояниеФизлица
ORDER BY
Rtt.Descr
Пытаюсь отобрать сотрудников с пустым значением реквизита СостояниеФизлица (Перечисление.СостояниеФизлица). Параметр "ПустоеСостояниеФизлица" делал и так:
ПустоеП = ПолучитьПустоеЗначение("Перечисление.СостояниеФизлица");
ПустоеП_=MW.ЗначениеВСтрокуБД(ПустоеП);
RS.SetTextParam("ПустоеСостояниеФизлица", ПустоеП_);
и так
стояниеФизлица"));
В итоге получаю пустую выборку - никого не находит

Пробовал через $ПустойИД - тоже ничего, в смысле запрос чего-то лопатит до бесконечности. В таблице справочника пустое значение этого реквизита соответствует ' 0 ', но как это прописать в запросе?
Пробовал так: $ПоследнееЗначение.Сотрудники.СостояниеФизлица(Rtt.ID, :ВыбДата) = ' 0 ' . не пролезло

Результат такой же как и с $ПустойИД - сервер что-то усиленно лопатит (загрузка процессора 65-70%) и так до бесконечности. Даже с учётом большого объёма справочника (более 2,5 тыс. сотров) так не может быть.
Значений таких в справочнике море - это и все уволенные, и акционеры, не работающие в фирме, около половины объёма справочника. Тем более, что с другими условиями (когда состояние не пустое) - всё летает. напр., со штатными:
RS.SetTextParam("Штатные",Перечисление.СостояниеФизлица.СотрудникОсновной"));
И условием
AND $ПоследнееЗначение.Сотрудники.СостояниеФизлица(Rtt.ID, :ВыбДата) = :Штатные
То же с декретниками и внешними совместителями.
Конечно можно идти от обратного, т.е.в условии прописать "не равно" - штатные и т.п., но так некрасиво и длинно. К тому же хочется узнать, где здесь косяк.
На форуме
http://www.forum.mista.ru подкинули идею с 'is NULL'? т.е. $ПоследнееЗначение.Сотрудники.СостояниеФизлица(Rtt.ID, :ВыбДата) = is NULL.
Работает, даёт выборку. Но это лишь частично решает проблему - выбираются те люди, у которых состояние физлица "идеально чистое" (NULL одним словом) - в истории реквизита нет ни одной записи. Это не работающие держатели акций. А уволенных запрос при этом условии не попадают, хотя у них тоже "пусто". Значит есть какая-то разница между NULL и "пусто".
Подскажите, где сидит ошибка, плиз!