
Формы Битрикс24 — встроенный инструмент для сбора заявок, обращений и другой клиентской информации. Их размещают на сайтах, лендингах и в онлайн-виджетах. Все данные, отправленные через форму, автоматически попадают в CRM: создаются лиды, сделки или контакты — в зависимости от настроек. Подобная механика взаимодействия ускоряет работу с клиентами и снижает потери на этапе первого контакта.
Если формы перестают работать — не отображаются, не отправляют данные или просто не открываются — бизнес теряет часть заявок и сталкивается с перебоями в обработке обращений. Подобные ситуации нередко возникают после переноса портала, восстановления из резервной копии, а иногда — и без внешне очевидных причин.
Проблему можно устранить самостоятельно, если строго придерживаться описанной последовательности действий. Ниже приведён алгоритм восстановления форм CRM в коробочной версии Битрикс24.
Как восстановить работоспособность форм
Нарушения в работе форм CRM Битрикс24 можно устранить без привлечения технических специалистов — достаточно следовать проверенной инструкции. Руководство позволяет восстановить формы в коробке после полной потери привязок к домену и сбоя в структуре блоков.
Алгоритм следующий:
1. Измените адрес домена в облаке и опубликуйте с новым доменом, чтобы нужный домен освободился. Для этого подойдет любой домен на поддомене Битрикс24.
2. Укажите нужный домен в коробочной версии и выполните публикацию.
3. В административной части портала перейдите в «Настройки» → «Инструменты» → «Командная строка PHP» и выполните следующий код:
\Bitrix\Main\Loader::includeModule('landing');
$domain = 'NameSite.com';
$siteId = 1; // ID сайта
$controller = \Bitrix\Landing\Manager::getExternalSiteController();
$res = $controller::deleteDomain($domain);
var_dump ($res);
$res = $controller::addDomain($domain, '/pub/site/' . $siteId . '/');
var_dump ($res);
4. Обновите файлы сценариев форм, перейдя по адресу: https://ваш_сайт_Битрикс24/crm/webform/?rebuildAll=y
5. Пересоберите блоки CRM-форм:
use Bitrix\Main\Loader;
use Bitrix\Landing\Internals\BlockTable;
use Bitrix\Crm\WebForm;
use Bitrix\Landing\Subtype;
if (
!Loader::includeModule('landing')
|| !Loader::includeModule('crm')
)
{
return;
}
/////////////////
// При первом запуске lastId = 0.
// Далее — пошагово, по 50 форм за раз. Будет выводиться лог, в конце которого $lastId = 100500
// Меняем значение вот тут и запускаем еще раз. Если ничего не вывелось — значит, закончили упражнение
$lastLid = 0;
$formQuery = WebForm\Internals\LandingTable::query()
->addSelect('FORM_ID')
->addSelect('LANDING_ID')
->addOrder('LANDING_ID')
->setLimit(50)
->where('LANDING_ID', '>', $lastLid)
->exec()
;
while ($form = $formQuery->fetch())
{
$blocksQuery = BlockTable::query()
->addSelect('ID')
->where('LID', $form['LANDING_ID'])
->where('CODE', '66.90.form_new_default')
->exec()
;
while ($row = $blocksQuery->fetch())
{
echo $form['FORM_ID'] . ' - ' . $form['LANDING_ID'] . ' - ' . $row['ID'] . "\n";
Subtype\Form::setFormIdToBlock($row['ID'], $form['FORM_ID']);
}
$lastLid = (int)$form['LANDING_ID'];
}
if ($lastLid > 0)
{
echo "\$lastLid = {$lastLid};";
}
6. Очистите кеш портала по пути «Настройки» → «Настройки продукта» → «Автокэширование» → «Очистка файлов кеша».
Краткие итоги
Администрирование коробочной версии Битрикс24 связано с рисками, которые не всегда сразу видны. Даже небольшие ошибки в настройке могут привести к сбоям, из-за которых пропадают заявки, замедляется работа с клиентами и страдает общая производительность инфраструктуры.
В таких ситуациях важна не только скорость реакции, но и понимание того, как система устроена изнутри. Команда Integrator.Digital решает подобные задачи на постоянной основе — быстро находит источник проблемы и восстанавливает нормальную работу портала, чтобы бизнес не терял деньги, клиентов и время.