Кэширование значений в модуле формы (УФ)

В этой статье рассмотрим такое интересный механизм как кэширование значений в модуле формы при создании на сервере.

Это решение я нашел работая в новой для себя конфигурации 1с “Бит Финанс (на БП 3.0)” на управляемых формах. Суть его в том что один раз заполнив контейнер необходимыми нам значениями мы в дальнейшем обращаемся к ним без всяких лишних вызов сервера, либо каких других трудоемких вычислений. Так же на мой взгляд такой код выглядит более структурированным и читабельным.

Для примера возьмем совсем простую обработку с возможно бессмысленным алгоритмом. На форме у нас есть реквизит “Событие” – это ссылка на документ и кнопка “ЧтоТоСделать” – команда формы. В модуле форме написан код, которые меняет комментарий у нашего документа в зависимости от каких то условий:

Форма обработки (рис. 1)

Сразу можно заметить что каждый раз при выполнении команды “ЧтоТоСделать” у нас идут лишние телодвижения с чтением постоянных значений из базы данных:

Лишние вызовы (рис. 2)

Вот эти значения мы как раз и сохраним для последующих запросов (закэшируем).

Добавил на форму реквизит “фКэшЗначений” с типом значения “Произвольный” и создадим процедуру на сервере “ЗаполнитьКэшЗначений“, в которой запишем наши постоянные значения в структуру, и сделаем её вызов из процедры “ПриСозданииНаСервере“:

Реквизит формы “фКэшЗначений” (рис. 3)

В результате чего у нас только один раз при создании формы произойдут все необходимые вызовы для фиксации наших значений и в дальнейшем нам останется просто использовать их в нужных местах:

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

2+
Всегда в наличии fredser.ru по низкой цене, со скидками.

2 комментария

  1. татарин

    спасибо

    1+
  2. Голлум

    Именно то, что я искал.

    1+

Оставить комментарий

Ваш адрес email не будет опубликован.