Добрый день!
Потребовалось тут мне построить нетривиальный фильтр на форме и столкнулся я с тем, что при попытке приджойнивания новой таблицы - выводится много связей с одинаковым названием и невозможно отличить одну связь от другой.
Особенно это заметно, если в одной таблице есть несколько сотрудников (как например, в таблице проектов - ProjTable). Но я покажу пример на более распространенной табличке - заказов на покупку (PurchTable). В табличке есть 2 поля, ссылающихся на справочник поставщиков (VendTable) - OrderAccount и InvoiceAccount. Итак, открываем заказ на покупку (например, из модуля Расчеты с поставщиками) и выбираем расширенный фильтр
Пытаемся добавить справочник поставщиков к существующему запросу
И видим две одинаковые строки
Изначально не очень понятно, какую мне связь выбирать, если я захочу к табличке PurchTable приджойнить табличку VendTable.
Кнопка "Показывать названия таблиц" не вносит ясности, т.к. в общем-то и так понятно, что я пытаюсь приджойнить VendTable к PurchTable
Я решил добавить сюда информацию о полях связи, добавив дополнительный столбец (он виден только, если включен флажок "Показывать названия таблиц")
В случае связей по нескольким полям - они "склеиваются" в одну строку и выводятся таким образом:
Проверил на PU25 - работает. В ходе разработки использовал технологию CoC для расширения класса и для расширения контрола (чтобы столбец скрывался при выключенном флажке "Показывать названия таблиц"), т.о. ранее, чем PU22 (кажется) такой подход работать не будет - нужно будет код немного поменять.
Думаю, тут уже можно будет справиться самостоятельно (в конце концов можно не скрывать новый столбец)
Кода немного - фактически, небольшое расширение класса SysQueryBuilder
Код делал в отдельной модели для лёгкости установки. Прикладываю 2 файла - .axpp (выгрузка проекта) и .axmodel (выгрузка модели)
SysQueryFormAddRelInfo.axpp
SysQueryFormAddRelInfo-VSUH.axmodel