Имя: Пароль:
1C
1С v8
Не обновляется динамический список ПриАктивизацииСтроки()
, ,
0 Darhon
 
07.07.15
11:19
Здравствуйте. Помогите горюшку моему - всю голову поломал уже.
Платформа 8.3.6.2041 в режиме совместимости с 8.3.5.
Есть форма списка справочника Карт клиента, рядом динамический список куда должны отбираться документы зачислений на эту карту. При активизации строки списка справочника, должен обновляться динамический список, содержажий документы по карте клиента.


&НаКлиенте
Процедура СписокПриАктивизацииСтроки(Элемент)
    ОбщегоНазначения.УстановитьЭлементОтбораДинамическогоСписка(Зачисления, "Карта",Элементы.Список.ТекущаяСтрока, ВидСравненияКомпоновкиДанных.Равно);
    Элементы.СписокЗачислений.Обновить();
КонецПроцедуры

Проблема в том, что при активизации строки справочника ничего не происходит в динамическом списке, но стоит только поменять сортировку одной из колонок динамического списка, просто щелкнув по ее заголовку, значения появляются. Обновить в коде не срабатывает. В отладчике видно что в список значения попадают, просто ен отображаются на форме. Заранее спасибо.
1 butterbean
 
07.07.15
11:22
из СП:
В обработчике данного события нельзя использовать серверные методы формы с директивой компиляции &НаСервере.
2 Darhon
 
07.07.15
11:24
хм...все отрабатывает, обновление визуально информации происходит только после того как щелкнешь на заголовке какого либо поля в динамическом списке. То есть процедура УстановитьЭлементОтбораДинамическогоСписка отрабатывает.
3 Darhon
 
07.07.15
11:46
Товарищи, неужели никто не поможет?)
4 Дык ё
 
07.07.15
11:56
(3) попробуй костыль с обработкой ожидания
5 Сниф
 
07.07.15
11:58
похоже ответ в (1)

обойти, наверное, можно по-разному, мне в голову пришел самый тупой способ:

Процедура СписокПриАктивизацииСтроки(Элемент)
    Однократно = Истина;
    ПодключитьОбработчикОжидания("Ожидалка", 0.1, Однократно);
КонецПроцедуры

Процедура Ожидалка()
ОбщегоНазначения.УстановитьЭлементОтбораДинамическогоСписка(Зачисления, "Карта",Элементы.Список.ТекущаяСтрока, ВидСравненияКомпоновкиДанных.Равно);
    Элементы.СписокЗачислений.Обновить();
КонецПроцедуры
6 Darhon
 
07.07.15
12:02
&НаКлиенте
Процедура СписокПриАктивизацииСтроки(Элемент)
     СписокКартАктивацияСтроки();
    //Зачисления.ДинамическоеСчитываниеДанных
    Элементы.СписокЗачислений.Обновить();
КонецПроцедуры

&НаСервере
Процедура СписокКартАктивацияСтроки()
    ОбщегоНазначения.УстановитьЭлементОтбораДинамическогоСписка(Зачисления, "Карта",Элементы.Список.ТекущаяСтрока, ВидСравненияКомпоновкиДанных.Равно);
КонецПроцедуры

Как ни странно сработало вот в таком виде.  Разъясните почему, плиз. Все равно же вызываю обработчик с директивой Насервере
7 Kiks
 
07.07.15
12:03
А список обновляешь на клиенте
8 Darhon
 
07.07.15
12:06
(7) Это весь код формы :) справочника. Да на клиенте.
9 mikecool
 
07.07.15
12:15
1) Использовать в ДС параметр
2) При активизации строки устанавливать значение параметра
профит
10 Сниф
 
07.07.15
12:16
(6) а я бы всё равно сделал с Обработкой ожидания) Представляешь, сколько ненужных действий придется выполнять 1С, если пользователь будет перемещать курсор не мышкой, а стрелками вверх-вниз чтобы добраться до нужной позиции.
11 mikecool
 
07.07.15
12:22
12 Darhon
 
07.07.15
12:28
Спасибо, ценные уточнения, скорее всего и будут кнопками листать :)
13 banco
 
07.07.15
12:47
а зачем вообще на сервере устанавливать отбор?
14 Zhuravlik
 
07.07.15
15:17
(0) Дин. список нужно оповещать об изменениях. В СП вроде в расширениях формы подсказка была
15 Zhuravlik
 
07.07.15
15:24
Нет, не в расширении формы. В СП метод ГК "ОповеститьОбИзменении".
Независимо от того, куда вы едете — это в гору и против ветра!