Имя: Пароль:
1C
1С v8
Изменить текст запроса динамического списка
,
0 gvm1969
 
22.03.17
14:09
1С:Предприятие 8.3 (8.3.9.1818)
Возникла следующая проблема:
В управляемой форме необходимо при определенных условиях изменить текст запроса динамического списка.
Я это сделал так:

&НаКлиенте
Процедура ОтборПоСтатусамПриИзменении(Элемент)
        .................................  
   ..................................
   СменитьЗапрос(Список, стрЗапроса);
                  
   ЭтаФорма.ОбновитьОтображениеДанных();
   Элементы.Список.Обновить();  
  
КонецПроцедуры

&НаСервере
Процедура СменитьЗапрос(ДС, СтрокаЗапроса)

   ДС.ТекстЗапроса = СтрокаЗапроса;
   Элементы.Список.Обновить();                  
КонецПроцедуры

В отладчике я вижу новый текст запроса.
А в форме ничего не меняется.

Метод Обновить() пробовал и только на сервере, и только на клиенте, и на сервере а затем на клиенте.
Что я делаю не так?
1 azernot
 
22.03.17
14:15
ДС.ПроизвольныйЗапрос - чему равно?
2 DrShad
 
22.03.17
14:17
свойство ПроизвольныйЗапрос
3 gvm1969
 
22.03.17
14:18
ПроизвольныйЗапрос - ИСТИНА
4 DrShad
 
22.03.17
14:20
структура полей одинакова?
5 gvm1969
 
22.03.17
14:21
структура полей одинаковая, она не меняется
6 gvm1969
 
22.03.17
14:25
Забыл сказать, что конфигурация самописная и стоит режим совместимости Версия 8.2.16
7 DrShad
 
22.03.17
14:27
основная таблица?
8 DrShad
 
22.03.17
14:28
динамическоеСчитываниеДанных?
9 тарам пам пам
 
22.03.17
14:37
"А в форме ничего не меняется." - а может новый текст запроса возвращает тоже самое, что и старый?
10 Вафель
 
22.03.17
14:38
в ерп половина списков так работает
11 Вафель
 
22.03.17
14:38
сделай в запросе ГДЕ ЛОЖЬ
12 DrShad
 
22.03.17
14:52
(11) +1

ДС должен стать пустым
13 gvm1969
 
22.03.17
14:55
ничего не меняется
14 DrShad
 
22.03.17
14:56
кэш?
15 Вафель
 
22.03.17
14:57
попробуй не передавать список на сервер. а на сервере отделльно брать
16 Вафель
 
22.03.17
14:58
когда ты передаешь список на сервер, ты передаешь копию
17 apokrit
 
22.03.17
14:58
(0)
Не нужно передавать список с клиента на сервер - при этом на сервер приезжает (не полная) копия списка, в него устанавливается текст запроса, этот огрызок отправляется на клиент (уже без текста запроса, конечно) и там устанавливается в реквизит.
Т.е. на выходе текст запроса у списка останется таким же как и был.

Нужно устанавливать текст запрос в список, полученный прямо из реквизита формы на сервере.
Грубо говоря:
ЭтаФорма.Список.ТекстЗапроса = ....

Если очень хочется разным спискам устанавливать - можно
ЭтаФорма[ИмяСписока].ТекстЗапроса = ...
18 apokrit
 
22.03.17
15:00
(0) Вообще, если это не что-то типа консоли запросов, конечно, для чего текст запроса с клиента передавать?
19 gvm1969
 
22.03.17
15:02
Кеш очистил. Результата нет
20 DrShad
 
22.03.17
15:05
(19) в (17) правильный ответ - проверил по своим обработкам
21 gvm1969
 
22.03.17
15:21
Спасибо, все получилось.
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.