Чтобы какая-то страница появилась в композитном кэше, достаточно к ней обратиться. Это может сделать клиентский браузер или поисковый паук. Для PHP достаточно вызвать функцию file_get_contents($URL), и страница с указанным URL окажется в кэше. Если страница уже есть в кэше, и данные изменились, file_get_contents($URL) не обновит, поскольку не будет запущен фоновый AJAX-запрос, у которого 2 функции: 1 - передать содержимое динамических областей 2 - инициализировать сравнение актуальной страницы, сгенерированной в обход кэша с тем, что лежит в кэше и заменить кэш, если данные изменились. Почему так происходит можно наглядно понять, если изучить настройки композита для работы с nginx: https://dev.1c-bitrix.ru/learning/cour...p;LESSO... Если условия применения композита выполняются и существует на диске статический html-файл с кэшем - он просто отправляется клиенту. Никакой дальнейшей проверки не делается. Такой порядок работы как раз и позволяет отдавать страницы мгновенно. Соответственно, ваш скрипт получающий страницу через file_get_contents или другая внешняя система, например, поисковик, действующий аналогичным образом и не выполняющая AJAX-запрос, никогда не смогут получить актуальную версию страницы, если старая есть в кэше и она после изменения данных ни разу не открывалась обычным пользователем в браузере. Для решения этой проблемы можно эмулировать AJAX-запрос. Экспериментально у меня получилось программно выполнить обновление страницы, находящейся в композитном кэше при добавлении в запрос заголовков BX-ACTION-TYPE и BX-CACHE-MODE:
В этом случае результатом выполнения такого запроса будет не код страницы, а JSON ответ с данными динамических областей. Если запрашиваемой страницы в композитном кэше нет, она будет создана и будет также возвращён JSON.
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».