27.10.2021, 17:52 | #1 |
Участник
|
Странный код в построении перекрестных ссылок
Всем привет!
Когда стал в выборочном режиме строить перекрестные ссылки, полезли ошибки. Поиск корней ошибок привел к такому вот коду, в классе xRefUpdate метод utilElementsToBexRefedInsert. А конкретно sysDictTable = new SysDictTable(tablename2id(_utilElements.Name)) X++: case UtilElementType::TableInstanceMethod, // table method can be xreffed individually; but skip it, if the complete table are xreffed. UtilElementType::TableStaticMethod: sysDictTable = new SysDictTable(tablename2id(_utilElements.Name)); if (sysDictTable) { select utilElementsToBexRefed where utilElementsToBexRefed.RecordType == sysDictTable.utilElementType() && utilElementsToBexRefed.Id == tablename2id(_utilElements.Name); if (!utilElementsToBexRefed) { utilElementsToBexRefed.clear(); utilElementsToBexRefed.RecordType = sysDictTable.utilElementType(); utilElementsToBexRefed.ParentId = _utilElements.ParentId; utilElementsToBexRefed.Name = _utilElements.Name; utilElementsToBexRefed.insert(); } break; } Кто-то сталкивался с этим? Непонятно, или это ошибка, или какая-то неведомая задумка. Ведь при таком типе элемента, в поле _utilElements.Name будет имя метода. И тогда теряется какой-либо смысл в выражении tablename2id(_utilElements.Name). Т.е. это поиск кода таблицы через имя ее метода. Ну ладно когда это не сработало, тогда код просто пропускается. Но хуже когда имя метода совпадает с какой-то таблицей. Например, у меня было так - таблица CustSettlement имеет метод custVendTrans. При обработке в этом участке кода по имени custVendTrans, SysDictTable замечательным образом инициализируется по мапу CustVendTrans. В итоге дальше в utilElementsToBexRefed пишется полная ересь - имя custVendTrans, parentId - от CustSettlement, но тип записи - TableMap. Пока склоняюсь что это ошибка. Возможно, по логике следовало бы записать: sysDictTable = new SysDictTable(_utilElements.ParentId)); Подскажите, было ли что-то на эту тему? Код давний очень, аж на 4-ке есть. Наверняка за долгое время у кого-то тоже должно было проявиться |
|
|
За это сообщение автора поблагодарили: S.Kuskov (5). |
Теги |
перекрестные ссылки |
|
|