Может конечно и [:|||||||||:]
но поиском не нашел. Если есть удалю (мешаться не буду)
Знаю, что все знают - но напомню:
И так в иерархическом справочнике есть элементы и группы справочника
где группа (или верхний уровень) выступает Родителем (родительская папка) для элементов содержащихся в этой папке
На примере : у нас три группы (Группа 1, Группа 2, Группа 3)
в каждой группе по несколько элементов (Элемент 1 Группы 1, Элемент 2 группы 1)
а вот теперь давайте посмотрим, что будет , если мы программно установим
для Группы 1 родителем саму себя , т.е. Группа 1
(так делать НЕЛЬЗЯ и НЕ НУЖНО) , но если кто-то сделал, знайте где искать
Запустим обработку Пример, выберем Группу 1 и нажмем Выполнить
смотрим Группа 1 "пропала" в дереве
закроем группу Группа 1 - вообще ничего нет ?!?!
"остались" только две группы Группа 2 и Группа 3
куда делась Группа 1 и все элементы которые были в ней ? Удалили ? Нет
изменим режим просмотра "Иерархический список"
а так есть! и группа и элементы
(Примечание автора: а если программно запретить пользователю изменять иерархию, то можно "спрятать" половину номенклатуры)
но , большое но
если выбрать сейчас эту группу 1 из любого объекта конфигурации
программа зависнет наглухо
обработки работающие с этим справочником будет вести себя непривычно странно
в отладчике - тоже будут "чудеса" приводящие к зависанию приложения
Тестирование и исправление ИБ... - не помогает :(
поможет наверное только проверка справочника
на условие
Если Элемент.ЭтоГруппа()=1 Тогда
Элемент.Родитель= Элемент.ТекущийЭлемент();
КонецЕсли;
На платформе 8.2
эту ситуацию предусмотрели
при попытке присвоить родителем самого себя
(программно или интерактивно)
получите предупреждение.
Во вложение MD ник с примером
в нем 1 справочник и 1 обработка (можно не скачивать и так все понятно из рисунков)
происходит "зацикливание" и все ... полный аут.
Но вы-то теперь знаете, где собака порылась (с)