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