8.3.12.ХХХ. УФ. Динамический список. Поиск. При активизации строки
После проведения обновления произошло следующее.
После окончания поиска через штатный механизм и при результате поиска в 1 (одну) строку, событие не происходит. и как следствие не выполняются необходимые строки кода.
На релизе 8.3.8.ХХХ всё работало.
Собственно вопрос: Почему не срабатывает событие, после осуществления поиска по кнопке "Поиск", на форме в динамическом списке документов?
И вдогонку: Почему на более старом релизе всё работало нормально?
После окончания поиска через штатный механизм и при результате поиска в 1 (одну) строку, событие не происходит. и как следствие не выполняются необходимые строки кода.
На релизе 8.3.8.ХХХ всё работало.
Собственно вопрос: Почему не срабатывает событие, после осуществления поиска по кнопке "Поиск", на форме в динамическом списке документов?
И вдогонку: Почему на более старом релизе всё работало нормально?
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2)С тоской вспоминаю OnClick, OnActivate, OnDoubleClick, OnEnter, OnKeyDown для объекта ....... C++ Builder
Эта история с продолжением:
В отладчике происходит двойной вызов, а именно. Сначала событие срабатывает для формы в целом, затем для активного элемента формы и при этом запросы формирующие зависимые динамические списки получают устаревший параметр (от ранее сделанного выбора). В итоге, зависимые списки отображают информацию для строки предыдущего выбора, когда отображался список без фильтра по поиску. Но самое интересное при выполнении строк изменяющих параметры запросов зависимых списков получают верную информацию, просто она игнорируется платформой.
В итоге получаем следующее:
При использовании поиска в динамическом списке, платформа игнорирует выполнение запросов и обновление информации в зависимых от выбранного значения ведущего списка.
P.S. Ради интереса повесил обработку события "ПриАктивацииСтроки" на все динамические списки отображенные на форме. Итог удручающий. При использовании формы поиска отрабатывают все события независимо от активного элемента формы относительно которого работает поиск. Бред.
Ах да, еще наблюдение: Последовательность такова - Сначала форма вызывает событие активного элемента формы, затем сам элемент и потом все элементы формы у которых задействовано данное событие по очереди отрабатывают своё событие - "ПриАктивацииСтроки".
Платформа? Что я делаю не так? Звезды?
Целый день потерял на решение проблемы. Уже повесил принудительно Обновить() для списков - пофигу.
Эта история с продолжением:
В отладчике происходит двойной вызов, а именно. Сначала событие срабатывает для формы в целом, затем для активного элемента формы и при этом запросы формирующие зависимые динамические списки получают устаревший параметр (от ранее сделанного выбора). В итоге, зависимые списки отображают информацию для строки предыдущего выбора, когда отображался список без фильтра по поиску. Но самое интересное при выполнении строк изменяющих параметры запросов зависимых списков получают верную информацию, просто она игнорируется платформой.
В итоге получаем следующее:
При использовании поиска в динамическом списке, платформа игнорирует выполнение запросов и обновление информации в зависимых от выбранного значения ведущего списка.
P.S. Ради интереса повесил обработку события "ПриАктивацииСтроки" на все динамические списки отображенные на форме. Итог удручающий. При использовании формы поиска отрабатывают все события независимо от активного элемента формы относительно которого работает поиск. Бред.
Ах да, еще наблюдение: Последовательность такова - Сначала форма вызывает событие активного элемента формы, затем сам элемент и потом все элементы формы у которых задействовано данное событие по очереди отрабатывают своё событие - "ПриАктивацииСтроки".
Платформа? Что я делаю не так? Звезды?
Целый день потерял на решение проблемы. Уже повесил принудительно Обновить() для списков - пофигу.
(4) Танец с бубном. Еще одно наблюдение.
Сработал фильтр, вернул три строки, переключаюсь между строками, в зависимых списках изменений нет, событие отрабатывается, параметр передается правильный. Это мохнатый зверек какой-то.
Сейчас: При фильтрации строк по значению и переключению между строками результата событие "ПриАктивацииСтроки" отрабатывает передавая значение в параметр зависимого списка, но видимых изменений не происходит.
Аллё, это телевидение? У меня тут привидение.
Сработал фильтр, вернул три строки, переключаюсь между строками, в зависимых списках изменений нет, событие отрабатывается, параметр передается правильный. Это мохнатый зверек какой-то.
Сейчас: При фильтрации строк по значению и переключению между строками результата событие "ПриАктивацииСтроки" отрабатывает передавая значение в параметр зависимого списка, но видимых изменений не происходит.
Аллё, это телевидение? У меня тут привидение.
(4)
(2)
Коллеги, нашел решение. Называется "Достать через одно место гланды".
1. Ввел глобальную переменную мТрям
2. В процедуре события ввел такое условие:
В следствии этих изменений всё заработало, т.е. в отфильтрованном ведущем списке стали перезаполняться зависимые. Этим условием я предотвращаю двойной вызов события, что, как оказалось на практике, катастрофически влияет на работоспособность.
Всем спасибо. Всем удачи.
(2)
Коллеги, нашел решение. Называется "Достать через одно место гланды".
1. Ввел глобальную переменную мТрям
2. В процедуре события ввел такое условие:
Если НЕ мТрям = Элементы.Список.ТекущаяСтрока Тогда
мТрям = Элементы.Список.ТекущаяСтрока;
ОбновитьСодержимоеПодчиненныхСписков();
КонецЕсли;
В следствии этих изменений всё заработало, т.е. в отфильтрованном ведущем списке стали перезаполняться зависимые. Этим условием я предотвращаю двойной вызов события, что, как оказалось на практике, катастрофически влияет на работоспособность.
Всем спасибо. Всем удачи.
присоединяюсь к вопросу, на дворе 2023 версия платформы 8.3.19.1959, на других пока не проверял. Есть список при текстовом поиске если указатель до выполнения поиска стоит на первой строке событие при активизации строки не срабатывает на отобранном, если на второй и последующей то все ок. как обойти?
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот