Имя: Пароль:
1C
1С v8
Изменение текста запроса динамического списка после создания формы
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
При более детальном исследовании, выяснилось, что проблема была даже не в том, что параметр, а в том что этот параметр - ТаблицаЗначений для временной таблицы, а, увы, динамические списки, оказывается, временные таблицы не поддерживают :(((