Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Активизация строки динамического списка

Активизация строки динамического списка
Я
   SpellKeeper
 
02.08.19 - 12:11
Добрый день.

У таблиц УФ есть одна гадкая особенность. Событие ПриАктивизацииСтроки отрабатывает только при изменении индекса строки на таблице формы. Поэтому в некоторых случаях событие не вызывается вообще. И не важно, что к ней подключено ДС или таблица значений.
Я делаю достаточно большие аналитические формы, где из исходного ДС должны просчитаться некоторые данные и установиться отборы еще в нескольких ДС на форме.
На форме есть исходный список, от которого все пляшет. Для этого ДС нужно использовать и отборы и поиск. И вот тут сидит засада. Текущая строка списка меняется только если ее сдвинуть принудительно, или если после обновления ДС количество строк стало меньше. Тогда текущая строка автоматом переходит на позицию 1. Событие при этом возникает. А вот если строка не сдвинулась, то события не будет.
Особенная трагедия, если у вас изначально активна первая строка. При заполнении списка событие отработало и установились дополнительные данные на форме.
Дальше делаете любое изменение состава списка (отбор, поиск и пр.). Данные в строке 1 исходного списка изменятся, а вот дополнительные реквизиты на форме, которые берут данные из этого списка или отборы других ДС не поменяются, т.к. события ПриАктивизацииСтроки не будет.
Получается, что нужно отлавливать событие изменения списка. Но и тут засада.
У таблицы ДС есть событие ОбработкаЗапросаОбновления. Но оно для мобильного приложения.
Есть событие ПриПолученииДанныхНаСервере. Но опять есть нюанс. Эта процедура отрабатывает под директивой НаСерверБезКонтекста. Т.е. на форму из нее ничего передать нельзя.
Судя по форуму, народ с этой бедой борется с самого начала УФ. И в лучшем случае придуманы костыли с обработчиком ожидания, которые отрабатывают лишь в некоторых случаях.
Может у кого есть какие идеи?
 
 
   PiotrLoginov
 
1 - 04.08.19 - 19:34
>>Дальше делаете любое изменение состава списка (отбор, поиск и пр.)
и не отработало "ПриАктивизацииСтроки"? Ок, верю на слово, хотя ссылки на соответствующие темы на форуме не помешали бы.
Ну так делая "изменение состава", можно же дернуть необходимые методы вместо того, чтобы дергать их обработчиком события "ПриАктивизацииСписка".

Думаю, стоит набросать какую-то гипотетическую форму, где эту проблему можно наблюдать. И с помощью этой формы, консультируясь с коллегами, например, на этом форуме, найти какое-то универсальное решение.

Идеи будут, когда будут ссылки и готовая форма.
   palsergeich
 
2 - 04.08.19 - 21:16
Архитектурная ошибка.
Надо не при активизации строки что то сказать в кеш, а при событии обращаться к текущей строке и получать ее данные.
Ибо как было правильно замечено - при активизации работает не всегда.
   palsergeich
 
3 - 04.08.19 - 21:16
На сколько я помню в ОФ это тоже так.
   palsergeich
 
4 - 04.08.19 - 21:23
Обработчики ожидания кстати совсем для другого придуманы

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.