Ошибки при обновлении Битрикс
Rus
Eng
Ошибки при обновлении Битрикс
Решаю сложные технические задачи для Bitrix и 1С: от аудита чужого кода до разработки сайтов и настройки сложных интеграций с гарантией результата
Рекомендую

Хостинг для сайта

Если выбираете хостинг под проект — советую Timeweb. Современная инфраструктура, широкий выбор тарифов от стартовых до VPS под нагрузку, отзывчивая техподдержка, которая отвечает по существу, а не отписками. Я сам держу на нём часть своих проектов и рекомендую клиентам.

Перейти Партнёрская ссылка. Для вас цена не меняется.

Типичные ошибки в Битриксе и как их исправить

Справочник по ошибкам, которые чаще всего встречаются при работе с 1С-Битрикс: конфликты ядра, несовместимость модулей, проблемы с обновлениями и сетевыми настройками. По каждой ошибке — путь к файлу и готовое решение.

1. [Ux11] Ошибка описания модуля «название.модуля»

Сообщение: [Ux11] Ошибка описания модуля "название.модуля". Не установлено соединение с сервером обновлений. [Ux11] Ошибка описания модуля "название.модуля"

Сначала попробуйте обновить модуль до последней версии. Если не помогло — в файле /bitrix/modules/название.модуля/install/index.php замените конструкцию function название_модуля() на function __construct().

2. call_user_func_array(): Argument #1 ($function) must be a valid callback

Сообщение: call_user_func_array(): Argument #1 ($function) must be a valid callback, non-static method НазваниеМодуля::МетодКласса() cannot be called statically (0)

Найдите модуль по пути /bitrix/modules/название.модуля, откройте метод класса, который вызывает ошибку, и добавьте к его объявлению ключевое слово static.

3. Call to undefined method CAllCurrencyLang::CurrencyFormat()

В файле /bitrix/modules/aspro.next/classes/general/CNext.php или аналогичном замените CAllCurrencyLang::CurrencyFormat на CCurrencyLang::CurrencyFormat.

4. Cannot declare class Bitrix\Iblock\ElementTable, because the name is already in use

Сообщение: Fatal error: Cannot declare class Bitrix\Iblock\ElementTable, because the name is already in use или аналогичное для SectionTable.

Проверьте наличие файла /bitrix/modules/iblock/lib/elementtable.php. Если он существует — удалите файл /bitrix/modules/iblock/lib/element.php. Для SectionTable переименуйте или удалите файл /bitrix/modules/iblock/lib/section.php.

5. Undefined class constant INFO_NOT_AVAILABLE

Сообщение: Undefined class constant 'INFO_NOT_AVAILABLE' (0)

Часто возникает в файле /home/bitrix/www/bitrix/modules/aspro.max/classes/general/CMaxCache.php на строке 523 и аналогичных ему.

Перейдите в класс Аспро с ошибкой, найдите \Bitrix\Main\Service\GeoIp\Manager::INFO_NOT_AVAILABLE и замените на null:

// Было
if ($obBitrixGeoIPResult !== \Bitrix\Main\Service\GeoIp\Manager::INFO_NOT_AVAILABLE) {

// Стало
if ($obBitrixGeoIPResult !== null) {

6. Call to undefined method CMain::reinitPath()

Сообщение: Call to undefined method CMain::reinitPath()

Метод reinitPath() удалён из ядра. Замените вызов вручную:

// Было
$APPLICATION->reinitPath();

// Стало
$APPLICATION->sDocPath2 = GetPagePath(false, true);
$APPLICATION->sDirPath = GetDirPath($APPLICATION->sDocPath2);

7. Mysql query error: (1146) Table '#DB_NAME#.b_sale_trading_platform' doesn't exist

Ошибка возникает при некорректном обновлении ядра. Перейдите в /bitrix/modules/sale/lib/ и удалите или закомментируйте файл tradingplatform.php.

8. Cannot declare class Bitrix\Highloadblock\HighloadBlockLangTable, because the name is already in use

Ещё одна ошибка некорректного обновления ядра. Перейдите в /bitrix/modules/highloadblock/lib и убедитесь, что там есть оба файла: highloadblocklang.php и highloadblocklangtable.php. Удалите тот, что без table в названии.

9. После обновления пропало отображение свойств в старых заказах

Симптом: из списка заказов в админке пропало отображение свойств заказа, причём только для заказов, созданных до обновления.

Причина — отсутствие записи ORDER в поле ENTITY_TYPE таблицы b_sale_order_props_value. Выполните скрипт восстановления:

$rs = $DB->Query("SELECT * FROM b_sale_order_props_value WHERE ENTITY_TYPE = ''");

while ($prop = $rs->Fetch()) {
    $IDS[] = $prop['ID'];
}

$connection = \Bitrix\Main\Application::getConnection('default');
$sqlHelper = $connection->getSqlHelper();
$connection->executeSql("UPDATE b_sale_order_props_value SET ENTITY_TYPE = 'ORDER' WHERE ID IN (" . implode(",", $IDS) . ")");

10. Ошибка соединения с сервером обновлений: getaddrinfo for www.1c-bitrix.ru failed

Сообщение: [0] php_network_getaddresses: getaddrinfo for www.1c-bitrix.ru failed: Name or service not known. Нет соединения с сервером обновлений.

Причина — сервер не может определить DNS-имя www.1c-bitrix.ru. Обычно это пустой или нерабочий файл /etc/resolv.conf. Решение — прописать публичные DNS-серверы вручную.

Шаг 1. Подключитесь к серверу по SSH от пользователя root или через sudo.

Шаг 2. Откройте файл сетевых настроек DNS:

sudo nano /etc/resolv.conf

Шаг 3. Если файл пустой или содержит нерабочие локальные адреса — добавьте публичные DNS-серверы Google или Яндекс:

nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 77.88.8.8

Шаг 4. Сохраните файл (Ctrl+O, затем Enter) и выйдите (Ctrl+X). Проверьте, что адрес начал определяться:

ping www.1c-bitrix.ru

Шаг 5. Перезапустите веб-сервер и PHP-FPM, чтобы настройки применились ко всем службам:

# CentOS / RHEL / AlmaLinux
sudo systemctl restart httpd

# Ubuntu / Debian
sudo systemctl restart apache2

# PHP-FPM — на любой ОС
sudo systemctl restart php-fpm

Если используется Nginx с PHP-FPM, вместо httpd или apache2 перезапускайте nginx и php-fpm. После этого обновление из админки и установка модулей должны заработать.

Если ping после правки resolv.conf всё равно не проходит — проверьте, что на сервере есть доступ в интернет на уровне провайдера или фаервола, и что провайдер не блокирует исходящие DNS-запросы.

Александр Тихий
Автор статьи

Александр Тихий

Fullstack-разработчик · 1С-Битрикс

Разрабатываю и развиваю интернет-магазины и корпоративные порталы на 1С-Битрикс. Интеграции с 1С, highload-нагрузки, безопасность по 152-ФЗ.


Комментарии

Комментариев еще нет, Вы можете стать первым кто его оставит

Оставьте комментарий

На сайте используется система премодерирования комментариев, поэтому ваше сообщение будет опубликовано лишь после одобрения модератором

Вы отвечаете на комментарий пользователя

Отправить

ОБРАТНАЯ СВЯЗЬ

Напишите мне

Напишите мне, чтобы обсудить задачу. Работаю удаленно, официально (самозанятый), стоимость часа — 1800 ₽, в день могу уделять проекту 3–4 часа. Отвечаю быстро, консультация бесплатная.

Во время отправки произошла ошибка, пожалуйста попробуйте еще раз через некоторое время
Сообщение отправлено успешно

Телефоны

+7(993) 007-18-96

Email

info@tichiy.ru

Адрес

Россия, г. Москва

Отправляя форму Вы автоматически подтверждаете, что ознакомились и принимаете Политику конфиденциальности сайта