Что случилось: При экспорте диалогов открытых линий в эксель выдаёт вот такое исключение
Причина
Вся причина в очень интересном подходе подключения кастомных обработчиков ajax запросов.
Ошибка вызвана отсутствием имени модуля в переменной module класса обработчика /bitrix/components/bitrix/imopenlines.statistics.detail/ajax.php, открываем файл: Переменная есть, так почему вылазит ошибка? Кто более внимательный, заметит, что в трассировке нет вообще класса ImOpenLinesStatisticsDetailAjaxController, но есть его предок Main\Controller\Export, так почему же обработку производит предок?
А потому что вот как в ядре подключаются классы обработки ajax: /bitrix/www/bitrix/modules/main/lib/engine/router.php:222
Такое решение по выявлению подключенных классов описано в комментариях к функции get_declared_classes() на php.net. И он бы работал не используя разработчики Битрикс автозагрузку классов spl_autoload_register(). В этом случае php подключает класс только после его использования, вот и получается, что в файле /bitrix/components/bitrix/imopenlines.statistics.detail/ajax.php порядок подключения классов такой:
[506] => CComponentEngine [507] => ImOpenLinesStatisticsDetailAjaxController - находится в файле /bitrix/components/bitrix/imopenlines.statistics.detail/ajax.php [508] => Bitrix\Main\Controller\Export - является предком ImOpenLinesStatisticsDetailAjaxController, и к нему обращаются первый раз [509] => Bitrix\Main\Engine\Controller - является предком Bitrix\Main\Controller\Export, и к нему обращаются первый раз
Далее в переборе этого списка проверяется Bitrix\Main\Controller\Export, который является наследником Bitrix\Main\Engine\Controller, и возвращается в качестве кастомного обработчика вместо класса ImOpenLinesStatisticsDetailAjaxController.
Вот такой вот примитивный баг, как он прошел тестировщиков я не представляю.
Решение Самое банальное решение, пока не выйдет обновление, сделать вызов Bitrix\Main\Controller\Export, где-нибудь в init.php,например:
class kostyliforever extends \Bitrix\Main\Controller\Export{}
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».