Имя: Пароль:
1C
1С v8
Интересное поведение активной строки динамического списка
,
0 IamAlexy
 
26.01.12
22:11
Имеем:

динамический список - например на форме списка документа счет на оплату покупателю

+

таблица значений на этой же форме в которой отображается содержимое текущго счета.

изначально хотелось так: при активизации строки получать данные из табличной части документа и загружать их в ТЗ.
(типа как  в списке операций проводки показываются)

а в управляемом режиме получается так:
активизируем строку -> заполняем ТЗ и зачем то снова срабатывает "приактивизациистрки" и сновазаполняет ТЗ и так по кругу...
причем повторно активизируется верхняя строка динамического списка...


отсюда вопрос: какого фига это происходит и как  сэтим бороться?
1 IamAlexy
 
26.01.12
22:14
пля.. я так и думал.
постаринке, без обработчика ожидаиня непроканает...

эхх
2 Азат
 
26.01.12
22:27
баян так-то
заюзай переменную, запоминай в ней значение текущей строки и если оно не изменилось, то возврат...


ЗЫ. У Чистова в вебинаре было
3 IamAlexy
 
26.01.12
22:33
(2)так оно меняется то :)
в том то и прикол...
4 IamAlexy
 
26.01.12
22:33
(2) в динамическом списке она после заполнения ТЗ меняется на первую строку..
5 Ns33
 
27.01.12
01:03
Сделал в тестовой базе нечто подобное, почему-то работает без зацикливания. Хотя вроде с таким сталкивался, решение, как выше сказали - хранить ТекущуюСтроку.

Единственное, я бы сделал не ТЗ, а динамический список с запросом по ТЧ, и у такого списка надо очистить "Основная таблица".

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

&НаКлиенте
Процедура СписокПриАктивизацииСтроки(Элемент)
   ДинСписокТЧ.Параметры.УстановитьЗначениеПараметра("Ссылка",Элементы.Список.ТекущаяСтрока);
   ЗаполнитьТЗ(Элементы.Список.ТекущаяСтрока);
КонецПроцедуры
6 IamAlexy
 
27.01.12
01:06
(5) в том то и дело что основная таблицаполюбому нужна

в итоге сделал просто 2 динсписка с параметром и обработкой ожидания - рабоатет просто супер..
7 IamAlexy
 
27.01.12
12:15
бгыыыыыыыыыыыыыыыыыыыыыы

теперь и эта схема перестала работать..
нуепвашумат...
8 Stepa86
 
27.01.12
12:19
в БСП через обработчик ожидания с 0.1 задержкой сделано. Если при активации строки не лазить на сервер, то переактивация не произойдет
9 acsent
 
27.01.12
12:23
Это фича. При любом изменении формы вновь отробатыает при активизации строки
http://partners.v8.1c.ru/forum/thread.jsp?id=751564#751564
1С рекомендует (2)
10 acsent
 
27.01.12
12:23
При любом изменении формы требующем вызов сервера (явный или неявный)
11 Mort
 
27.01.12
14:19
ТЧ документа из Дин списка на просмотр можно и без пляски с бубном и без кодирования вообще вывести.
12 Mort
 
27.01.12
14:24
+(11) И сделать это можно двумя способами, первый приводит к предварительному чтению таб частей, второй читает ТЧ (а прочтенное значение даже кэширует) каждый раз по выбранному доку. Второй метод требует три строки кода и 1 реквизит. Первый практически ничего.