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 ответов

250 просмотров

А вы пробовали просто через функцию, без класса? Ну и скрин скиньте из 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
Странно вроде все правильно, пробовали логировать ...

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

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

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

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
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
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта