|
Активизация строки динамического списка | ☑ | ||
---|---|---|---|---|
0
SpellKeeper
02.08.19
✎
12:11
|
Добрый день.
У таблиц УФ есть одна гадкая особенность. Событие ПриАктивизацииСтроки отрабатывает только при изменении индекса строки на таблице формы. Поэтому в некоторых случаях событие не вызывается вообще. И не важно, что к ней подключено ДС или таблица значений. Я делаю достаточно большие аналитические формы, где из исходного ДС должны просчитаться некоторые данные и установиться отборы еще в нескольких ДС на форме. На форме есть исходный список, от которого все пляшет. Для этого ДС нужно использовать и отборы и поиск. И вот тут сидит засада. Текущая строка списка меняется только если ее сдвинуть принудительно, или если после обновления ДС количество строк стало меньше. Тогда текущая строка автоматом переходит на позицию 1. Событие при этом возникает. А вот если строка не сдвинулась, то события не будет. Особенная трагедия, если у вас изначально активна первая строка. При заполнении списка событие отработало и установились дополнительные данные на форме. Дальше делаете любое изменение состава списка (отбор, поиск и пр.). Данные в строке 1 исходного списка изменятся, а вот дополнительные реквизиты на форме, которые берут данные из этого списка или отборы других ДС не поменяются, т.к. события ПриАктивизацииСтроки не будет. Получается, что нужно отлавливать событие изменения списка. Но и тут засада. У таблицы ДС есть событие ОбработкаЗапросаОбновления. Но оно для мобильного приложения. Есть событие ПриПолученииДанныхНаСервере. Но опять есть нюанс. Эта процедура отрабатывает под директивой НаСерверБезКонтекста. Т.е. на форму из нее ничего передать нельзя. Судя по форуму, народ с этой бедой борется с самого начала УФ. И в лучшем случае придуманы костыли с обработчиком ожидания, которые отрабатывают лишь в некоторых случаях. Может у кого есть какие идеи? |
|||
1
PiotrLoginov
04.08.19
✎
19:34
|
>>Дальше делаете любое изменение состава списка (отбор, поиск и пр.)
и не отработало "ПриАктивизацииСтроки"? Ок, верю на слово, хотя ссылки на соответствующие темы на форуме не помешали бы. Ну так делая "изменение состава", можно же дернуть необходимые методы вместо того, чтобы дергать их обработчиком события "ПриАктивизацииСписка". Думаю, стоит набросать какую-то гипотетическую форму, где эту проблему можно наблюдать. И с помощью этой формы, консультируясь с коллегами, например, на этом форуме, найти какое-то универсальное решение. Идеи будут, когда будут ссылки и готовая форма. |
|||
2
palsergeich
04.08.19
✎
21:16
|
Архитектурная ошибка.
Надо не при активизации строки что то сказать в кеш, а при событии обращаться к текущей строке и получать ее данные. Ибо как было правильно замечено - при активизации работает не всегда. |
|||
3
palsergeich
04.08.19
✎
21:16
|
На сколько я помню в ОФ это тоже так.
|
|||
4
palsergeich
04.08.19
✎
21:23
|
Обработчики ожидания кстати совсем для другого придуманы
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |