OneS
OneS copied to clipboard
Прошу реализовать точечный сброс всех кэшей по ссылке объекта БД
https://partners.v8.1c.ru/forum/topic/2172509 Рассмотрит типы кэшей платформы, ключами в которых выступают ссылки:
- кэш результатов общих модулей (повторно используемых возвращаемых значений), где ссылка может быть в самом параметре и внутри структуры в параметре. Можно сбросить только полностью методом ОбновитьПовторноИспользуемыеЗначения(). Максимальное время неактуальности - 20 минут
- объектный кэш (внетранзакционный, транзакционный) https://its.1c.ru/db/pubdevguide83#content:304:hdoc . Явный сброс не предусмотрен. Максимальное время неактуальности - 20 секунд.
- кэш представлений ссылок (внетранзакционный, транзакционный) https://its.1c.ru/db/pubdevguide83#content:304:hdoc . Можно сбросить точечно на клиенте методом ОповеститьОбИзменении(Ссылка). Максимальное время неактуальности - 20 секунд.
- кэш данных через точку. Можно сбросить точечно на клиенте методом ОповеститьОбИзменении(Ссылка). Максимальное время неактуальности - 20 секунд
- кэш данных быстрого выбора . Можно сбросить точечно на клиенте методом ОповеститьОбИзменении(Ссылка). Максимальное время неактуальности - ?
- кэш ограничений по типу. Можно сбросить точечно на клиенте методом ОповеститьОбИзменении(Ссылка). Максимальное время неактуальности - ?
Из этого списка видно, что
- Нет достаточно универсального доступного на сервере точечного способа сбросить все кэши по ссылке
- Есть как минимум один тип кэша (кэш результатов общих модулей), который может очень долго использовать неактуальные данные.
Часто после записи ссылочного объекта в текущем сеансе программа продолжает использовать его старые данные. Происходит это потому, что сначала данные объекта попадают в различные кэши, а затем после его записи они не сбрасываются. Вот пример для объектного кэша https://www.hostedredmine.com/issues/948225
Поэтому прошу сделать в платформе
- При записи объекта сброс всех кэшей по ссылке в текущем сеансе должен вызываться автоматически на сервере и при первой возможности на клиенте.
- Добавить серверный метод СброситьКэшиПоСсылкам(Ссылки) для явного такого сброса кэшей. Этот метод должен вызываться платформой автоматически из существующего метода платформы ОповеститьОбИзменении(Ссылка).
Кстати с учетом будущих оповещений клиента с сервера в 8.3.26 с этим методом можно будет при записи каких то важных объектов оперативно обновлять кэши по ним во всех клиентских сеансах.