Для отслеживания изменений стадий сделок в Bitrix24 и извлечения информации о датах изменений, вам нужно использовать метод API `crm.deal.get` в сочетании с методом `crm.timeline.list`.
1. **Получение списка сделок**: Сначала получите список сделок, которые вас интересуют, используя метод `crm.deal.list`. Убедитесь, что вы имеете доступ к нужным сделкам.
2. **Получение истории изменений staged**: Для каждой сделки, у которой вы хотите зафиксировать даты изменений стадий, используйте метод `crm.timeline.list`. Этот метод позволяет получить историю изменений для сделок, включая изменения стадий. Обратите внимание, что вам нужно будет указать ID сделки.
Пример вызова должен выглядеть следующим образом:
```php
$dealId = 'XXX'; // Замените XXX на ID вашей сделки
$timelineItems = restApiCall('crm.timeline.list', ['entityId' => $dealId]);
```
3. **Обработка полученных данных**: Извлеките нужные данные из полученного ответа. В частности, вам нужно будет найти записи о изменении стадий, которые обычно имеют тип `CRM_ACTIVITY_TYPE_DEAL_STAGE`.
4. **Запись данных в пользовательские поля**: После того как вы извлекли даты изменений стадий, вы можете использовать метод `crm.deal.update` для обновления пользовательских полей в сделке. Убедитесь, что пользовательские поля обновляются с правильными значениями.
Пример обновления сделки:
```php
$updateResult = restApiCall('crm.deal.update', [
'id' => $dealId,
'fields' => [
'UF_DATE_STAGE_1' => $dateStage1, // Здесь подставьте нужные даты
'UF_DATE_STAGE_2' => $dateStage2,
// И так далее для других стадий...
]
]);
```
5. **Программирование и автоматизация**: Вы можете автоматизировать этот процесс с помощью скриптов и задач, которые периодически будут проверять новые сделки и обновлять поля с датами изменений.
Важно помнить, что с помощью API Bitrix24 есть ограничения по количеству запросов в минуту, так что лучше сделать паузу между запросами, если будет нужно обрабатывать много сделок.
Таким образом, процесс заключается в получении историй изменений сделок и их использования для заполнения пользовательских полей с датами по соответствующим стадиям.