Имя: Пароль:
1C
1С v8
Как обновить Список формы после изменения ТекстаЗапроса
0 ВаликТР
 
24.07.15
16:59
Изменил текстЗапроса, но элемент.Список не обновляется.
Висит как вкопаный. Куда копать, поскажите, пожалуйста?
1 Casey1984
 
24.07.15
17:03
ДинамическийСписок?
2 Casey1984
 
24.07.15
17:06
.Обновить(); ?
3 ВаликТР
 
24.07.15
17:11
(2) Куда вставить?

&НаКлиенте
Процедура Запрос(Команда)
    Конструктор = Новый КонструкторЗапроса;
    Конструктор.Текст = ПолучитьТекстЗапроса(Список);
    Оповещение = Новый ОписаниеОповещения("ОткрытьКонструкторЗапросаЗавершение", ЭтаФорма, Список);
    Конструктор.Показать(Оповещение);
КонецПроцедуры

&НаСервере
Функция ПолучитьТекстЗапроса(Список)
    Возврат Список.ТекстЗапроса;
КонецФункции


&НаСервере
Процедура ОткрытьКонструкторЗапросаЗавершение(Текст, Список) Экспорт
    Если НЕ Текст = Неопределено Тогда
        Список.ТекстЗапроса = Текст;
    КонецЕсли;
КонецПроцедуры
4 Лефмихалыч
 
24.07.15
17:13
> Куда вставить?
пятница. вечер. Ща же ведь набегут и закидают вариантами...
5 Casey1984
 
24.07.15
17:17
Оповестить("ОбновитьСписок"); - на сервере когда надо обновить

и в обработчиках событий формы:

&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)

Если ИмяСобытия = "ОбновитьСписок" Тогда
Элементы.Список.Обновить();
КонецЕсли;

КонецПроцедуры
6 Casey1984
 
24.07.15
17:17
ой нет Оповестить("ОбновитьСписок") - на клиенте)
7 Casey1984
 
24.07.15
17:18
Это пятничный вариант решения)
8 Casey1984
 
24.07.15
17:21
или просто Элементы.Список.Обновить();

Что за переменная Список у тебя я так и не понял.
9 blopp
 
24.07.15
17:21
(3) Вот скажите мне люди, чем вы думаете когда такой код пишите?
Может кто умный советует?

В ОткрытьКонструкторЗапросаЗавершение передается Список с клиента, там он меняется и обратно засовывается в реквизит.

На клиенте текст запроса не передается.

Как предполагается что это должно работать?!

P.S. Если слишком много буков - скажу проще:
1. Выкинуть параметр Список из ОткрытьКонструкторЗапросаЗавершение
2. Вместо него использовать просто Список
10 blopp
 
24.07.15
17:37
+9
Про обратно засовывается в реквизит - неправда.
11 ВаликТР
 
24.07.15
17:46
(9) Спасибо за подсказку - после экспериментов осталось. Убрал Список, в отладчике ТекстЗапроса меняется. Но когда вызываю второй раз Конструктор - с сервера вытаскивается пустой ТекстЗапроса.
12 blopp
 
24.07.15
17:49
(11) Кажется, это можно было и самому догадаться.
Из функции  ПолучитьТекстЗапроса тоже нужно убрать параметр.
13 ВаликТР
 
24.07.15
17:58
(12) Еще раз спасибо. Текст сохраняется, при следующем вызове Конструктора его вижу. Но вот Поле Список по прежнему не обновляется. Вывел даже кнопку Обновить - все равно не меняется. Что можно предпринять?
14 Casey1984
 
24.07.15
18:02
(13) А в кнопке что?
15 Casey1984
 
24.07.15
18:09
(13) Сразу после присвоения текста запроса разве: Элементы.Список.Обновить(); не помогает?
16 ВаликТР
 
24.07.15
18:14
(15) ТекстЗапроса присваивается НаСервере. Там Элементы.Список отсутствует.
17 Casey1984
 
24.07.15
18:17
(16) да ладно?
18 ВаликТР
 
24.07.15
18:23
(16) Не то сморозил... Ну, в общем, добавил.

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

Не обновляется :-(
19 EugeniaK
 
24.07.15
20:37
Что имеешь в виду под "не обновляется"?
Что меняешь в тексте.
20 ВаликТР
 
24.07.15
22:12
(19) Колонки не создаются. Результат запроса не отобржается в Списке.
21 hhhh
 
24.07.15
22:22
(19) колонки вроде там в скд отдельно от запроса описываются. А также отбор и условное оформление.
22 blopp
 
25.07.15
18:54
(20) Колонки нужно руками создавать, они сами не создаются.

(21) Выбранные поля в настройках списка не используются. Нужно просто создавать колонки в таблице и указывать для них пути.
23 hhhh
 
26.07.15
00:15
(22) их программно можно создать
24 Zhuravlik
 
26.07.15
00:20
В СП метод ГК "ОповеститьОбИзменении".