Чтобы понять, что я имел в виду, под фильтрацией буфера, проведите маленький эксперимент:
- Создайте форму и добавьте к ней DataSource. Например, InventTable.
- На форме разместите Grid, в котором выведите какие-нибудь данные DataSource.
- Также на форме поставьте кнопку. В методе clicked() у нее напишите что-нибудь вроде:
PHP код:
Common common;
;
common = InventTable_ds.cursor();
select common where common.(fieldnum(InventTable, ItemId)) like "С*";
- Нажмите на кнопку и наблюдайте за содержимым Grid'а.
А теперь представьте, что вы генерируете более сложные запросы. Представьте, что будет видеть пользователь!
Вместо этого, предлагаю вам создать новый буфер и читать данные из него. Если вы хотите добиться полной универсальности, воспользоваться можно следующим способом (вставьте в тот же самый метод clicked()):
PHP код:
Common common;
SysDictTable dictTable;
;
dictTable = new SysDictTable(InventTable_ds.table()); // Получаем ссылку на таблицу в AOT
common = dictTable.makeRecord(); // Создаем новый буфер для этой таблицы
select firstonly common; // Делаем с буфером что захотим
info(common.(fieldNum(InventTable, ItemId)));
Удачи.