|
Непонятно работает обработчик "ПриВыводеСтроки" |
☑ |
0
mzelensky
06.09.11
✎
12:06
|
Всем доброго!
Имеется обработка, на ее форме лежит табличная часть (ТЧ). У этой ТЧ установлен обработчик "ПриВыводеСтроки". На сколько я знаю, этот обработчик срабатывает в момент перерисовки ТЧ. СП :
ТабличноеПоле (TableBox)
ПриВыводеСтроки (OnRowOutput)
Синтаксис:
ПриВыводеСтроки(<Оформление строки>, <Данные строки>)
Параметры:
<Оформление строки>
Тип: ОформлениеСтроки. Содержит оформление строки (шрифт, цвет) и коллекцию оформлений ячеек.
<Данные строки>
Данные выводимой строки. Параметр соответствует свойству ТекущиеДанные для выводимой строки.
Описание:
Возникает при выводе строки в табличном поле. В процедуре-обработчике события допускается изменение оформления как строки в целом, так и каждой ячейке в отдельности.
Т.е., как я понимаю - вывели в ТЧ 50 строк (из них видимых ток 20), обработчик вызовится 20 раз и остановится. крутнешь колесико, вызовится еще 20 раз и т.д.
теперь вопрос - почему обработчик может вызываться ПОСТОЯННО, т.е. вывода в тч нет, никаких действий не произвожу, а обработчик крутится постоянно.
|
|
1
Шапокляк
06.09.11
✎
12:08
|
Например, если в процессе своей работы он что-то перезаписывает в строках. Происходит перерисовка, опять срабатывает и так до бесконечности
|
|
2
mzelensky
06.09.11
✎
12:09
|
(1) т.е. если я в этом обработчике меняю какие-то данные, то это вызывает новую перерисовку и она получается уходит в рекурсию?!
|
|
3
Wobland
06.09.11
✎
12:17
|
(2) а почему бы и нет (хотя, хз)? данные в таком странном месте менять - это ж додуматься ещё надо
|
|
4
mzelensky
06.09.11
✎
12:25
|
(3) ничего странного! И кстати в типовых механизмах сделано именно так! Если откроешь стандартный подбор номенклатуры в УТ (10.3), то увидишь ,что ОСТАТКИ номенклатуры рассчитываются не сразу для ВСЕГО, а именно для тех позиций, которые выведены пользователю на экран!
Я же делаю в этом обработчике заполнение ЦЕНЫ номенклатуры, т.к. рассчитывать ее постоянно для 20 строк гораздо более быстрее чем сразу для нескольких десятков-сотен!
|
|
5
Фокусник
06.09.11
✎
12:36
|
(4) Не тупи: вывести текст (как это сделано в подборе) и ПОМЕНЯТЬ данные (приводит к повторному получению данных - выводу строки и т.д. рекурсия) - разные вещи.
|
|
6
mzelensky
06.09.11
✎
13:08
|
(5) +100 верно!
А я чет и забыл про "УстановитьТекст" - с ним перерисовка не вызывается
|
|
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой