Задать вопрос
Ответы пользователя по тегу Битрикс24
  • Как упомянуть ответственного в комментариях через вебхук?

    grantur5707
    @grantur5707
    Full Stack Web Developer
    В API Битрикс24 нет прямой возможности упомянуть пользователя в комментарии, как это реализовано в интерфейсе Битрикс24. Могу предложить сделать простое упоминание текстом:

    $responsibleId = 123;
    $responsibleName = "Иван Иванов";
    
    $updateComm = CRest::call(
        'crm.timeline.comment.add',
        array(
            'fields' => array(
                'ENTITY_ID' => $dealId,
                'ENTITY_TYPE' => 'deal',
                'COMMENT' => "Ответственный: $responsibleName (#$responsibleId)"
            )
        )
    );
    Ответ написан
    Комментировать
  • Как работать с исходящим вебхуком в Битрикс используя PHP?

    grantur5707
    @grantur5707
    Full Stack Web Developer
    Например, вот так:

    $file = 'deal_updates.txt';
    
    $input = file_get_contents('php://input');
    $data = json_decode($input, true);
    
    if (isset($data['event']) && $data['event'] === 'ONCRMDEALUPDATE') {
        $dealId = $data['data']['FIELDS']['ID'];
        $newStatus = $data['data']['FIELDS']['STATUS_ID'];
    
        $updateDate = date('Y-m-d H:i:s');
    
        $log = "Deal ID: $dealId | New Status: $newStatus | Updated at: $updateDate\n";
    
        file_put_contents($file, $log, FILE_APPEND);
    }
    
    http_response_code(200);
    echo 'OK';


    А вообще я бы рекомендовал вам ознакомиться с документацией:
    https://dev.1c-bitrix.ru/learning/course/index.php...
    Ответ написан
    Комментировать
  • Как вывести поле с типом список?

    grantur5707
    @grantur5707
    Full Stack Web Developer
    Сделайте просто доп запрос к методу crm.deal.userfield.get, указав код поля, для получения всех значений, которые могут быть в списке. После этого вы сможете сопоставить ключ (например, 46) с его значением.

    Вот пример кода:
    $userFieldResult = CRest::call(
        'crm.deal.userfield.get',
        array(
            'id' => 'UF_CRM_1726662473238'
        )
    );
    
    if (!empty($userFieldResult['result']['LIST'])) {
        $listValues = array_column($userFieldResult['result']['LIST'], 'VALUE', 'ID');
    
        $dealResult = CRest::call(
            'crm.deal.get',
            array(
                'id' => 580 
            )
        );
    
        $listValueId = $dealResult['result']['UF_CRM_1726662473238'];
    
        if (isset($listValues[$listValueId])) {
            $listValue = $listValues[$listValueId];
        }
    }
    Ответ написан
    Комментировать