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

Всем добрый день. Есть список машин (инфоблоки), есть список водителей

(HL блоки).
Когда я в машины добавляю водителя через справочник, срабатывает событие OnAfterIBlockElementUpdate, которое переносит информацию о машине в запись водителя.
Когда наоборот, я вношу информацию о машине в запись к водителю, через событие OnAfterUpdate поступает информация о водителе в инфоблок с машиной.
Проблема в том, что эти события прекрасно работают по отдельности. Но когда включаешь оба, происходит "вечный круговорот" событий, как на картинке и выкидывает ошибку.
Вопрос: можно ли как-то запретить обратное событие, если уже сыграло первое событие?

3 ответов

27 просмотров

Во первых: да. Гугли статью про зацикливание обработчиков событий. Во-вторых: у тебя такое получилось из-за смешения семантики. Если ты делаешь прокат автомобилей, то машина она просто существует и водитель просто существует, а есть "сессия" - это запись о том что машину х с такого-то по такое-то число сдали в аренду такому-то водителю. Если ты просто занимаешься учетом, то обратная связь (машина -> водитель или водитель -> машина, в зависимости от того что первично) не нужна

Андрей- Автор вопроса
Andrei Nikolaev
Во первых: да. Гугли статью про зацикливание обраб...

Водители не берут в аренду. Они, по-сути, нанятые работники

Андрей- Автор вопроса
Andrei Nikolaev
Во первых: да. Гугли статью про зацикливание обраб...

Про зацикливание прочитаю, спасибо за наводку 👍

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
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
Карта сайта