Создал профиль в экспорте товаров (а-ля яндекс маркет), вручную нажимаю "Экспортировать" и на выходе получаю xml файл в 400 килобайт папке upload
Далее добавил штатно там же привязку к агентам.
Так вот - при запуске экспорта через агент, файл выгрузки xml видно, что перезаписывается, но не формируется весь, буквально записывается в него первые три строчки и все. и весит 109 байт.
Что это за глюк такой?
и все.
Но если тоже самое запустить самому из браузера, то xml полный как надо, со всеми тегами и товарами.
Но через агент вот такая фигня.
Как будто агент выполняется в каком то своем окружении и не подключается что то вроде $USER, хотя не пойму участвует ли оно как то.
2018-06-27 21:00:39 - Host: mydomain.ru:443 - FATAL - [ErrorException] E_ERROR
Call to a member function ConvertCharset() on null (0)
/home/bitrix/www/bitrix/php_interface/include/catalog_export/FB2018_run.php:150
А вот сама строка из файла
@fwrite($fp, "<title>".htmlspecialchars($APPLICATION->ConvertCharset('Название сайта на русском', LANG_CHARSET, 'utf-8'))."</title>\n");
Загляните в
/home/bitrix/www/bitrix/php_interface/include/catalog_export/FB2018_run.php
и посмотрите, кто в 150-й строке вызывает ConvertCharset
Из того, что мне поиск PHPStorm-а показывает, это скорее всего $APPLICATION, который не определён.
Закомментируйте конвертирование. Если пойдёт, можете переписать через iconv например.
Ну или убрать с агента и сделать скрипт, который инициализировал бы пролог и пинал бы эту выгрузку. И сам скрипт запихнуть в крон.
Написано
Антон
@anton99zel Автор вопроса, куратор тега 1С-Битрикс
Алексей Бурлака, может заменить на $str = iconv('UTF-8', 'windows-1251', $str);?
Может..., вы же попробовать можете, я-то не могу =)
Помучайте этот скрипт.
Написано
Антон
@anton99zel Автор вопроса, куратор тега 1С-Битрикс
Алексей Бурлака, Да заменил везде на iconv и заработало.
Спасибо Вам
Правда есть вопрос не по теме:
почему $str = iconv('UTF-8', 'windows-1251', $str); работает для английских символов, но не работает для кириллицы? Выдает пустоту, но $str = iconv('windows-1251', 'UTF-8', $str);работает для кириллицы. Запутался не много.
Антон
@anton99zel Автор вопроса, куратор тега 1С-Битрикс
29а класс средней школы №7
Добавлю еще одно решение, возникшее в процессе настройки cron и автозагрузки
В файл_run.php где формируется выгрузка нужно добавить global $USER; $USER->Authorize(87);
где 87 это id пользователя с админправами.
После этого кода выгрузка заработала через cron и исчезла проблема с применением function ConvertCharset()