Перейти к содержимому
RootPoligon

Поменял шаблон Битрикса, а ничего не изменилось

Чтение и практика ~12 мин

Вы добавили дату в карточку новости, сохранили файл и обновили страницу. Всё по-старому. Коллега советует очистить кеш. Иногда это помогает. Иногда вы просто стираете полезный след и продолжаете править файл, который вообще не используется.

Ниже порядок проверок. Учебный пример синтетический: это не запись эксперимента на запущенной CMS. Названия пунктов панели и доступные действия проверяйте в своей версии.

1. Убедиться, что смотрим туда

Запишите точный адрес страницы, домен и окружение. Сравните их с местом, куда загружаете файл. Типичная ловушка: редактировать тестовый сайт, а обновлять рабочий. Ещё одна — два похожих списка новостей на разных страницах.

Откройте страницу в приватном окне без входа в админку. Сохраните исходный вид. Затем проверьте HTML и стили в браузере: дата отсутствует в ответе или уже есть, но скрыта? Это разные задачи. Отключение стилей на своём компьютере не является готовым исправлением для посетителей.

2. Проверить данные и вызов компонента

Есть ли у новости дата, которую вы собираетесь выводить? Передаёт ли её компонент в шаблон? Не подставляйте сегодняшнее число просто ради видимого результата: заказчику нужна дата публикации записи.

Сопоставьте имя шаблона из вызова компонента с каталогом, который редактируете. В нашей ситуации вызов с cards_2025 не указывает на каталог cards. Проверьте также действующий шаблон сайта и другие копии. Поиск файла с подходящим названием сам по себе не устанавливает связь со страницей.

3. Получить доказательство выполнения файла

На своей тестовой копии можно временно добавить в предполагаемый шаблон уникальную безвредную метку и искать её в исходном ответе. Метка не должна раскрывать пути, пароли или данные пользователей. После проверки её нужно удалить.

Метка появилась: этот файл действительно участвовал в построении данного ответа. Проверяйте вывод даты и данные. Метки нет: причин несколько — другой файл, готовый HTML из кеша, другое окружение или старый исполняемый PHP-код. Отсутствие метки ещё не выбирает одну из них.

4. Разделить слои кеша

СлойЧто может оставаться старымЧто поможет различить причины
Браузер или промежуточный серверОтвет либо CSS/JSСравнение ответа на сервере и в браузере, заголовков и адресов ресурсов
Кеш страницы, включая композитный режимГотовая страница или её частьПроверка используемого режима и повторный гостевой запрос после его адресного обновления
Кеш компонентаДанные и готовый вывод блокаПерестроение кеша нужного компонента с повторной проверкой блока
OPcacheСкомпилированный PHP-кодНастройки обслуживающего сайт PHP-FPM и контролируемая перезагрузка именно его

Не сбрасывайте всё по очереди без записи наблюдений. Сформулируйте одну гипотезу, выберите воздействие на соответствующий слой, сравните ответ до и после. Выполняйте такие проверки в тестовом окружении; перезапуск общего PHP-FPM влияет и на другие сайты.

В панели страницы кнопка «Сбросить кеш» и действия отдельного компонента — разные инструменты. Сброс для одной группы пользователей не доказывает результат для гостя. Механизмы описаны в документации о кешировании.

5. Когда подозревать OPcache

OPcache хранит исполняемый PHP-код; он не заменяет кеш HTML. Настройка opcache.validate_timestamps=0 отключает автоматическую проверку изменений файлов. При включённой проверке интервал задаёт opcache.revalidate_freq, поэтому validate_timestamps=1 ещё не исключает задержку. Это описывает справочник PHP.

Смотрите конфигурацию того PHP-FPM, который обслуживает сайт. Значения PHP в командной строке могут относиться к другому процессу. «Компонент выполнился» тоже не доказывает выполнение выбранного template.php.

После проверки адреса, подключённого файла и слоя HTML-кеша гипотезу об устаревшем PHP-коде можно проверить контролируемой перезагрузкой того же PHP-FPM. Если метка появилась — наблюдение поддерживает гипотезу. Если её нет и после перезагрузки — вернитесь к адресу, окружению и выбору файла. Сам по себе перезапуск не является универсальным ремонтом шаблонов.

Как понять, что задача закончена

В нашем примере недостаточно увидеть даты. Нужно также сохранить карточки, плашки, данные и кеширование. Проверьте гостевой ответ после удаления меток, повторного запроса и восстановления обычных настроек. Не выдавайте постоянное отключение кеша за исправление, если по условиям он должен работать.

Теперь откройте практику с двумя причинами одного симптома. Там можно ошибиться, увидеть последствия и переиграть решение.

Дополнительный источник практических тем — заметки Михаила Базарова. Его статьи здесь не перепечатываются. Текст и ситуации RootPoligon написаны заново; атрибуция официальной документации — в уведомлении MIT.

Прочитали и разобрались? Отметьте урок — прогресс сохранится в этом браузере.