|
Изменение текста запроса динамического списка после создания формы |
☑ |
0
Humandra
15.02.12
✎
14:57
|
Добрый день!
А вот такой вопрос имеется:
1) есть форма списка справочника, у нее есть динамический список с произвольным запросом.
2) есть необходимость, в случае если пользователь в этой форме нажал пару кнопок, фильтровать записи справочника по условию, сформированному при нажатии этих кнопок
3) а если пользователь ничего не нажимал - то показывать все записи
4) при этом отбор наш должен производится не в условии запроса ГДЕ, а посредством ВНУТРЕННЕГО СОЕДИНЕНИЯ с временной таблицей, так как значения для отбора в ней и хранятся, и их может быть достаточно много для того, чтобы отбор В (IN) работал быстро. Лучше было бы просто подменять текст запроса, если кнопки нажаты - подставляем в запрос соединение. Если не нажаты - ничего не подставляем.
5) Структура возвращаемых колонок и основная таблица не изменяются
Внимание, вопрос: как реализовать подмену запроса?
Как я поняла, есть свойство Список.ТекстЗапроса, доступное для записи.
Заменила текст запроса после нажатия на кнопке, вызвала
Элементы.Список.Обновить();
Но такое ощущение, что текст запроса не поменялся.
Надо еще что-то где-то вызвать, или то что я хочу, вообще не поддерживается динамическими списками?
|
|
1
Humandra
15.02.12
✎
15:10
|
ТекстЗапроса, естественно, меняю в серверной процедуре...
|
|
2
Fish
гуру
15.02.12
✎
15:12
|
|
|
3
Humandra
15.02.12
✎
15:12
|
О, блин. Похоже нашла в чем проблема - обновлять надо на клиенте. :) Так вроде почти работает, на запрос правда ругается, но это уже мелочи :)
|
|
4
Humandra
15.02.12
✎
15:14
|
(2) Не, не то. Там как раз отбор по списку значений, а если в списке значений элементов почти столько же сколько в самой фильтруемой таблице, то отбор В плохо будет работать. А скуль вроде бы не оптимизирует это, кажется.
|
|
5
Humandra
16.02.12
✎
10:05
|
Рано радовалась.
Заработало на тексте запроса, хоть и измененном, но имеющих те же параметры, что и не измененные текст запроса.
А мне надо после открытия формы и определенных действий пользователя - добавить параметр.
1С ругается на новый параметр, мол "Неверный параметр" и "ошибка при получении запроса. :(
Опять таки вопрос: это так и должно быть, и 1С не может изменять список параметров динамически, или это я что-то не знаю?
|
|
6
oleg_ma
16.02.12
✎
10:18
|
Добавить в первоначальный вариант запроса нужный параметр, но не использовать в запросе. Лишний параметр 1с переварит:). Затем заменяем текст запроса и используем добавленный параметр:)
|
|
7
Humandra
16.02.12
✎
10:35
|
При более детальном исследовании, выяснилось, что проблема была даже не в том, что параметр, а в том что этот параметр - ТаблицаЗначений для временной таблицы, а, увы, динамические списки, оказывается, временные таблицы не поддерживают :(((
|
|