новое событие
Информационный поток
Задания вакансии материалы разработки сообщения форума

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

  • Добавить свою публикацию
  • для этого требуется регистрация

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Тестирирование и исправление ИБ... - непомогает :(

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

на условие

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

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

КонецЕсли;

 

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

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

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

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

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

 

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

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

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

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

 
0
Читайте также
Продажа товара собственным юр. лицам - зачем это надо и как это сделать в 1С:Управление Торговлей 8
Необходимость продажи товара между собственными юридическими лицами
Ошибки 1с
Для выявления и исправления ошибки 1С нужно правильно определить ее природу, а для этого требуется анализ всей информации в комплексе.
Простейший способ очитить БД от мусора и исправить ошибки
Привести в порядок базу данных в Бухгалтерии (все проводки удвоены)
Разработки
1Скрипт-менеджер
"Конфигурация, позволяющая решать проблемы с обслуживанием баз данных в фирмах, использующих MSSQL"
Свободное проведение документов
Помощь в проведении документов
Программа для фрилансеров
В программе много отчетов, которые позволяют отслеживать состояние текущих дел
Еще от автора
≡ к списку статей