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

Получить данные прикрепленного голосования vote.AttachedVote.get (vote.attach…

Оптимизация производительности и безопасности — залог успешного проекта на 1С-Битрикс. Данный материал посвящен практическому применению «Получить данные прикрепленного голосования vote.AttachedVote.get (vote.attach…». Мы подготовили подробный разбор принципов работы и развернутые примеры интеграции.

Получить данные прикрепленного голосования vote.AttachedVote.get

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

Метод vote.AttachedVote.get возвращает данные прикрепленного голосования.

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

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

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

Название
тип
Описание
attachId
integer
Идентификатор прикрепленного голосования, может быть равен voteId из результатов vote.Integration.Im.send

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

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

Название
тип
Описание
signedAttachId*
string
Подписанный идентификатор прикрепления, получить можно методом vote.AttachedVote.get, параметр ответа signedAttachId

Примеры кода

Пример вызова через идентификатор привязанного опроса.

  • cURL (Webhook)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"attachId":**put_attach_id**}' \
    https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webbhook_here**/vote.AttachedVote.get
  • cURL (OAuth)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"attachId":**put_attach_id**,"auth":"**put_access_token_here**"}' \
    https://**put_your_bitrix24_address**/rest/vote.AttachedVote.get
  • JS
    try
    {
        const response = await $b24.callMethod(
            'vote.AttachedVote.get',
            {
                attachId: **put_attach_id**
            }
        );
        
        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.get',
                [
                    'attachId' => **put_attach_id**
                ]
            );

        $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.get",
        {
            "attachId": **put_attach_id**
        },
        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.get',
        [
            'attachId' => **put_attach_id**
        ]
    );

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

Пример вызова через связанный с опросом элемент.

  • cURL (Webhook)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"moduleId":"im","entityType":"Bitrix\\Vote\\Attachment\\ImMessageConnector","entityId":32221}' \
    https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webbhook_here**/vote.AttachedVote.get
  • cURL (OAuth)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"moduleId":"im","entityType":"Bitrix\\Vote\\Attachment\\ImMessageConnector","entityId":32221,"auth":"**put_access_token_here**"}' \
    https://**put_your_bitrix24_address**/rest/vote.AttachedVote.get
  • JS
    try
    {
        const response = await $b24.callMethod(
            'vote.AttachedVote.get',
            {
                moduleId: 'im',
                entityType: 'Bitrix\\Vote\\Attachment\\ImMessageConnector',
                entityId: 32221
            }
        );
        
        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.get',
                [
                    'moduleId' => 'im',
                    'entityType' => 'Bitrix\\Vote\\Attachment\\ImMessageConnector',
                    'entityId' => 32221
                ]
            );

        $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.get",
        {
            "moduleId": "im",
            "entityType": "Bitrix\\Vote\\Attachment\\ImMessageConnector",
            "entityId": 32221
        },
        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.get',
        [
            'moduleId' => 'im',
            'entityType' => 'Bitrix\\Vote\\Attachment\\ImMessageConnector',
            'entityId' => 32221
        ]
    );

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

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

HTTP-статус: 200

{
  "attach": {
    "ID": 1,
    "VOTE_ID": 1,
    "COUNTER": 1,
    "QUESTIONS": {
      "1": {
        "ID": "1",
        "ACTIVE": "Y",
        "TIMESTAMP_X": "2025-08-05T09:08:31+03:00",
        "VOTE_ID": "1",
        "C_SORT": "10",
        "COUNTER": "1",
        "QUESTION": "Как дела?",
        "QUESTION_TYPE": "text",
        "IMAGE_ID": null,
        "DIAGRAM": "Y",
        "DIAGRAM_TYPE": "histogram",
        "REQUIRED": "N",
        "FIELD_TYPE": "0",
        "FIELD_NAME": "bx_vote_event[1][BALLOT][1]",
        "IMAGE": null,
        "ANSWERS": {
          "1": {
            "ID": "1",
            "ACTIVE": "Y",
            "TIMESTAMP_X": "2025-08-05T09:08:31+03:00",
            "QUESTION_ID": "1",
            "C_SORT": "10",
            "IMAGE_ID": null,
            "MESSAGE": "Отлично!",
            "MESSAGE_TYPE": "text",
            "COUNTER": "1",
            "FIELD_TYPE": "0",
            "FIELD_WIDTH": "0",
            "FIELD_HEIGHT": "0",
            "FIELD_PARAM": null,
            "COLOR": "",
            "REACTION": "",
            "~FIELD_NAME": "bx_vote_event[1][BALLOT][1]",
            "FIELD_NAME": "bx_vote_event[1][BALLOT][1]",
            "MESSAGE_FIELD_NAME": "bx_vote_event[1][MESSAGE][1][1]",
            "~PERCENT": 100,
            "PERCENT": 100
          },
          "3": {
            "ID": "3",
            "ACTIVE": "Y",
            "TIMESTAMP_X": "2025-08-05T09:08:31+03:00",
            "QUESTION_ID": "1",
            "C_SORT": "20",
            "IMAGE_ID": null,
            "MESSAGE": "Лучше всех!",
            "MESSAGE_TYPE": "text",
            "COUNTER": "0",
            "FIELD_TYPE": "0",
            "FIELD_WIDTH": "0",
            "FIELD_HEIGHT": "0",
            "FIELD_PARAM": null,
            "COLOR": "",
            "REACTION": "",
            "~FIELD_NAME": "bx_vote_event[1][BALLOT][1]",
            "FIELD_NAME": "bx_vote_event[1][BALLOT][1]",
            "MESSAGE_FIELD_NAME": "bx_vote_event[1][MESSAGE][1][3]",
            "~PERCENT": 0,
            "PERCENT": 0
          },
          "5": {
            "ID": "5",
            "ACTIVE": "Y",
            "TIMESTAMP_X": "2025-08-05T09:08:31+03:00",
            "QUESTION_ID": "1",
            "C_SORT": "30",
            "IMAGE_ID": null,
            "MESSAGE": "Какие дела??",
            "MESSAGE_TYPE": "text",
            "COUNTER": "0",
            "FIELD_TYPE": "0",
            "FIELD_WIDTH": "0",
            "FIELD_HEIGHT": "0",
            "FIELD_PARAM": null,
            "COLOR": "",
            "REACTION": "",
            "~FIELD_NAME": "bx_vote_event[1][BALLOT][1]",
            "FIELD_NAME": "bx_vote_event[1][BALLOT][1]",
            "MESSAGE_FIELD_NAME": "bx_vote_event[1][MESSAGE][1][5]",
            "~PERCENT": 0,
            "PERCENT": 0
          }
        }
      }
    },
    "ANONYMITY": 1,
    "OPTIONS": 1,
    "userAnswerMap": {
      "1": {
        "1": {
          "EVENT_ID": "1",
          "EVENT_QUESTION_ID": "1",
          "ANSWER_ID": "1",
          "ID": "1",
          "MESSAGE": ""
        }
      }
    },
    "canEdit": true,
    "canVote": false,
    "canRevote": true,
    "isVoted": true,
    "signedAttachId": "1.52280488561bf567f33cf03b5ce353e154a9c3552b51b2ffb67be3bb7f26f986",
    "resultUrl": "/vote-result/me7hn922bm011mbf",
    "downloadUrl": "/bitrix/services/main/ajax.php?action=vote.AttachedVote.download&SITE_ID=s1&signedAttachId=1.52280488561bf567f33cf03b5ce353e154a9c3552b51b2ffb67be3bb7f26f986",
    "entityId": 13,
    "isFinished": false
  }
}

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

Название
тип
Описание
result
object
Корневой элемент ответа. Содержит объект attach с информацией о прикрепленном голосовании, структура описана ниже
time
time
Информация о времени выполнения запроса

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

Название
тип
Описание
ID
integer
Идентификатор прикрепленного голосования
VOTE_ID
integer
Идентификатор самого голосования
COUNTER
integer
Счетчик голосов
QUESTIONS
array
Массив с вопросами опроса
ANONYMITY
integer
Уровень анонимности опроса
OPTIONS
integer
Доступность переголосования
userAnswerMap
array
Карта ответов текущего пользователя
canEdit
bool
Может ли текущий пользователь редактировать опрос
canVote
bool
Может ли текущий пользователь проголосовать
canRevote
bool
Может ли текущий пользователь переголосовать
isVoted
bool
Проголосовал ли уже текущий пользователь
signedAttachId
string
Подписанный идентификатор
resultUrl
string
URL-адрес для просмотра результатов опроса
downloadUrl
string
URL-адрес для скачивания результатов опроса
entityId
integer
Идентификатор элемента, к которому прикреплен опрос
isFinished
bool
Завершен ли опрос

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

HTTP-статус: 400

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

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

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

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

Советы эксперта по интеграции:

  • Всегда используйте кэширование при частых запросах к vote.attachedvote.get.md, чтобы разгрузить базу данных.
  • Соблюдайте стандарты PSR при написании обработчиков для «Получить данные прикрепленного голосования vote.AttachedVote.get (vote.attach…».
  • Регулярно проводите аудит производительности системы с помощью встроенного монитора 1С-Битрикс.

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

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

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

Related Post

Технологическое партнерствоТехнологическое партнерство

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

Получить список обзвонов crm.calllist.listПолучить список обзвонов crm.calllist.list

При разработке и поддержке проектов на платформе 1С-Битрикс критически важно использовать современные стандарты D7 API. В этом руководстве мы детально изучим тему «Получить список обзвонов crm.calllist.list», разберем архитектурные особенности и

Получить поля цены catalog.price.getFieldsПолучить поля цены catalog.price.getFields

Эффективная интеграция и кастомизация функционала в Битрикс24 часто требует работы на уровне API. Сегодня мы подробно рассмотрим «Получить поля цены catalog.price.getFields». Вы узнаете экспертные методики работы с catalog.price.getFields и научитесь