Показать сообщение отдельно
Старый 15.04.2019, 17:24   #3  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,874 / 3123 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Только сейчас наткнулся.
Если в подобных утилитах в коде используется
X++:
xUtilElements::findTreeNode()
с параметром по умолчанию
X++:
boolean _pseudoUtilElements = false
то результат может быть неверным. Найденный узел может не помещаться в проект.

Это происходит в таких случаях :
1. Найденный узел - системный класс (Global, Application, ClassFactory, etc)
2. Корневой элемент не в том слое, что найденный. Например была табличка на sys слое. Создали на usr слое индекс. Ищем его и после того как нашли в окне поиска , жмем добавить найденные узлы в проект.

Во всех этих случаях вызов xUtilElements::findTreeNode не найдет табличку, так как будет фильтровать еще и по слою, а сама табличка в этом случае не редактировалась (только дочерний узел). Поэтому в созданном проекте таблички не будет.

Чтобы избежать этих эффектов нужно вызов xUtilElements::findTreeNode делать с параметром _pseudoUtilElements = true

Тогда все ок.
Пакость глюка в том что проявляется не очень часто и может тихо гадить незаметно.

P.S.
Замечен на ax4
На других версиях не проверял.

Последний раз редактировалось Logger; 15.04.2019 в 17:33.
За это сообщение автора поблагодарили: raz (10).