Каталог решений - Берегите родителей или что бывает, когда Родитель ушел в себя

Берегите родителей или что бывает, когда Родитель ушел в себя

Берегите родителей или что бывает, когда Родитель ушел в себя

В наличии

Пропадают элементы , группы справочника, зависает приложение, а видимых ошибок нет.
Это не руководство к действию, а скорее наглядный пример "где копать"

Категория:

Описание

Может конечно и [:|||||||||:] Wink

но поиском не нашел. Если есть удалю (мешаться не буду)

Знаю, что все знают — но напомню:

И так в иерархическом справочники есть элементы и группы справочника

где группа (или верхний уровень) выступает Родителем (родительская папка) для элементов содержащихся в этой папке

На примере : у нас три группы (Группа 1, Группа 2, Группа 3)

в каждой группе по несколько элементов (Элемент 1 Группы 1, Элемент 2 группы 1)

а вот теперь давайте посмотрим, что будет , если мы программно устновим

для Группы 1 родителем саму себя , т.е. Группа 1

(так делать НЕЛЬЗЯ и НЕ НУЖНО) , но если кто-то сделал знайте где искать

Запустим обработку Пример , выберем Группу 1 и нажмем Выполнить

смотрим Группа 1 «пропала» в дереве

закроем группу Группа 1 — вообще ничего нет ?!?!

«остались» только две группы Группа 2 и Группа 3

куда делась Группа 1 и все элементы которые были в ней ? Удалили ? Нет

изменим режим просмотра «Иерархический список»

а так есть! и группа и элементы

(Примечание автора: а если программно запретить пользователю изменять

иерархию ? то можно «спрятать» половину номенклатуры.

но , большое но

если выбрать сейчас эту группу 1 из любого объекта конфигурации

программа зависнет наглухо

обработки работающие с этим справочником будет вести себя непривычно странно

в отладчике — тоже будут «чудеса» приводящие к зависанию приложения

Тестирирование и исправление ИБ… — непомогает 🙁

поможет наверное только проверка справочника

на условие

Если Элемент.ЭтоГруппа()=1 Тогда

       Элемент.Родитель= Элемент.ТекущийЭлемент();

КонецЕсли;

 

На платформе 8.2 

эту ситуацию предусмотрели

при попытки присвоить родителем самого себя

(программно или интерактивно)

получите предупреждение.

 

Во вложение MD ник с примером

в нем 1 справочник и 1 обработка (можно не скачивать и так все понятно из рисунков)

происходит «зацикливание» и все … полный аут.

Но вы то теперь, знаете где собака порылась (с)

has been added to your cart:
Оформление заказа