Как в Битрикс 24 разослать уведомление при изменении поля?

В Битрикс24 существует несколько способов отправки уведомлений при изменении поля. Рассмотрим два основных метода: с использованием встроенного механизма бизнес-процессов и с помощью написания собственного скрипта на языке PHP.

  1. Метод с использованием встроенного механизма бизнес-процессов:
  • Откройте нужный раздел в Битрикс24 и перейдите в настройки списка элементов.
  • Нажмите на кнопку "Бизнес-процессы" и создайте новый процесс.
  • Укажите необходимые условия и действия для запуска процесса, а именно изменение нужного поля.
  • Добавьте действие "Отправить уведомление" и настройте его с помощью редактора шаблонов уведомлений.
  • Сохраните и опубликуйте бизнес-процесс.

Теперь, при изменении поля, уведомление будет автоматически отправляться.

  1. Метод с помощью написания собственного скрипта на языке PHP:
  • Откройте файл сущности, в котором хранится нужное поле. Обычно это файл класса сущности, который находится в директории "bitrix/modules/<module_name>/lib/".
  • В нужном методе класса добавьте следующий код:
    use BitrixMainEventManager;

    $eventManager = EventManager::getInstance();
    $eventManager->addEventHandler(
        "module_name",
        "<entity_name>.OnBefore<field_name>Update",
        ["<ClassName>", "<MethodName>"]
    );

Здесь:

  • "module_name" - имя модуля, в котором находится сущность;
  • "<entity_name>" - имя класса сущности;
  • "<field_name>" - название изменяемого поля;
  • "<ClassName>" - имя класса, в котором будет находиться метод обработчик;
  • "<MethodName>" - метод обработчик.
  • Создайте класс "<ClassName>", в котором будет находиться метод обработчик. Пример реализации может выглядеть следующим образом:
    use BitrixMainMailEvent;
 
    class ClassName
    {
        public static function MethodName(&$arFields)
        {
            $arFields["CUSTOM_FIELD"] = " значение измененного поля ";
             
            Event::send(array(
                "EVENT_NAME" => "notification_template",
                "LID" => SITE_ID,
                "C_FIELDS" => array(
                    "FIELD_NAME" => $arFields["FIELD_NAME"],
                    "CUSTOM_FIELD" => $arFields["CUSTOM_FIELD"],
                    "USER_NAME" => $arFields["USER_NAME"],
                    // другие необходимые поля
                ),
            ));
        }
    }
  • "notification_template" - имя почтового шаблона, в котором описано содержание уведомления;
  • SITE_ID - идентификатор сайта;
  • "FIELDNAME", "CUSTOMFIELD", "USER_NAME" - примеры полей, которые могут быть использованы в уведомлении.

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

Уточню, что в данном ответе предоставлены только основные примеры кода и необходимо адаптировать их под свои конкретные ситуации. Также, важно наличие необходимых прав доступа для выполнения этих действий и корректную настройку модуля Битрикс24.