"Мы сделали свой компонент, но при включении автокеширования он работает неправильно. Исправьте механизм кеширования."
Мне часто приходится слышать о такой проблеме. Аналогичная проблема возникает со своими шаблонами компонентов. Ситуация обычно усложняется тем, что техподдержка отказывается решать проблему ссылаясь на то, что стандартные компоненты системы работают нормально. Предлагаю окончательно разобраться в этом вопросе и расставить все точки над "i".
Специально выделил в отдельную статью вопрос изменения кода простого компонента от изменения шаблона. Мы подразумеваем, что шаблон компонента лишь формирует внешний вид данных, запросов к базе данных не делает. Если надо изменить порядок сортировки, фильтрацию, набор доступных полей - придётся либо делать дополнительные запросы к базе в result_modifier.php, либо менять код компонента.
Между тем, при работе с комплексным компонентом можно модифицировать один или несколько простых, остальные остаются стандартные.
Как известно, комплексный компонент обеспечивает взаимодействие простых компонентов с общей тематикой. Простые компоненты содержат код непосредственной работы с данными. Например, компоненты соцсети настраивать по отдельности не удобно. Но если надо лишь изменить внешний вид некоторых элементов, это можно легко сделать, не отказываясь от остальных стандартных шаблонов.