Агенты в 1С-Битрикс — это фоновые задачи, которые выполняются по расписанию. По умолчанию система рекомендует использовать cron (регулярный запуск через планировщик), потому что это надёжно и не нагружает сайт при каждом посещении. Но иногда настройки cron ломаются, агенты «зависают», и нужно срочно вернуть их работу через хиты (выполнение при каждом заходе на сайт).
Внимание: запуск агентов на хитах создаёт дополнительную нагрузку на сервер и может замедлить работу сайта. Это временное решение, пока не настроите cron. Используйте только если других вариантов нет.
Шаг 1: Отключаем cron-поддержку в dbconn.php
Откройте файл /bitrix/php_interface/dbconn.php (если его нет — создайте) и добавьте в самое начало, после <?php, строку:
| Код |
|---|
define('BX_CRONTAB_SUPPORT', false); |
Это скажет Битрикс, что планировщик cron отключён, и система попытается запускать агенты при каждом хите.
Шаг 2: Принудительно меняем настройки через командную PHP-строку
Если после правки файла агенты всё ещё не работают, зайдите в админке в Настройки → Инструменты → Командная PHP-строка и выполните код:
| Код |
|---|
// Отключаем использование cron для агентов
COption::SetOptionString("main", "agents_use_crontab", "N");
// Проверяем, что значение сохранилось
echo COption::GetOptionString("main", "agents_use_crontab", "N");
// Включаем проверку агентов при каждом хите
COption::SetOptionString("main", "check_agents", "Y");
echo COption::GetOptionString("main", "check_agents", "N"); |
После выполнения вы должны увидеть на экране NY (или NN, если параметры уже были установлены). Это подтвердит, что настройки применены.
Проверьте работу агентов — зайдите в Настройки → Инструменты → Агенты и убедитесь, что дата последнего запуска обновляется.
Наблюдайте за нагрузкой — если сайт начал тормозить, часть агентов лучше отключить или увеличить интервалы их выполнения.
Верните cron как можно скорее — настройте планировщик на вашем хостинге (инструкции есть в документации Битрикс), а затем:
Удалите строку define('BX_CRONTAB_SUPPORT', false); из dbconn.php
В командной PHP-строке выполните:
| Код |
|---|
COption::SetOptionString("main", "agents_use_crontab", "Y");
COption::SetOptionString("main", "check_agents", "N"); |
Запуск агентов на хитах — это «скорая помощь» для сайта, когда cron не работает. Используйте её осторожно и только временно. Долгосрочное решение — правильная настройка планировщика заданий.