Задать вопрос
@Aricus

Как сбросить кеш из скрипта в 1с-битрикс?

Мне нужно в скрипте сбросить кеш, желательно только кеш каталога. Если конкретно, импортируется количество товаров, и нужно, чтобы в каталоге отображалось актуальное значение. "Очистка файлов кеша" в админке для этого работает. Пока пробую в командной PHP-строке разные способы.
require($_SERVER["DOCUMENT_ROOT"]."/local/php_interface/s1/init.php");
CModule::IncludeModule('catalog');
if (class_exists('\Bitrix\Main\Data\ManagedCache')) {
    (new \Bitrix\Main\Data\ManagedCache())->cleanAll();
    echo 1;
}

if (class_exists('\CStackCacheManager')) {
    (new \CStackCacheManager())->CleanAll();
    echo 2;
}

if (class_exists('\Bitrix\Main\Data\StaticHtmlCache')) {
    \Bitrix\Main\Data\StaticHtmlCache::getInstance()->deleteAll();
    echo 3;
}

Выдало '123', то есть все классы были найдены, а скрипт отработал без ошибок. При этом на странице каталога всё ещё отображаются устаревшие данные, то есть кеш не сбросился. Также пробовал ещё несколько способов из интернета, ничего не работает. Что я упускаю?
  • Вопрос задан
  • 227 просмотров
Подписаться 2 Простой Комментировать
Решения вопроса 1
@Aricus Автор вопроса
Если кому интересно, сработали эти два метода:
if (method_exists('\CIBlock', 'clearIblockTagCache')) {
	\CIBlock::clearIblockTagCache(1); // Где 1 - id инфоблока
} else {
	BXClearCache(true);
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы