Блог Горошко Андрея Bitrix24 Получить список проголосовавших за ответ vote.AttachedVote.getAnswerVoted (vo…

Получить список проголосовавших за ответ vote.AttachedVote.getAnswerVoted (vo…

Эффективная интеграция и кастомизация функционала в Битрикс24 часто требует работы на уровне API. Сегодня мы подробно рассмотрим «Получить список проголосовавших за ответ vote.AttachedVote.getAnswerVoted (vo…». Вы узнаете экспертные методики работы с vote.attachedvote.getAnswerVoted.md и научитесь избегать типичных ошибок начинающих разработчиков.

Получить список проголосовавших за ответ vote.AttachedVote.getAnswerVoted

> Scope: vote
>
> Кто может выполнять метод: пользователь с правами чтения голосования

Метод vote.AttachedVote.getAnswerVoted возвращает список пользователей, проголосовавших за указанный вариант ответа.

Параметры метода

Доступно три варианта вызова метода.

1. Через идентификатор прикрепленного опроса

Название
тип
Описание
attachId
integer
Идентификатор прикрепленного голосования, получить можно методами vote.AttachedVote.get или vote.AttachedVote.getMany
answerId
integer
Идентификатор ответа, получить можно методами vote.AttachedVote.get или vote.AttachedVote.getMany
pageNavigation
object
Параметры постраничной навигации, например { size: 10, page: 1 }
userForMobileFormat
boolean
Формат данных пользователей для мобильных устройств. Значение по умолчанию: false

2. Через элемент с опросом

Название
тип
Описание
moduleId
string
Идентификатор модуля, возможные значения:
— Im для опроса в чате,
— blog для опроса в ленте
entityType
string
Тип объекта, возможные значения:
— Bitrix\\Vote\\Attachment\\ImMessageConnector для опроса в чате,
— Bitrix\\Vote\\Attachment\\BlogPostConnector для опроса в ленте
entityId
integer
Идентификатор элемента, возможные значения:
— id сообщения чата с опросом, получить можно методом vote.Integration.Im.send,
— id поста с опросом в ленте, получить можно методом log.blogpost.get
answerId
integer
Идентификатор ответа, получить можно методами vote.AttachedVote.get или vote.AttachedVote.getMany
pageNavigation
object
Параметры постраничной навигации, например { size: 10, page: 1 }
userForMobileFormat
boolean
Формат данных пользователей для мобильных устройств. Значение по умолчанию: false

3. Через подписанный идентификатор

Название
тип
Описание
signedAttachId
string
Подписанный идентификатор прикрепления, получить можно методом vote.AttachedVote.get, параметр ответа signedAttachId
answerId
integer
Идентификатор ответа, получить можно методами vote.AttachedVote.get или vote.AttachedVote.getMany
pageNavigation
object
Параметры постраничной навигации, например { size: 10, page: 1 }
userForMobileFormat
boolean
Формат данных пользователей для мобильных устройств. Значение по умолчанию: false

Примеры кода

  • cURL (Webhook)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"attachId":**put_attach_id**,"answerId":**put_answer_id**,"pageNavigation":{"pageSize":**put_page_size**,"currentPage":**put_page**},"userForMobileFormat":false}' \
    https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webbhook_here**/vote.AttachedVote.getAnswerVoted
  • cURL (OAuth)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"attachId":**put_attach_id**,"answerId":**put_answer_id**,"pageNavigation":{"pageSize":**put_page_size**,"currentPage":**put_page**},"userForMobileFormat":false,"auth":"**put_access_token_here**"}' \
    https://**put_your_bitrix24_address**/rest/vote.AttachedVote.getAnswerVoted
  • JS
    try
    {
        const response = await $b24.callMethod(
            'vote.AttachedVote.getAnswerVoted',
            {
                attachId: **put_attach_id**,
                answerId: **put_answer_id**,
                pageNavigation: {
                    pageSize: **put_page_size**,
                    currentPage: **put_page**
                },
                userForMobileFormat: false
            }
        );
        
        const result = response.getData().result;
        console.log('Dat a:', result);
        
        processResult(result);
    }
    catch( error )
    {
        console.error('Error:', error);
    }
  • PHP
    try {
        $response = $b24Service
            ->core
            ->call(
                'vote.AttachedVote.getAnswerVoted',
                [
                    'attachId' => **put_attach_id**,
                    'answerId' => **put_answer_id**,
                    'pageNavigation' => [
                        'pageSize' => **put_page_size**,
                        'currentPage' => **put_page**
                    ],
                    'userForMobileFormat' => false
                ]
            );

        $result = $response
            ->getResponseData()
            ->getResult();

        echo 'Success: ' . print_r($result, true);
        processData($result);

    } catch (Throwable $e) {
        error_log($e->getMessage());
        echo 'Error: ' . $e->getMessage();
    }
  • BX24.js
    BX24.callMethod(
        "vote.AttachedVote.getAnswerVoted",
        {
            "attachId": **put_attach_id**,
            "answerId": **put_answer_id**,
            "pageNavigation": {
                "pageSize": **put_page_size**,
                "currentPage": **put_page**
            },
            "userForMobileFormat": false
        },
        function(result)
        {
            if(result.error())
            {
                console.error(result.error());
            }
            else
            {
                console.dir(result.data());
            }
        }
    );
  • PHP CRest
    require_once('crest.php');

    $result = CRest::call(
        'vote.AttachedVote.getAnswerVoted',
        [
            'attachId' => **put_attach_id**,
            'answerId' => **put_answer_id**,
            'pageNavigation' => [
                'pageSize' => **put_page_size**,
                'currentPage' => **put_page**
            ],
            'userForMobileFormat' => false
        ]
    );

    echo '<PRE>';
    print_r($result);
    echo '</PRE>';

Обработка ответа

HTTP-статус: 200

{
    "result": {
        "items": [
            {
                "ID": 1,
                "NAME": "Саша",
                "IMAGE": "https:\/\/your-domain.bitrix24.ru\/b13743910\/resize_cache\/2267\/cec8d72046af30148f6f5b573a3a0aa8\/main\/c7b\/c7bd44b1babaa54438ce1b\/d5fb56b94dc2c3c2c595a4895.jpg",
                "WORK_POSITION": ""
            }
        ]
    },
    "total": 1,
    "time": {
        "start": 1755076703.233388,
        "finish": 1755076703.264925,
        "duration": 0.03153705596923828,
        "processing": 0.029319047927856445,
        "date_start": "2025-08-13T12:18:23+03:00",
        "date_finish": "2025-08-13T12:18:23+03:00",
        "operating_reset_at": 1755077303,
        "operating": 0
    }
}

Возвращаемые данные

Название
тип
Описание
result
object
Корневой элемент ответа. Содержит массив данных о проголосовавших пользователях, структура описана ниже
total
integer
Общее количество проголосовавших за данный ответ
time
time
Информация о времени выполнения запроса

Элемент ответа result {#result}

Название
тип
Описание
ID
integer
Идентификатор пользователя
NAME
string
Имя пользователя
IMAGE
string
Ссылка на изображение пользователя
WORK_POSITION
string
Должность пользователя

Обработка ошибок

HTTP-статус: 4xx (например, 401, 403)

{
    "error": "ATTACH_NOT_FOUND",
    "error_description": "Attach not found"
}

Возможные коды ошибок

КодОписание
ATTACH_NOT_FOUNDГолосование не найдено
ATTACH_READ_ACCESS_DENIEDНет прав для участия в голосовании
  • [](./index)
  • [](./vote.attachedvote.download)
  • [](./vote.attachedvote.get)
  • [](./vote.attachedvote.getMany)
  • [](./vote.attachedvote.getWithVoted)
  • [](./vote.attachedvote.recall)
  • [](./vote.attachedvote.resume)
  • [](./vote.attachedvote.stop)
  • [](./vote.attachedvote.vote)
  • [](./vote.integration.im.send)

💡 Экспертное мнение и рекомендации

Практические рекомендации:

  • При написании кастомных компонентов для «Получить список проголосовавших за ответ vote.AttachedVote.getAnswerVoted (vo…» всегда разделяйте бизнес-логику и представление (шаблон).
  • Используйте отладку SQL-запросов через конструкцию $wpdb->last_query или стандартный трекер Битрикса, чтобы контролировать нагрузку.

Похожая задача в бизнесе?

Помогу автоматизировать процессы и внедрить ИИ

Меня зовут Андрей Горошко. Я Full-stack разработчик и эксперт по 1С-Битрикс. Настраиваю CRM Битрикс24, разрабатываю защищенные API и создаю умных ИИ-агентов для автоматизации рутины.

Related Post

Получить значения всех полей привязки элемента корзины к оплате sale.paymenti…Получить значения всех полей привязки элемента корзины к оплате sale.paymenti…

Каждый PHP-разработчик, работающий с экосистемой Bitrix Framework, должен глубоко понимать работу её ключевых компонентов. В этой статье мы проведем подробный аудит темы «Получить значения всех полей привязки элемента корзины к

Изменить лид crm.lead.updateИзменить лид crm.lead.update

Каждый PHP-разработчик, работающий с экосистемой Bitrix Framework, должен глубоко понимать работу её ключевых компонентов. В этой статье мы проведем подробный аудит темы «Изменить лид crm.lead.update», проанализируем лучшие практики и покажем,

Получить настройки общего направления сделок crm.dealcategory.default.getПолучить настройки общего направления сделок crm.dealcategory.default.get

Каждый PHP-разработчик, работающий с экосистемой Bitrix Framework, должен глубоко понимать работу её ключевых компонентов. В этой статье мы проведем подробный аудит темы «Получить настройки общего направления сделок crm.dealcategory.default.get», проанализируем лучшие