При включенном кэшировании компонента, вложенный компонент свои css и js файлы не подключает, а так же не отрабатывает component_epilog вложенного компонента.

Рейтинг: 45.4078  
Внедрено
Предложил Пользователь 3308 17.08.2013 16:34:40

При включенном кэшировании компонента, вложенный компонент свои css и js файлы не подключает, а так же не отрабатывает component_epilog вложенного компонента.

Например если из шаблона компонента отображения детальной страницы товара bitrix:catalog.element
вызвать какой-нибудь другой компонент (например: купить в 1 клик, оповестить о поступлении заказа на склад итд), то при включенном кэшировании style.css и style.js вложенных компонентов не подключится , а так же не отрабатывает component_epilog вложенного компонента.

Обсуждалось многократно на форумах:
http://dev.1c-bitrix.ru/community/forums/forum6/topic49425/
http://dev.1c-bitrix.ru/community/webdev/group/15/forum/message/36526/200814/#message200814
http://dev.1c-bitrix.ru/community/forums/messages/forum6/topic50361/message268132/

Рейтинг: 1.1697  
Пользователь 11948 18.08.2013 06:53:57
Это не идея, это баг. Очень старый баг.
Рейтинг: 0  
Пользователь 3308 18.08.2013 07:26:29
Максим Смирнов в твитере пишет, что нужно компоненту четвертый параметр передать. Я правда не очень понял суть решения - в понедельник попробуем..
Рейтинг: 0  
Пользователь 11948 18.08.2013 08:03:01
аа... стили и js лечатся этим параметром, да, у меня вот такая проблемы была: http://dev.1c-bitrix.ru/community/webdev/group/15/forum/message/36526/200830/#message200830

Она не решилась до сих пор вроде.
Рейтинг: 0  
Пользователь 137120 26.08.2013 08:41:41
что за 4 параметр?
Рейтинг: 0  
Пользователь 173863 20.10.2013 15:55:59
Проблема существует до сих пор, и выяснение отношений с поддержкой битрикса тоже ни к чему не приводит. Решение, которое предлагают они, сводится к отключению кэша для подчиненного компонента + передача 4-го параметра. У меня это не сработало.  Сработало вот что: время кэширования надо установить такое же, как и у родительского компонента. То есть вызов выглядит примерно вот так:


<?$APPLICATION->IncludeComponent("<component_name>", "<template_name>",
                               Array(
                                   ... other params ...
                                   "CACHE_TYPE" => $arParams["CACHE_TYPE"],
                                   "CACHE_TIME" => $arParams["CACHE_TIME"],

                               ),
                             $component
                           );?>

Сейчас находится на стадии тестирования уже несколько дней, но пока еще работает. Может, у кого-то есть другие идеи?
Рейтинг: 0  
Пользователь 89296 16.03.2015 11:01:07
Прошло 2 года. А воз и ныне там....
Рейтинг: 0  
Пользователь 50984 14.04.2015 11:20:03
Задача решена
Рейтинг: 0  
Пользователь 17090 16.04.2015 15:13:44
Задача не решена, все по-прежнему лагает... Что за 4-й параметр, о котором все так говорят, но никто не называет его? Неприлично называется?
Рейтинг: 0  
Пользователь 2106 16.04.2015 16:13:42
Документация
4-й параметр метода CMain::IncludeComponent