Цитата:
Сообщение от
Raven Melancholic
Но мой взгляд, объединение постоянной таблицы с временной не самая удачная идея.
Я бы сделал так:
таблицу бы сделал не временной а нормальной.
- Одно из полей использовал бы в качестве какого-либо идентификатора сессии (непосредственно номера сессии или Guid)
- В форме бы сделал соединение основной таблицы с этой псевдовременной.
- Вызывал заполнение этой таблицы и устанавливал бы фильтр по полю-сессии.
- Ну и при закрытии очищал бы эту псевдовременную таблицу.
В свое время так пришлось делать в российских запросах по ГК (те, что похожи на стандартные 1С-овские типа ОСВ), так как счетов было порядка 1000 и в ранж запихнуть условия не получалось.
В начале я так и делал - простую таблицу и предполагал очищать ее каждый раз при использовании, но меня отговорили от этой затеи, вроде как есть временные, ими и надо пользоваться. В любом случае спасибо, буду иметь ввиду как вариант.
Цитата:
Сообщение от
lev
если честно, не до конца понял что за монстро-фильтр надо организовать, который нельзя было бы наложить с помощью расширенного фильтра...
попробую предположить решение вашей проблемы...
необходимо добавить курсор временной таблицы в QueryRun вашей формы, а именно написать в методе ExecuteQuery до супера (по идее все равно где именно) следующий код:
X++:
this.queryRun().setCursor(myTmpTable);
Ммм, фильтр сам по себе простой - отобразить на форме только те номенклатуры, которые подходят под условие. Но простым addRange(...).value(...), как я понимаю решить не получится, т.к. длинна критерия в value(...) ограничена 250 символами. А у меня список номенклатур отбора может быть очень большим. Поэтому и хочу просто "схлопнуть" datasource формы связав его по номенклатурам во временной таблице.
Цитата:
Сообщение от
S.Kuskov
Благодарю, буду разбираться.
Цитата:
Сообщение от
Pustik
Насколько я помню, временная таблица должна всегда быть в "верху" запроса. Т.е. линкуйте постоянные таблицы к временной, а не наоборот.
Как окажусь на работе, попробую, спс.