Этот баг появляется довольно часто вне зависимости от версии битрикса. Внешне выглядит как окошко с текстом «Не удалось обнаружить код вызова компонента» и невозможность редактировать свойства\копировать шаблон. Далее будут приведены возможные причины возникновения ошибки и способы ее преодолеть.
Проявляется баг в случае когда битрикс неправильно определяет номер строки, на которой заканчивается вызов компонента. По неизвестной даже техподдержке причине это число иногда отличается от действительного.
Список факторов, при которых появлялась ошибка:
Несоответствие открывающих и закрывающих html тегов
Не отделенный вызов компонента, т.е. код подключения должен быть обособлен скобками <? ?>
Включенный в php флаг mbstring.func_overload = 2 при кодировке сайта cp1251
И совсем непонятные факторы без какой-либо причинно-следственной связи:
- имя класса «mail» в css
- тег ‹br /› перед вызовом компонента
Способы устранить ошибку
Удалить все комментарии в коде html
Явно указнать кодировку сайта в файле .htaccess, например «php_value mbstring.internal_encoding cp1251» или «php_value mbstring.internal_encoding UTF-8»
Вставить такую <?/**/?> конструкцию перед проблемным местом
Добавить и удалить несколько аналогичных компонентов рядом с неработающим
Заключить вызов компонента в отдельные <? ?>
Проверить и исправить расстановку html-тегов
Существует один разовый универсальный способ побороть ошибку. Разовость состоит в том, что по сути баг не исчезает, его можно временно «отключить» до перезагрузки страницы. Для этого открываем режим разработки bitrix в Mozilla (необходим установленный плагин FireBug), кликаем по иконке компонента и с помощью фаербага ищем нужную нам строчку — в ней будет присутствовать что-то вроде onclick=jsPopup.ShowDialog…
В середине этой строки ищем параметр src_line=число и меняем его на единицу (в общем случае нужное число можно посмотреть в исходном файле — оно будет равно номеру строки где заканчивается вызов компонента. Чаще всего достаточно отнять единицу от определенного автоматически, но неправильно битриксом).
Важно не перезагружать страницу! Теперь можно попробовать нажать на пункт меню — если число вписали правильно, откроется окно нужного действия.
Но самый лучший и правильный способ — обратиться в техподдержку. Как-никак продукт коммерческий и за недоработки надо отвечать…
Алексей Валеев
Присоединяйтесь — мы покажем вам много интересного
Присоединяйтесь к ОК, чтобы подписаться на группу и комментировать публикации.
Нет комментариев