Ux11 ошибка описания модуля битрикс

 

Битрикс пишет ошибку в разделе обновлений:
[Ux11] Ошибка описания модуля «modulename»
Где modulename самостоятельно написанный модуль.

Нельзя не обновить, не произвести регистрацию продукта.
Как решить эту проблему?

 

Тема UP
Что ни у кого не было подобной проблемы? Никто свои модули не добавлял?

 

Проблема не решена. Никто не сталкивался?
В саппорте дали лишь ссылку на статью про правильную структуру модуля. Модуль по ней и делал, сверился еще раз. Не нашел различий.

 
 

Вам нужно проверить чтобы класс модуля, находящийся в install/index.php, возвращал версию про обращении $module_example_class->MODULE_VERSION. У меня была проблема в том, что версия возвращалась только для первого экземпляра на странице (использовался include_once(‘version.php’) для файла версии).

 

Пользователь 13856

Постоянный посетитель

Сообщений: 123
Баллов: 18
Регистрация: 17.07.2007

#6

0

17.06.2011 11:30:28

Аналогичная проблема. Переменная должна возвращаться правильно:

Код
class irkutsk350ru extends CModule {
  public $MODULE_ID = 'irkutsk350ru';

  public $MODULE_VERSION = '1.0';
  public $MODULE_VERSION_DATE = '2011-09-06';
  ...
}

Техдиректор — оперативная служба технической поддержки сайтов на Битриксе

 

Пользователь 45913

Заглянувший

Сообщений: 12
Регистрация: 21.07.2009

#7

0

24.06.2011 16:56:10

Проблема решается следующим образом:

Код
Class modulename extends CModule {

    var $MODULE_ID = "modulename";
    var $MODULE_NAME;
    var $MODULE_DESCRIPTION;
    var $MODULE_VERSION;
    var $MODULE_VERSION_DATE;

    function modulename() {
        $arModuleVersion = array();

        $path = str_replace("\\", "/", __FILE__);
        $path = substr($path, 0, strlen($path) - strlen("/index.php"));
        include($path . "/version.php");

        if (is_array($arModuleVersion) && array_key_exists("VERSION", $arModuleVersion)) {
            $this->MODULE_VERSION = $arModuleVersion["VERSION"];
            $this->MODULE_VERSION_DATE = $arModuleVersion["VERSION_DATE"];
            $this->MODULE_NAME = $arModuleVersion["MODULE_NAME"];
            $this->MODULE_DESCRIPTION = $arModuleVersion["MODULE_DESCRIPTION"];
        } else {
            //укажите собственные значения
            $this->MODULE_VERSION = 0;
            $this->MODULE_VERSION_DATE = 0;
            $this->MODULE_NAME = 0;
            $this->MODULE_DESCRIPTION = 0;
        }
    }
...

Содержимое файла version.php:

Код
<?
$arModuleVersion = array(
   "VERSION" => "1.0.0",
   "VERSION_DATE" => "2011-01-01 00:00:00",
        "MODULE_NAME" => "Название модуля",
        "MODULE_DESCRIPTION" => "Описание модуля"
);
?>
 

Нет, проблема решается после присваивания модулю своего именного пространства. То бишь:
название модуля должно иметь вид

my_namespace.modulename

.

Тогда никаких проблем не будет.

 

ошибка с Ux11 связана с тем, что система обновлений не может получить версию модуля. Причем, ошибка может быть в 2х местах — на странице обычных обновлений и на странице партнерских обновлений. В первом случае необходим корректный файл install/version.php, во втором, чтобы название класса модуля совпадало с названием самого модуля и в конструкторе класса были определены свойства класса MODULE_VERSION и MODULE_VERSION_DATE

Руководитель службы технической поддержки

 

Пользователь 6749

Заглянувший

Сообщений: 7
Регистрация: 30.10.2006

#10

0

06.12.2011 01:04:42

Диалог с саппортом на эту тему ниже. По-моему исчерпывающее обсуждение.
Как я понимаю, большого желания дорабатывать документацию или исправлять ошибки в коде у ответственных за движок Bitrix нет.

Цитата
Время: 24.11.2011 18:52:26
От кого: [6749] (zy_tais) Юрий Захарин

Управление сайтом (PHP версия) > Установка обновлений, техническая проблема

Текст ошибки или описание проблемы
В системе установлены файлы самостоятельно написанного модуля.

При переходе на страницу обновлений ошибка:

Ошибка
[Ux11] Ошибка описания модуля «ibe».
Не установлено соединение с сервером обновлений. [Ux11] Ошибка описания модуля «ibe».

Следующая замена в файле \bitrix\modules\main\classes\general\update_client.php позволяет решить проблему:
return array( ___1050547590(1953) => $_439811003->_766344616, ___1050547590(1954) => $_439811003->_62193985,);
заменяем на
return array( ___1050547590(1953) => $_439811003->MODULE_VERSION, ___1050547590(1954) => $_439811003->MODULE_VERSION_DATE,);

По-видимому нет ничего, что бы позволило PHP (5.2.5) подставить «MODULE_VERSION» вместо «_766344616».

Стандартные модули работают, т.к. объявляют $arModuleVersion в /install/version.php, поэтому вываливаются из функции раньше.
Согласно документации (

http://dev.1c-bitrix.ru/api_help/main/general/modules/description.php), объявлять $arModuleVersion не обязательно.

Есть обсуждение в форуме (

http://dev.1c-bitrix.ru/community/forums/forum6/topic33553/), но там об этом ничего нет.

Время: 25.11.2011 13:44:23 От кого: [46357] (mrLEFF) Lev Shestopalov

Добрый день!

Юрий, воспользуйтесь, пожалуйста, документацией по созданию своих модулей и опишите версию модуля так, как указано в документации —

http://dev.1c-bitrix.ru/download/files/manuals/ru/partners_module_guide.doc
Время: 25.11.2011 20:14:02 От кого: [6749] (zy_tais) Юрий Захарин

Здравствуйте, Лев.

Версия модуля описана согласно документации, т.е. объект модуля содержит поля MODULE_VERSION и MODULE_VERSION_DATE.

В документации, на которую вы ссылаетесь, нет требований к структуре файла version.php . Но при этом без правильно сформированного файла version.php обновление перестает работать. Подробности, почему так происходит, я уже написал в обращении.
Время: 28.11.2011 11:57:33 От кого: [17138] (lampotrias) Михаил Митрофанов

Добрый день!

Цитата
Согласно документации (http://dev.1c-bitrix.ru/api_help/main/general/modules/description.php), объявлять $arModuleVersion не обязательно.

Не находим этой фразы в документации.

У Вас есть файл /install/version.php с содержимым вида:

Цитата
<?
$arModuleVersion = array(
    «VERSION» => «11.0.4»,
    «VERSION_DATE» => «2011-11-17 14:00:00»
);
?>

если такого файла нет, то создайте его.

1С-Битрикс и PHP 8: исправляем ошибки [Ux11] и non-static method

При обновлении PHP до 8 версии в работе сторонних модулей 1С-Битрикс могут возникнуть ряд ошибок. Рассмотрим как их исправить:

Ошибка №1

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

При возникновении данной ошибки нужно либо обновить модуль до последней версии, либо в файле /bitrix/modules/название.модуля/install/index.php заменить название функции function название_модуля() на function __construct() После этого ошибка должна уйти

Ошибка №2

Для исправления ошибки:


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

Необходимо найти код данного модуля по следующему пути (/bitrix/modules/название.модуля), определиться с классом в котором возникает данная ошибка и к данному классу приписать служебное слово static, примерно так:


static function МетодКласса()

Чтобы [Ux11] Ошибка описания модуля исчезла ,необходимо пробежаться и проверить следующее:
1)У Вас есть файл /install/version.php с содержимым вида:
<?
$arModuleVersion = array(
    «VERSION» => «11.0.4»,
    «VERSION_DATE» => «2011-11-17 14:00:00»
);
?>
2)Папка в которой лежит модуль: vendor.modulename
в /install/index.php:
Class vendor_modulename extends CModule
{
var $MODULE_ID = ‘vendor.modulename’;

     function vendor_modulename(){ … }
}
А так же в названии класса и в названии функции не должно быть заглавных букв.
3)В конструкторе класса установочного файла при подключении version.php используйте функцию include без суффикса _once, иначе информация о модуле не будет подгружаться в разделе «Обновление решений», что вызовет ошибку с кодом Ux11.
4) нужно удалить директорию .last_version из папки модуля

Если все сделано правильно тогда ошибка [Ux11] Ошибка описания модуля исчезнет

  •   
    2023-02-19
  •   Оставлено  
  •   Что это?   
    Битрикс

Битрикс обновление PHP 8 версия обязательна с февраля 2023 года. Битрикс очередной раз повышает требования к настройке Web сервера в связи с безопасностью своих продуктов. Битрикс обновленный до 1С-Битрикс: Управление сайтом 22.500.100 проблем с PHP8 PHP 8.1 не будет при условии что все модули и решение обновлены и имеют обновление до PHP8

Битрикс обновление PHP 8

Битрикс обновление PHP 8 версия обязательна с февраля 2023 года.

настоятельно рекомендую использовать «сайт для разработки» и работать с настройкой вашего в отдельном виртуальном или VPS сервере.

При обновлении PHP до 8 версии в работе сторонних модулей 1С-Битрикс могут возникнуть ряд ошибок.

Рассмотрим как исправить сторонние модули Битрикс:

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

При возникновении данной ошибки нужно либо обновить модуль до последней версии, либо в файле /bitrix/modules/название.модуля/install/index.php заменить название функции function название_модуля() на function __construct() После этого ошибка должна уйти

Ошибка №2

Для исправления ошибки:

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

Необходимо найти код данного модуля по следующему пути (/bitrix/modules/название.модуля), определиться с классом в котором возникает данная ошибка и к данному классу приписать служебное слово static, примерно так:

static function МетодКласса()

После необходимо проверить работу стороннего модуля как в Back-end’e так и Front-end’e

Если модуль платежной системы то стоит отключить его и получить обновленный платежный модуль у разработчика.

Кстати это не решение «костыль» а решение прошлых проблем. динамика сознает нагрузку. статичный метод меньше нагрузку, это можно заметить по индикатору производительности в back-end’e

В административном интерфейсе коробочных версий продуктов «1С-Битрикс» вы могли заметить такое уведомление:

С 01.02.2023 будет ограничена поддержка наших продуктов на PHP версии ниже 8.0. Рекомендуемая версии PHP – 8.1 или выше. Вы используете версию PHP 7.4.33. Пожалуйста, запланируйте обновление PHP или обратитесь в техническую поддержку вашего хостинга.

Почему важно обновить PHP

Версия PHP 7.х объявлена устаревшей и больше не поддерживается, для неё не выпускаются исправления функциональных ошибок и ошибок безопасности. Использование версий PHP ниже 8 крайне не рекомендовано.

Вы не сможете установить обновления коробочных версий продуктов «1С-Битрикс» для исправления ошибок и получения нового функционала, пока не обновите PHP до минимальной версии 8.0 или рекомендованной 8.1 в своем серверном окружении.

Запланируйте обновление PHP до минимальной версии 8.0 или до рекомендуемой PHP 8.1 в самое ближайшее время.

Как обновить PHP

Обновление версии PHP необходимо произвести поэтапно. Для этого обратитесь к вашему системному администратору или в техподдержку вашего хостинга.

  1. Обязательно создайте резервную копию вашей установки. Это может быть как резервная копия средствами продукта, так и полностью всего сервера, например виртуальной машины VMBitrix.

  2. Обновите ядро и все модули продукта до последних доступных версий в разделе Настройки > Marketplace > Обновление платформы.

    Обновить платформу

  3. Обновите все сторонние решения из Маркетплейса до последних доступных версий в разделе Настройки > Marketplace > Обновление решений.

    Обновить установленные решения

  4. Обновите версию PHP до минимальной 8.0 или рекомендованной 8.1 на своем сервере.

    Если вы используете виртуальную машину VMBitrix, то обновить PHP можно через меню VMBitrix: 1. Manage servers in the pool — 8. Update PHP and MySQL. Подробнее читайте в отдельном курсе.

  5. Еще раз проверьте и установите все доступные обновления платформы и решений из Маркетплейса.

Куда обращаться в случае ошибок при обновлении версии PHP до 8.х

  • Если после обновлений PHP появятся ошибки в работе стандартных модулей продуктов «1С-Битрикс», то обратитесь в Поддержку24.

    Также по модулям из Маркетплейса, в названия которых содержатся bitrix.*, нужно обращаться в Поддержку24, например:

    bitrix.eshop
    bitrix.sitecommunity
    bitrix.sitecorporate
    bitrix.siteinfoportal
    bitrix.sitepersonal
    bitrix.learningtemplates
  • По ошибкам в сторонних модулях из Маркетплейса обращайтесь к разработчикам модуля, их контакты указаны на странице этого модуля во вкладке «Поддержка».

Примеры частых ошибок и их решения

Возможные причины ошибок после обновления до PHP 8.х:

  • До перехода на PHP 8.х не было обновлено ядро и все модули продукта до последних доступных версий в разделе Настройки > Marketplace > Обновление платформы.
  • До перехода на PHP 8.х не были уставлены обновления сторонних решений (они в названии имеют точку) на странице Marketplace > Обновление решений.
  • Разработчик не обновил модуль для поддержки PHP 8.

Основные действия по исправлению ошибок после обновления PHP до 8.х:

  • Вернуться на предыдущую версию PHP 7.x, когда все работало, обновить компоненты системы и сторонние модули, а затем повторно обновить версию PHP до 8.х.
  • Если предыдущие действия не исправили ошибки, то обратиться к разработчику модуля – смотрите раздел выше Куда обращаться в случае ошибок.
  • Временно отключить модуль с ошибкой, переместив его из директории /bitrix/modules.
  • Удалить стороннее решение с ошибкой.

Стоить отметить, что в примерах даны лишь решения ошибок для конкретного модуля. Каждая ошибка должна рассматриваться разработчиком индивидуально.

[Ux11] Ошибка описания модуля «name.module». Не установлено соединение с сервером обновлений. [Ux11] Ошибка описания модуля «name.module».

Ошибка может появиться после повышения версии PHP до 8.0 и выше. Сайт при этом работает, но установить или обновить другие решения нельзя, пока сохраняется ошибка.

Решение проблемы:

Исправление в общем случае будет таким: в файле /bitrix/modules/<имя.модуля>/install/index.php код:

function <имя.модуля>()

заменить на:

function __construct()

При выполнении скрипта возникла ошибка. Включить расширенный вывод ошибок можно в файле настроек .settings.php.

Решение проблемы:

Подключиться по FTP/SFTP или зайти в панель хостинга, включить вывод ошибок в файле /bitrix/.settings.php:

'debug' => true,

После чего на сайте будет выведен текст ошибки:

Пример ошибки

Non-static method Super\Functions\CSuperModRep::checkBack() cannot be called statically (0)
/home/bitrix/modules/super.mod/lib/functions/CSuperModRep.php:52
#0: Super\Functions\CSuperModRep::checkRepActive()
/home/bitrix/modules/super.mod/classes/general/CModEvents.php:1621
#1: CModEvents::OnPageStartHandler()
/home/bitrix/modules/main/classes/general/module.php:480
#2: ExecuteModuleEventEx(array)
/home/bitrix/modules/main/include.php:163
#3: require_once(string)
/home/bitrix/modules/main/include/prolog_before.php:14
#4: require_once(string)
/home/bitrix/modules/main/include/prolog.php:10
#5: require_once(string)
/home/bitrix/header.php:1
#6: require(string)
/home/index.php:1

В примере видно, что ошибку отдает сторонний метод CSuperModRep::checkBack() решения super.mod.

Исправление в общем случае будет таким: в коде checkBack() нужно правильно объявить статическую функцию:

function checkBack()

заменить на:

 public static function checkBack()

PHP Fatal error: $GLOBALS can only be modified using the $GLOBALS[$name] = $value syntax in /www/bitrix/modules/main/tools.php

Данная ошибка может появиться после повышения версии PHP до 8.x в случае, если не были установлены все доступные обновления платформы на версии PHP 7.x.

Решение проблемы:

Эта ошибка была исправлена в обновлении главного модуля main 22.100.0.

Поэтому необходимо понизить версию PHP до 7.x, произвести обновление продукта и модулей до последней доступной версии. И только потом повысить версию PHP до 8.х.

[TypeError] call_user_func_array(): Argument #1 ($callback) must be a valid callback, non-static method COMP\BXE\EventHandlers::AdminContextMenuShow() cannot be called statically (0)…

Эта ошибка может появиться после повышения версии PHP до 8, но уже не очень очевидна:

Пример ошибки

[TypeError]
call_user_func_array(): Argument #1 ($callback) must be a valid callback, non-static method COMP\BXE\EventHandlers::AdminContextMenuShow() cannot be called statically (0)
/var/www//bitrix/modules/main/classes/general/module.php:480
#0: ExecuteModuleEventEx
/var/www/bitrix/modules/main/interface/admin_ui_list.php:1983
#1: CAdminUiContextMenu->Show
/var/www/bitrix/modules/main/interface/admin_ui_list.php:1168
#2: CAdminUiList->ShowContext
/var/www/bitrix/modules/main/interface/admin_ui_list.php:630
#3: CAdminUiList->DisplayFilter
/var/www/bitrix/modules/iblock/admin/iblock_element_admin.php:5217
#4: include(string)
/var/www/bitrix/admin/cat_product_admin.php:3

Из текста ошибки сразу не узнать директорию модуля, но данный метод COMP\BXE\EventHandlers::AdminContextMenuShow() принадлежит стороннему модулю.

Решение проблемы:

Исправление в общем случае будет таким: в коде AdminContextMenuShow() нужно правильно объявить статическую функцию:

function AdminContextMenuShow()

заменить на:

public static function AdminContextMenuShow()

Белый экран после повышения версии PHP до 8.х, а на PHP 7.4 все работает

Такая ошибка может быть из-за того, что в настройках PHP установлен параметр short_open_tag = Off.

Решение проблемы:

  • Нужно задать в конфигурационном файле PHP: short_open_tag = On.
  • Проверить логи веб-сервера на предмет ошибок и устранить их.
  • Также можно просмотреть ошибки на странице сайта с белым экраном: нажать правую кнопку мыши и выбрать Просмотр кода страницы, пролистать страницу вниз и проверить имеются ли ошибки на ней.

Спасибо, помогло!

Спасибо :)


Это не то, что я ищу


Написано очень сложно и непонятно


Есть устаревшая информация


Слишком коротко, мне не хватает информации


Мне не нравится, как это работает

Понравилась статья? Поделить с друзьями:
  • Usb xtaf gui ошибка
  • Uwplauncher exe ошибка приложения
  • Utce ошибка соединения elm327
  • Ustor dll ошибка как исправить
  • Uwow ошибка подключения blz51901002