Доброго времени суток!
В какой-то момент перед человеком, редко писавшим lookup формы, встала задача отсортировать её по нужному полю, да еще и фильтров навешать. Стандартные методы не срабатывали, поскольку datasource_q был все время null (поскольку у формы AutoQuery = No) и модифицировать его не получалось - тетка Аксапта, ессно, ругалась.
Поиск по конференция ничего не дал и в ФАКах было пусто.
Пришлось идти к сэнсеям. Как оказалось, сэнсеи уже не раз отвечали на этот вопрос и задолбались уже на него отвечать.
Так вот - для того, чтобы восполнить этот пробел, я решил написать этот топик.
Кстати, штука довольно неочевидная...
В общем, если стоит задача сделать фильтрацию и/или сортировку данных в собственной lookup форме ( не забывать - AutoQuery = No !), то сделать это стандартными методами (взять у datasource формы Query, добавить поля сортировки, добавить фильтры) в init'е, скажем, datasource'а формы не получится.
Вместо этого следует сделать следующее:
В init'е datasource'а формы создать новый "левый" Query.
PHP код:
Query _query;
;
_query = new Query();
_query.addDataSource(.......
Далее, как обычно, добавить в него нужные datasource'ы(таблицы).
Затем нафаршировать его нужными сортировками и фильтрами.
Далее - сказать магическое сочетание:
PHP код:
this.Query(_query);
(это в случае, если пишем все в init datasource'а).
Далее остается вызвать super();
Участие в написании принимали Lexx, Aand, и ваш покорный слуга.

Всё. Комментарии - welcome.