И так: регистрируем приложение в своем Битрикс24. Как это сделал описал в //infostart.ru/public/574117/. Помимо прав на CRM дайте еще права на пользователей. В примере по ИД пользователя вытаскивается ФИО. А без прав будет ошибка.
Запустим обработку и внесем все регистрационные данные
Сохраните чтобы потом не вводить заново.
Первое, что можно попробовать, это получить список доступных событий. Жмите Получить список событий. Получим что-то вроде этого.
В примере используется событие ONCRMDEALUPDATE.
Для того, чтобы события начали регистрироваться жмем Начать регистрацию событий.
Теперь перейдем в наш Битрикс24 и изменим уже заранее добавленные сделки. Например изменим статус.
Вернемся в обработку и прочитаем события
Можно завершить регистрацию и убедится, что после этого события не регистрируются, обработка ничего не вернет.
Теперь код. Процедуры ОтправитьRESTЗапрос и другие используются из модуля описанного в предыдущей статье.
Получить список событий
Процедура ПолучитьСписокСобытий() Экспорт
СписокСобытий = "";
Ответ = ОтправитьRESTЗапрос("events", "");
М = Неопределено;
Если Ответ.Свойство("result", М) Тогда
Для Каждого С Из М Цикл
СписокСобытий = СписокСобытий + С + Символы.ПС;
КонецЦикла;
КонецЕсли;
Сообщить(СписокСобытий);
КонецПроцедуры
Начать регистрацию событий
Процедура НачатьРегистрациюИзменений() Экспорт
Ответ = ОтправитьRESTЗапрос("event.bind", "event=ONCRMDEALUPDATE&event_type=offline");
Если Ответ.Свойство("result") Тогда
Сообщить("Ок");
Иначе
Сообщить("Ошибка!");
КонецЕсли;
КонецПроцедуры
Обработка изменений сделок
Процедура ПрочитатьСобытия() Экспорт
Ответ = ОтправитьRESTЗапрос("event.offline.get", "filter[EVENT_NAME]=ONCRMDEALUPDATE");
Р = Неопределено;
Если Ответ.Свойство("result", Р) Тогда
Для Каждого С Из Р.Events Цикл
Если С.EVENT_NAME = "ONCRMDEALUPDATE" Тогда
// вытащу сделку
Сделка = ОтправитьRESTЗапрос("crm.deal.get", "id=" + С.EVENT_DATA.FIELDS.ID);
ИмяСделки = "";
Если Сделка.Свойство("result") Тогда
ИмяСделки = Сделка.result.TITLE;
КонецЕсли;
// кто менял
Пользователь = ОтправитьRESTЗапрос("user.get", "filter[id]=" + С.EVENT_ADDITIONAL.user_id);
ИмяПользователя = "";
Если Пользователь.Свойство("result") Тогда
ИмяПользователя = Пользователь.result[0].LAST_NAME + " " + Пользователь.result[0].NAME;
КонецЕсли;
Сообщить("В " + С.TIMESTAMP_X + " сделку " + ИмяСделки + " изменил пользователь " + ИмяПользователя);
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
Вся документация по REST API Битрикс24 здесь
Обработка тестировалась на платформе 8.3.10.2580