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