Данная задача возникает, когда необходимо перенести справочники между конфигурациями у которых различается количество уровней (например, количество уровней в справочнике "Номенклатура" в конфигурации "Торговля и Склад" - 5, а в конфигурации "Бухгалтерия" - 4).
Самое простое решение - отбросить реквизит "Родитель" элементов справочника при выгрузке, но есть способ элегантнее. В данном случае мы не обсуждаем возможность изменения структуры справочника в базе-приемнике конфигурации "1С:Бухгалтерия".
Т.к. количество уровней в целевой конфигурации на 1 меньше, придется пожертвовать одним уровнем исходной конфигурации. Как правило это будет подгруппа уровня 4. Конечно, возможна ситуация, когда на Вашем предприятии каждый уровень имеет определенную семантику, тогда решение о том какой уровень отбросить надо принимать по ситуации.
Итак, как избавиться от подгруппы уровня №4? Разделим все множество элементов справочника на два множества:
- находящиеся на уровне 5,
- и находящиеся на уровне меньше 5-го.
Для этих двух групп создаем правила выгрузки:
Пятый уровень иерархии (вернее более четвертого)...
...и
Уровень иерархии 4 и меньше.
Для каждого из данных правил конвертации определяем условия выгрузки. Соответственно:
...и:
Для элементов, которые удовлетворяют первому правилу (уровень оказался менее 5) состав правила конвертации объекта обычен, в части конвертации реквизита "Родитель":
А для элементов с уровнем более 5 преобразуем реквизит "Родитель":
Вот и все. При загрузке элементы пятого уровня попадут в четвертый, группы четвертого уровня перенесены не будут.
Дополнение: Хотя, конечно, данное решение имеет и свои недостатки. Например, если мы выгружаем какие-либо документы имеющие реквизит "Номенклатура" - придется явно указывать по какому из двух правилу конвертировать данный реквизит, а для этого предварительно вычислять его уровень. Это же верно и для случая, когда выгружаем элементы переданные в качестве параметра форму выгрузки.