Сброс (очистка) кэша БСП

09.01.25

Разработка - БСП (Библиотека стандартных подсистем)

Сброс кэшированных данных конфигурации, кэшируемых БСП, для того, чтобы код, использующий БСП, увидел изменения, внесенные при разработке

Данная информация, скорее всего, уже доступна в Интернете, но под такими ключевыми словами ее нет.

В очередной раз потратив время на ее поиск, решил исправить это положение.

Описание программной логики приведено для БСП 3.1.7.


БСП кэширует некоторые данные из конфигурации в регистрах сведений ПараметрыРаботыПрограммы (Параметры работы программы) и ПараметрыРаботыВерсийРасширений (Параметры работы версий расширений).
 

 

регистр ПараметрыРаботыПрограммы

регистр ПараметрыРаботыВерсийРасширений

Данные кэша хранятся как ХранилищеЗначения, поэтому в клиенте кроме названий ничего не видно.

Интерфейс работы с кэшем находится в модуле "СтандартныеПодсистемыСервер".

  • Используется через функции "СтандартныеПодсистемыСервер.ПараметрРаботыПрограммы(ИмяПараметра)",
    "СтандартныеПодсистемыСервер.УстановитьПараметрРаботыПрограммы(ИмяПараметра, Значение)"
  • сбрасывается при старте клиента функцией "РегистрСведений.ПараметрыРаботыПрограммы.МодульМенеджера.ЗагрузитьОбновитьПараметрыРаботыПрограммы()",
    опосредованно вызываемой из "ПередНачаломРаботыСистемы".
    В качестве публичного интерфейса при этом заявляется процедура "СтандартныеПодсистемыСервер.ОбновитьВсеПараметрыРаботыПрограммы()".
  • Кэш расширений зачем-то непрозрачно отделен от "основного".
    • Используется через "СтандартныеПодсистемыСервер.ПараметрРаботыРасширения(ИмяПараметра, БезУчетаВерсииРасширений = Ложь, [вых] УжеИзменен = Неопределено)",
      "СтандартныеПодсистемыСервер.УстановитьПараметрРаботыРасширения(ИмяПараметра, Значение, БезУчетаВерсииРасширений = Ложь)"
    • Сбрасывается, по-видимому, через "ОбновитьПараметрыРаботыРасширений", вызываемые из регламентного задания и формы "Расширения" БСП
    • В результате, в БСП можно видеть код, обходящий эту непрозрачность; см. напр. "ВариантыОтчетовПовтИсп.Параметры()", "ВариантыОтчетов.УстановитьПризнакЗаполненияПредставлений()"
  • Значения кэша расширений привязываются, кроме идентификатора, к "версии расширений" из Справочник.ВерсииРасширений", который заполняется в "ВерсииРасширений.МодульМенеджера.ЗарегистрироватьИспользованиеВерсииРасширений(ПриПервойУстановкеПараметровСеанса = Ложь)", вызываемой из ряда мест, в т.ч. "СтандартныеПодсистемы.УстановкаПараметровСеанса", вызываемой из модуля сеанса.
    • Ключом является строковое представление множества (Соответствия вида {Ключ,Истина)) из: название + версия + хеш + область действия расширения (см. "ОбщаяФорма.Расширения.ИдентификаторыРасширений" и СП "РасширениеКонфигурации")
  • Значение же кэша основной конфигурации привязывается только к "Метаданные.Версия" (версия основной конфигурации): игнорируется (возвращается Неопределено), если текущая версия не совпадает с записанной (см. "ПараметрыРаботыПрограммы.МодульМенеджера.УстановитьПараметрРаботыПрограммы" и "ПараметрыРаботыПрограммы.МодульМенеджера.ПараметрРаботыПрограммы")
  • Параметр запуска клиента "РежимОтладки" (который используется другой логикой БСП) никак не влияет на работу кэша

Т.о. при разработке

  • при любом обновлении расширения кэш расширений (ПараметрыРаботыВерсийРасширений) слетает, логика видит изменения.
  • Но: это никак не отражается на основном кэше (ПараметрыРаботыПрограммы), если не изменена версия основной конфигурации

А, как видно из иллюстраций выше, только некоторые параметры код БСП помещает в кэш расширений.


Для сброса кэша необходимо удалить соотв. записи регистра ПараметрыРаботыПрограммы (Параметры работы программы):

  1. Открыть форму списка "Параметры работы программы" через "функции для технического специалиста"
  2. Выбрать "Еще -> Включить возможность редактирования"
  3. Выбрать нужные записи -> ПК -> Удалить
  4. Перезапустить клиент, если параметры относятся к подсистеме, кэширующей их также через "повторное использование возвращаемых значений"
    (напр. ВариантыОтчетов, см. "ВариантыОтчетовПовтИсп.Параметры()")

кэш БСП очистка

См. также

БСП (Библиотека стандартных подсистем) Программист Платные (руб)

Синтакс-помощник БСП - cправочник по библиотекам стандартных подсистем и электронных документов. В состав справочника входит описание экспортных процедур и функций, размещенных в областях кода ПрограммныйИнтерфейс БСП и БЭД.

1800 руб.

21.11.2024    3630    16    15    

18

БСП (Библиотека стандартных подсистем) Программист Платформа 1С v8.3 Бесплатно (free)

Расскажу, как использовать полезный функционал - инструментарий разработчика «1С:Библиотека стандартных подсистем» (БСП) в своих объектах метаданных. Статья будет полезна как шпаргалка при написании собственных объектов метаданных.

27.12.2024    3429    PROSTO-1C    15    

43

БСП (Библиотека стандартных подсистем) Программист Бесплатно (free)

Синтакс-помощник БСП - справочник по Библиотеке Стандартных Подсистем, профессиональный инструмент разработчика с интуитивно понятным интерфейсом. Читайте в статье как использовать все возможности справочника и сделать работу с БСП более комфортной и эффективной.

11.12.2024    3897    gorenski    0    

8

БСП (Библиотека стандартных подсистем) Менеджеры внешних отчетов Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление холдингом Абонемент ($m)

За последние лет 5 несколько раз сталкиваюсь с проблемой на разных проектах (в конфигурациях 1С:ERP, 1С:ERP УХ и многих других, основанных на БСП), когда много пользователей (около 30 тысяч) в информационной базе, время добавления доступа для пользователей занимает значительное время. Открытие списка занимает от 10 до 15 секунд, и каждое изменение списка еще примерно столько же.

1 стартмани

10.12.2024    992    Iaskeliainen    2    

7

БСП (Библиотека стандартных подсистем) Программист Платформа 1С v8.3 Бесплатно (free)

Некоторые нюансы, если вы захотите создавать свои расширения. Доработка отчета "Связанные документы" для отражения документов расширения. Печатные формы с шаблоном Word.

20.11.2024    3317    milkers    3    

12

БСП (Библиотека стандартных подсистем) Программист Платформа 1С v8.3 Бесплатно (free)

В статье описан алгоритм для включения документа или справочника в систему БСП. Будет полезно программистам 1С, начинающим работать с БСП.

24.10.2024    1674    PROSTO-1C    0    

18

БСП (Библиотека стандартных подсистем) Работа с интерфейсом Программист Платформа 1С v8.3 Бесплатно (free)

В материале описан универсальный механизм работы с добавленными элементами на общую форму «ФормаОтчета». Думаю, облегчит работу многим разработчикам.

08.10.2024    1371    PROSTO-1C    4    

14
Отзывы
3. Созинов 09.01.25 06:40 Сейчас в теме
(2) Добрый день! Немного душноты.
Разработка обработчиков обновления - здесь есть описание, для чего нужен регистр и как можно запустить обработчики без обновления версии конфигурации .

Есть обработка в поставке БСП Обновление вспомогательных данных - см. процедуру ВыполнитьОбновлениеНеразделенныхДанных и другие.

В целом обработка решает проблему обновления "кэша" в конфигурациях с БСП.
Xershi; native-api; +2 Ответить
Остальные комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Xershi 1557 31.12.24 22:29 Сейчас в теме
Материал интересный, но не ясно для чего вам это понадобилось?
X509RU; BurlakovIvan; BigB; +3 Ответить
4. native-api 5 09.01.25 10:29 Сейчас в теме
(1) В кэш ПараметрыРаботыПрограммы попали некоторые данные, возвращаемые разрабатываемым мной кодом. Пока я вручную не сброшу кэш, логика БСП не видит изменения.

В моем конкретном случае в кэш попал результат вызова "Отчет.<Мой отчет>.МодульМенеджера.НастроитьВариантыОтчета()". Для сброса нужно удалять запись "ПараметрыРаботыПрограммы -- СтандартныеПодсистемы.ВариантыОтчетов".
6. Xershi 1557 09.01.25 18:17 Сейчас в теме
(4) вспомнил как-то тоже делал подобное, точнее задача подобного рода была. Но там типовым кодом всё было. Вам уже даже пример набросали.
2. frkbvfnjh 808 03.01.25 06:45 Сейчас в теме
Меня больше интересует зачем вообще все это придумали в БСП? Что там храниться и что ускоряет? Одни проблемы из-за этого. При каждом добавлении и изменении метаданных приходится с бубном танцевать. Есть вообще официальная документация на ИТС как в бубен бить при доработке? Или типовые запрещено дорабатывать?
3. Созинов 09.01.25 06:40 Сейчас в теме
(2) Добрый день! Немного душноты.
Разработка обработчиков обновления - здесь есть описание, для чего нужен регистр и как можно запустить обработчики без обновления версии конфигурации .

Есть обработка в поставке БСП Обновление вспомогательных данных - см. процедуру ВыполнитьОбновлениеНеразделенныхДанных и другие.

В целом обработка решает проблему обновления "кэша" в конфигурациях с БСП.
Xershi; native-api; +2 Ответить
7. Xershi 1557 09.01.25 18:20 Сейчас в теме
(2) как для чего. Вы выпускаете обновления и вам нужно поменять логику. Не будете же вы каждому клиенту ставить все руками и перепроверить всё ли не забыли. Вот и нужно кое-что кеширировать. Итог обновление накотили нужный код отработал. А если криво накатили не отработает. Для этого и делается всё.
5. Serg82 09.01.25 13:45 Сейчас в теме
номер версии изменяешь и само все обновляется
8. native-api 5 10.01.25 12:38 Сейчас в теме
(5) При каждой правке кода это делать -- через пару часов проклянешь всё на свете.
И мои доработки в расширениях, основную конфигурацию я вообще не трогаю насколько возможно.
Оставьте свое сообщение