208 похожих чатов

Привет. Не пойму в чём может быть причина ошибки? Есть класс, который

изменяет элемент.
Если я его запускаю со страницы, то всё прекрасно отрабатывает, но если ставлю на событие изменения элемента, то Fatal Error и ругает компиляцию сущности,
Fatal error: Cannot declare class idea\CATALOG_PRODUCTSTable, because the name is already in use...
На странице -
$action = new ToggleActivateProduct(42538);
$action->RunActionElements(); - Всё гуд.

По событию:

AddEventHandler("iblock", "OnAfterIBlockElementUpdate", Array("ElementsUpdate", "UpdateProductActiveHandler"));

class ElementsUpdate
{
public static function UpdateProductActiveHandler(&$arFields)
{
if($arFields['ID'] > 0)
{
$action = new ToggleActivateProduct($arFields['ID']);
$action->RunActionElements();
}
}
}

Так не пашет

24 ответов

259 просмотров

А вы пробовали просто через функцию, без класса? Ну и скрин скиньте из init.php, мало ли, может чтото не так :)

В тексте ошибке же явно указано, что такой класс уже есть)

Андрей-Хирнов Автор вопроса
Станислав
В тексте ошибке же явно указано, что такой класс у...

А почему его нет при запуске этого же кода со страницы?

Андрей Хирнов
А почему его нет при запуске этого же кода со стра...

Так у вас же совершенно разные способы запуска :)

Андрей Хирнов
Без класса та же беда

Скиньте скрин как пробовали :)

Странно вроде все правильно, пробовали логировать вызов события через вот это: https://dev.1c-bitrix.ru/api_help/main/functions/debug/addmessage2log.php

А стоп, а класс ToggleActivateProduct у вас в отдельном файле или там же в init.php?

Андрей-Хирнов Автор вопроса
Anton Eskov
А стоп, а класс ToggleActivateProduct у вас в отде...

в отдельном. В ините Loader::registerAutoLoadClasses подключает его

Андрей Хирнов
в отдельном. В ините Loader::registerAutoLoadClass...

Попробуйте вот по такому принципу подключить, там помоему в событиях вроде бы не хватает только стандартной регистрации класса в системе.

Андрей Хирнов
в отдельном. В ините Loader::registerAutoLoadClass...

Придумывать не буду, давно такого не делал, но там какието проблемы точно есть с подключением своего класса в событие :)

Андрей Хирнов
в отдельном. В ините Loader::registerAutoLoadClass...

Это если хочешь использовать событие из своего класса, прошу прощение

Андрей Хирнов
в отдельном. В ините Loader::registerAutoLoadClass...

Вы в init.php, свой класс через use, подключили?

Anton Eskov
Вы в init.php, свой класс через use, подключили?

да нет там проблемы с подключением у него, проблема в самом коде

Андрей-Хирнов Автор вопроса
Станислав
да нет там проблемы с подключением у него, проблем...

Может быть вы и правы, дебага то мы не видели :)

Андрей-Хирнов Автор вопроса
Anton Eskov
Странно вроде все правильно, пробовали логировать ...

Судя по логу событие срабатывает как надо.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта