Имя: Пароль:
1C
 
Как узнать причину события при ПриАктивизацииСтроки?
,
0 dwarfadelic
 
14.12.19
17:24
Событие ТабличногоПоля ПриАктивизацииСтроки в ОФ срабатывает когда юзер ткнул мышой по новой строке но плюс ко всему и когда значение контрола загрузилось и изменилось тоже срабатывает. Как внутри обработчика узнать что событие произошло от клика мышой по строке, а не от презагрузки ТЗ?
1 RomanYS
 
14.12.19
17:28
При клике мышкой ещё одно событие должно быть. "Выбор", наверное
2 dwarfadelic
 
14.12.19
17:33
Выбор - это при двойном клике. А у меня одинарный.
3 RomanYS
 
14.12.19
18:03
(2) Да. Был не прав.
Что у тебя в ТП? При обновлении списка документов (например) события не вызываются.

Если у тебя "значение контрола загрузилось" вызывается твоим кодом  - поднимай флаг и при первом событии сбрасывай флаг
4 Cthulhu
 
15.12.19
13:25
"в лоб":
переменную модуля ЭтоОбновлениеТабличногоПоля.
перед загрузкой = Истина (в приоткрытии например) - плюс однократная обработкаожидания процедуры, которая делает ЭтоОбновлениеТабличногоПоля = Ложь
в приактививизации строки - проверять ее значение.
5 dwarfadelic
 
16.12.19
10:01
(4) А если происходит присвоение реквизиту который привязан к данному табличному полю такой номер пройдет?
6 RomanYS
 
16.12.19
10:06
(5) А в чем сомнения? Конечно пройдет
7 dwarfadelic
 
16.12.19
10:51
(6) Попробовал. Да вот ни хрена. То есть если при открытии может и работать будет. Но у меня есть несколько таких тпшек. В одной выбираешь в других изменяется содержимое.
8 Ёпрст
 
16.12.19
10:54
(0) если "оно" перезагрузилось, то ЭлементыФормы.ТвойСписок.ТекущиеДанные = неопределенно, и тебе должно быть пофик, что ПриАктивизацииСтроки сработало, проверяй там ЭТО и привет
9 dwarfadelic
 
16.12.19
11:03
(8) А кто тебе сказал, что оно Неопределено? Пробовал дебажить - там значение текущей строки
10 Ёпрст
 
16.12.19
11:22
(9) храни текущую строку в переменной, и только при ёё смене в ПриАктивизацииСтроки выполняй код заполнения другой тч
11 Ёпрст
 
16.12.19
11:23
а у тебя, ПриАктивизацииСтроки  срабатывает, ибо текущая строка сбрасывается в начало.
12 Ёпрст
 
16.12.19
11:23
при перезаполнении
13 RomanYS
 
16.12.19
11:30
(7) Несколько ТП, значит несколько флагов. Ты же для каждого объекта знаешь, когда он перезагрузился - поднимаешь соответствующий флаг.
14 dwarfadelic
 
16.12.19
11:33
(13) Пока что сделал через очередь событий или типо того. Но не вах как удобно. И глюкавости наличествуют в некоторых ситуациях.
15 dwarfadelic
 
16.12.19
11:35
(11) Так она в любом случае будет изменяться эта текущая строка. Если бы получить какой-то уникальный идентификатор на каждую таблицу и сохранять предыдущий. Может через время.
16 Ёпрст
 
16.12.19
11:36
(15) зачем ?
17 RomanYS
 
16.12.19
11:38
(14) Ну и хорошо. Принципиальных проблем не видно.
(15) Так никто не знает, что у тебя в таблицах и возможен ли там какой-то ключ.
(0) может всё-таки расскажешь, зачем такое нужно? Возможно всё гораздо проще
18 dwarfadelic
 
16.12.19
13:44
(17) Еще ситуация несколько усложняется тем что есть вкладки.
А вещь такая - есть тех дерево слева. Выбираешь - строится дерево посередине. Потом еще дерева справа по объекту. Но кроме этого нужно чтобы когда выбрал элемент одного из таких деревьев и нажал свойства вызывалась обработка для этого элемента. И если переключаешься к другому элементу в дереве чтобы он в этих свойствах появлялся. И так во всех таких деревах