На главную ] Наверх ] Связаться ] Содержание ] Поиск ]


Обновление кэша в форме списка

 

 

На главную
Наверх

Многие программисты используют кэширование вычисляемых полей в форме списка для увеличения скорости просмотра и уменьшения нагрузки. Идея не нова. Но столкнулся я тут с одной специфичной ситуацией.

Есть журнал с некоторым количеством вычисляемых полей. Эти поля при выводе кэшируются. На основании этих полей сотрудница делает некоторые телодвижения и после этих телодвижений эти поля должны меняться. Жать каждый раз на кнопку очистки кэша не интересно. 

Исходя из этого сформировалось ТЗ: Обновлять одну конкретную строчку кэша при проведении некоторых документов в том случае, если при этом открыт определенный журнал документов.

Теперь реализация:

В компоненте 1С++ есть реализация класса менеджер событий. Им и воспользуемся.

  1. В глобальном модуле объявляем 2 глобальные переменные. 
  2. Создаем 2 класса. Один будет генерировать события, другой их обрабатывать. При генерации события в качестве параметра передается документ, из которого генерируется событие. В обработчике событий реализуем процедуру замены информации в кэше.
  3. В глобальном модуле в процедуре "ПриНачалеРаботыСистемы" создаем экземпляры этих двух классов и присваиваем их глобальным переменным.
  4. В форме журнала в процедуре "ПриОткрытии" устанавливаем обработчик событий и передаем ссылку на таблицу кэша в обработчик.
  5. В форме журнала в процедуре "ПриЗакрытии" удаляем обработчик событий
  6. В модулях форм интересующих нас документов в процедуре "ПриЗакрытии" вставляем вызов генератора событий.

Вот, собственно и все.

 

 

На главную ] Наверх ]

Copyright © 2004 Андрей Попов сотоварищи
Last modified: сентября 24, 2004
Сайт управляется системой uCoz