|
Обновить динамический список управляемой формы | ☑ | ||
---|---|---|---|---|
0
dimm7310
25.03.12
✎
15:31
|
есть динамический список формы справочника с произвольным запросом, если добавить новый элемент из это списка , то новый элемент отображается в списке только по нажатию F5 или при повторном открытии.
Видел рекомендации добавить: Элементы.Список.Обновить(); но все равно не обновляет, может не там добавляю эту строку? пробовал &НаКлиенте Процедура СписокПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа) Отказ = Истина; ОткрытьФорму("Справочник.Партнеры.Форма.ПомощникНового",Новый Структура("ЗаголовокФормыВладельца",ЭтаФорма.Заголовок),ЭтаФорма); Элементы.Список.Обновить(); КонецПроцедуры &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Элементы.Список.Обновить(); КонецПроцедуры &НаКлиенте Процедура СписокПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования) Элементы.Список.Обновить(); КонецПроцедуры как правильно? |
|||
1
Конфигуратор1с
25.03.12
✎
15:56
|
&НаКлиенте
Процедура СписокПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования) Элементы.Список.Обновить(); КонецПроцедуры |
|||
2
vde69
25.03.12
✎
15:58
|
(1) обновить весь список - не комильфо, может тормозить (зависит от многих факторов),
правильно - послать уведомление об изменении и в параметре передать список элементов (в сабже 1 элемент) |
|||
3
Конфигуратор1с
25.03.12
✎
16:02
|
(2)а с этого места поподробнее, будь ласочка
|
|||
4
vde69
25.03.12
✎
16:20
|
Глобальный контекст (Global context)
ОповеститьОбИзменении (NotifyChanged) Вариант синтаксиса: Изменён один объект Синтаксис: ОповеститьОбИзменении(<Ссылка>) Параметры: <Ссылка> (обязательный) |
|||
5
dimm7310
25.03.12
✎
18:55
|
(1) не понял, а чем отличается от моего кода? Я же тоже так пробовал
|
|||
6
dimm7310
25.03.12
✎
18:57
|
(4) Где размешать вызов этой процедуры ?
|
|||
7
vde69
25.03.12
✎
19:10
|
(6) после записи объекта
|
|||
8
experimentator76
25.03.12
✎
21:46
|
(0) если ничего не поможет
то гарантировано обновляет после установки параметра произвольного запроса |
|||
9
experimentator76
25.03.12
✎
21:56
|
(0) может релиз древний?
вроде было такое же давно |
|||
10
dimm7310
26.03.12
✎
08:35
|
Никак не хочет обновляться.
релиз последний &НаКлиенте Процедура СписокПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа) Отказ = Истина; ОткрытьФорму("Справочник.Партнеры.Форма.ПомощникНового",Новый Структура("ЗаголовокФормыВладельца",ЭтаФорма.Заголовок),ЭтаФорма); //Элементы.Список.Обновить(); КонецПроцедуры //вообще параметры в запросе не используются &НаСервере Процедура УстановитьПараметрСписка() Список.Параметры.УстановитьЗначениеПараметра("Параметр",111); КонецПроцедуры &НаКлиенте Процедура СписокПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования) Элементы.Список.Обновить(); ОповеститьОбИзменении(Список); КонецПроцедуры |
|||
11
vmv
26.03.12
✎
08:47
|
добавляешь через "ж" потому что.
Если это добавление, но хочешь добавить по-своему, то нужно делать через обработчик, который для этого и служит, например я так делаю &НаКлиенте Процедура СписокПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа) Отказ = Истина; ПараметрыФормы = Новый Структура; Если Копирование И Элемент.ТекущиеДанные <> Неопределено Тогда ПараметрыФормы.Вставить("ЗначениеКопирования", Элемент.ТекущаяСтрока); Иначе ОбъектХХХ = Элементы.Список.ТекущаяСтрока; СтруктураЗначенияЗаполнения = Новый Структура; СтруктураЗначенияЗаполнения.Вставить("Родитель", ОбъектХХХ); ПараметрыФормы.Вставить("ЗначенияЗаполнения", СтруктураЗначенияЗаполнения); КонецЕсли; ОткрытьФормуМодально("Справочник.Add_CL_ОбъектыХХХ.Форма.ФормаЭлемента", ПараметрыФормы, ЭтаФорма); КонецПроцедуры |
|||
12
vmv
26.03.12
✎
08:48
|
а через то в сабже, да ладно)
|
|||
13
dimm7310
26.03.12
✎
08:55
|
&НаКлиенте
Процедура СписокПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования) Элементы.Список.Обновить(); ОповеститьОбИзменении(Элемент); КонецПроцедуры |
|||
14
dimm7310
26.03.12
✎
08:56
|
(12) ИМХО разница только в том, что ты передаешь в параметрах родителя
|
|||
15
vde69
26.03.12
✎
12:05
|
(13) Обновить нужно вызывать только если динамический список не обновляется сам
и обновить должно стоять ПОСЛЕ!! // общий модуль &Клиент Процедура ПодписьДокументов (МассивЗадач, Режим, ТекстВопроса, Отказ, ТихийРежим = Ложь) Экспорт ..... ..... ..... Для Каждого Задача из МассивЗадач Цикл БизнесПроцессыИЗадачиСервер.ПодписатьОднуЗадачу (Задача, Примечание, Режим, Отказ, РольПодписи, ,Истина, ПараметрыРегистрации); Если не Отказ Тогда ОповеститьОбИзменении(Задача); КонецЕсли; КонецЦикла; |
|||
16
dimm7310
26.03.12
✎
15:53
|
(15) если бы список сам обновлялся стал бы я заморачиватся
Так я и не понял. Ты предлагаешь создать подписку на событие для этого ? |
|||
17
ВикторП
26.03.12
✎
16:01
|
Я сделал обработкой оповещения- работает хорошо. ОбновитьОтображениеДанных() не сработало
|
|||
18
vde69
26.03.12
✎
16:05
|
(16) ни надо никаких подписок, блин...
1. ОповеститьОбИзменении - вызывается НА КЛИЕНТЕ 2. ВСЕ открытые формы получают это оповещение 3. все динамические списки с "автообновлением" сами обновляют все 4. для остальных динамических списков нужно вызвать .Обновить() |
|||
19
dimm7310
26.03.12
✎
17:21
|
(18) принцип я понял, просто скажи в какой процедуре вызывать
ОповеститьОбИзменении() |
|||
20
dimm7310
26.03.12
✎
17:30
|
(17) Пожалуйста приведи пример кода
|
|||
21
5 Элемент
26.03.12
✎
17:39
|
(2) Элементы.Список.Обновить() и прием оповещения работают одинаково при обновлении списка.
|
|||
22
5 Элемент
26.03.12
✎
17:40
|
А у автора не работает потому что у него не модально отркывается окно
|
|||
23
dimm7310
26.03.12
✎
17:42
|
(22) Пробовал я Модально - то же самое
|
|||
24
5 Элемент
26.03.12
✎
17:43
|
(23) не обманывай
|
|||
25
Cmyk32
26.03.12
✎
17:46
|
(0) Спрошу на всякий. В произвольном запросе "Основная таблица" установлена (снизу) ?
|
|||
26
dimm7310
26.03.12
✎
17:46
|
(25) да только, что смотрел, выбрана под текстом запроса
|
|||
27
Cmyk32
26.03.12
✎
17:47
|
(26) Произвольный запрос из нескольких таблиц?
|
|||
28
dimm7310
26.03.12
✎
17:47
|
флажок динамическое считывание данных тоже установлен
|
|||
29
dimm7310
26.03.12
✎
17:49
|
(25) да, основные реквизиты справочника партнеры и табличная часть этого справочника с отбором по типу контактной информации
|
|||
30
dimm7310
26.03.12
✎
17:50
|
просто нужно было вытащить телефон в форму списка (а он в табличной части этого справочника)
|
|||
31
5 Элемент
26.03.12
✎
17:51
|
Версию платформы скажи
|
|||
32
dimm7310
26.03.12
✎
17:53
|
1С:Предприятие 8.2 (8.2.15.294)
|
|||
33
Cmyk32
26.03.12
✎
17:53
|
//У формы списка
&НаКлиенте Процедура СписокПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа) Отказ = Истина; ОткрытьФорму("Справочник.Партнеры.Форма.ПомощникНового",Новый Структура("ЗаголовокФормыВладельца",ЭтаФорма.Заголовок),ЭтаФорма); КонецПроцедуры //У формы элемента &НаКлиенте Процедура ПослеЗаписи(ПараметрыЗаписи) Оповестить("Записан"); КонецПроцедуры //У формы списка &НаКлиенте Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) Если ИмяСобытия = "Записан" тогда Элементы.Список.Обновить(); КонецЕсли; КонецПроцедуры |
|||
34
dimm7310
26.03.12
✎
18:21
|
у меня сейчас уже нервный тик начнется
Форма элемента в ПослеЗаписи не заходит (проверял через отладчик), видимо потому, что заполнение идет через ПомощникНового. В форме ПомощникНового нет процедуры ПослеЗаписи, поэтому пока поробовал: &НаКлиенте Процедура ПриЗакрытии() Оповестить("Записан"); КонецПроцедуры но не заходит в процедуру моей формы списка //У формы списка &НаКлиенте Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) Если ИмяСобытия = "Записан" тогда Элементы.Список.Обновить(); КонецЕсли; КонецПроцедуры |
|||
35
dimm7310
26.03.12
✎
18:22
|
т.е. ОбработкаОповещения
не вызывается |
|||
36
dimm7310
26.03.12
✎
18:30
|
может нужно мою новую форму списка где-то прописывать, что бы на нее оповещения распространялись ?
|
|||
37
Cmyk32
26.03.12
✎
18:34
|
(36) Не надо, только в свойствах формы должна быть привязка к обработчику оповещения
|
|||
38
dimm7310
26.03.12
✎
19:25
|
(37) Да именно это и не было сделано
Все большое спасибо |
|||
39
experimentator76
26.03.12
✎
20:33
|
предопределенные процедуры лучше руками не прописывать
накалывался несколько раз - было "весело" |
|||
40
ilpar
26.03.12
✎
21:01
|
та же тема, только другое направление вопроса:
Есть возможность при записи элемента, чтоб форма динамического списка обновилась у все(исключая автообновлене списка)? |
|||
41
ilpar
26.03.12
✎
21:02
|
(40) всех пользователей
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |