Если вы пользуетесь в запросе конструкциями вида
... ГДЕ Продукция.Родитель = &А ИЛИ Продукция.Родитель.Родитель = &А ИЛИ ...
для определения принадлежности элемента справочника определенным папкам, то надо иметь в виду некоторые особенности.
В коде вы можете спокойно брать родителя любого уровня и будете получать просто пустую ссылку, если вышестоящего родителя нет.
Например
Справочники.Номенклатура.ПустаяСсылка().Родитель
- это пустая ссылка.
В запросе всё немного не так.
Родитель корневого элемента будет пустая ссылка, а все вышестоящие родители будут равны NULL.
Такой запросец (имитирует обращение к предку второго уровня коренвого элемента, т.к. предок первого уровня это пустая ссылка)
ВЫБРАТЬ
(ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)).Родитель
вернет NULL.
Что интересно, SQL запрос
ВЫБРАТЬ
(ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)).Родитель.Родитель
тоже вернет NULL.
Хотя, казалось бы, он эквивалентен запросу
ВЫБРАТЬ
(NULL).Родитель
который приводит к ошибке.
Дальше еще интереснее.
Вот такой незамысловатый запрос
ВЫБРАТЬ
ВЫБОР
КОГДА НЕ ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка) В (
NULL
)
ТОГДА 1
ИНАЧЕ 2
КОНЕЦ
вернет 1, ну действительно, вроде логично. Хотя операции сравнения с NULL вегда возвращают ЛОЖЬ и необходимо использовать конструкцию ЕСТЬ NULL.
Но с какого-то перепугу
ВЫБРАТЬ
ВЫБОР
КОГДА НЕ ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка) В (
(ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)).Родитель
)
ТОГДА 1
ИНАЧЕ 2
КОНЕЦ
возвращает 2.
Кстати, если в двух последних запросах В заменить на В ИЕРАРХИИ, то первый запрос так и будет возвращать 1, а второй запрос начнет сыпать ошибку.
Подводя итог: обращение к родителям вышестоящего уровня в запросе может привести к псевдо-NULL значениям, которые ведут себя не совсем как NULL. Хотя для них операция ЕСТЬ NULL будет истина. Чтоб оградить себя от подобных казусов, все обращения к "дедам", "прадедам" и т.д. элементов справочников следует заключать в конструкцию ISNULL.
P.S. Не благодарите за ваше острое желание проверить тексты запросов, содержащих Родитель.Родитель