vote.AttachedVote.getWithVoted
Получить данные голосования с информацией о проголосовавших
Описание
Метод vote.AttachedVote.getWithVoted возвращает данные прикрепленного голосования вместе с информацией о проголосовавших пользователях.
Параметры
1. Через идентификатор прикрепленного опроса
attachId
integer
обязательный
Идентификатор прикрепленного голосования, получить можно методами vote.AttachedVote.get или vote.AttachedVote.getMany
pageSize
integer
необязательный
Количество записей на странице для списка проголосовавших.
Значение по умолчанию: 10
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
pageSize
integer
необязательный
Количество записей на странице для списка проголосовавших.
Значение по умолчанию: 10
userForMobileFormat
boolean
необязательный
Формат данных пользователей для мобильных устройств.
Значение по умолчанию: false
3. Через подписанный идентификатор
signedAttachId
string
обязательный
Подписанный идентификатор прикрепления, получить можно методом vote.AttachedVote.get, параметр ответа signedAttachId
pageSize
integer
необязательный
Количество записей на странице для списка проголосовавших.
Значение по умолчанию: 10
userForMobileFormat
boolean
необязательный
Формат данных пользователей для мобильных устройств.
Значение по умолчанию: false
Примеры запроса
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"attachId":**put_attach_id**,"pageSize":**put_page_size**,"userForMobileFormat":false}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/vote.AttachedVote.getWithVoted
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"attachId":**put_attach_id**,"pageSize":**put_page_size**,"userForMobileFormat":false,"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/vote.AttachedVote.getWithVoted
// This snippet is an ES module: top-level await requires type="module" or a bundler.
// $b24 is an already-initialized SDK instance (see the SDK "Get started" guide).
import { Text } from '@bitrix24/b24jssdk'
import type { B24Frame } from '@bitrix24/b24jssdk'
declare const $b24: B24Frame
// Shape of the payload returned in result (match the "response handling" section of the page)
type GetWithVotedResult = {
attach: {
ID: number
VOTE_ID: number
COUNTER: number
QUESTIONS: Record<string, unknown>
ANONYMITY: number
OPTIONS: number
userAnswerMap: Record<string, unknown>
canEdit: boolean
canVote: boolean
canRevote: boolean
isVoted: boolean
signedAttachId: string
resultUrl: string
downloadUrl: string
entityId: number
isFinished: boolean
}
voted: Record<string, Array<{
ID: number
NAME: string
IMAGE: string
WORK_POSITION: string
}>>
}
try {
const response = await $b24.actions.v2.call.make<GetWithVotedResult>({
method: 'vote.AttachedVote.getWithVoted',
params: {
attachId: 1,
pageSize: 10,
userForMobileFormat: false,
},
requestId: Text.getUuidRfc4122()
})
// The payload is available only on a successful response
if (!response.isSuccess) {
console.error(response.getErrorMessages().join('; '))
} else {
const result = response.getData()!.result
console.info('Attach ID:', result.attach.ID, '| Is voted:', result.attach.isVoted)
}
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
<!-- Load the SDK (UMD build); it is exposed as the global B24Js -->
<script src="https://unpkg.com/@bitrix24/b24jssdk@1/dist/umd/index.min.js"></script>
<script>
async function getWithVoted() {
try {
// Initialize the SDK inside a Bitrix24 frame
const $b24 = await B24Js.initializeB24Frame()
const response = await $b24.actions.v2.call.make({
method: 'vote.AttachedVote.getWithVoted',
params: {
attachId: 1,
pageSize: 10,
userForMobileFormat: false,
},
requestId: B24Js.Text.getUuidRfc4122()
})
// The payload is available only on a successful response
if (!response.isSuccess) {
console.error(response.getErrorMessages().join('; '))
return
}
const result = response.getData().result
console.info('Attach ID:', result.attach.ID, '| Is voted:', result.attach.isVoted)
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
}
document.addEventListener('DOMContentLoaded', getWithVoted)
</script>
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
try:
bitrix_response = client.vote.attached_vote.get_with_voted(
attach_id=1,
page_size=10,
user_for_mobile_format=False,
).response
result = bitrix_response.result
print(result)
except BitrixAPIError as error:
print(
"Ошибка Bitrix API",
f"error: {error.error}",
f"error_description: {error.error_description}",
sep="\n",
)
except BitrixSDKException as error:
print(f"Ошибка Bitrix SDK: {error.message}")
except Exception as error:
print(f"Непредвиденная ошибка: {error}")
try {
$response = $b24Service
->core
->call(
'vote.AttachedVote.getWithVoted',
[
'attachId' => **put_attach_id**,
'pageSize' => **put_page_size**,
'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.callMethod(
"vote.AttachedVote.getWithVoted",
{
"attachId": **put_attach_id**,
"pageSize": **put_page_size**,
"userForMobileFormat": false
},
function(result)
{
if(result.error())
{
console.error(result.error());
}
else
{
console.dir(result.data());
}
}
);
require_once('crest.php');
$result = CRest::call(
'vote.AttachedVote.getWithVoted',
[
'attachId' => **put_attach_id**,
'pageSize' => **put_page_size**,
'userForMobileFormat' => false
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';
Ответ
HTTP-статус: 200
{
"result": {
"attach": {
"ID": 1,
"VOTE_ID": 1,
"COUNTER": 1,
"QUESTIONS": {
"1": {
"ID": "1",
"ACTIVE": "Y",
"TIMESTAMP_X": "2025-08-12T11:47:50+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-12T11:47:50+03:00",
"QUESTION_ID": "1",
"C_SORT": "10",
"IMAGE_ID": null,
"MESSAGE": "первый вариант",
"MESSAGE_TYPE": "html",
"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][1]",
"~PERCENT": 0,
"PERCENT": 0
},
"3": {
"ID": "3",
"ACTIVE": "Y",
"TIMESTAMP_X": "2025-08-12T11:47:50+03:00",
"QUESTION_ID": "1",
"C_SORT": "20",
"IMAGE_ID": null,
"MESSAGE": "Второй вариант",
"MESSAGE_TYPE": "html",
"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][3]",
"~PERCENT": 100,
"PERCENT": 100
},
"5": {
"ID": "5",
"ACTIVE": "Y",
"TIMESTAMP_X": "2025-08-12T11:47:50+03:00",
"QUESTION_ID": "1",
"C_SORT": "30",
"IMAGE_ID": null,
"MESSAGE": "Третий вариант",
"MESSAGE_TYPE": "html",
"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": 0,
"OPTIONS": 0,
"userAnswerMap": {
"1": {
"3": {
"EVENT_ID": "1",
"EVENT_QUESTION_ID": "1",
"ANSWER_ID": "3",
"ID": "1",
"MESSAGE": ""
}
}
},
"canEdit": true,
"canVote": false,
"canRevote": false,
"isVoted": true,
"signedAttachId": "1.d6db75c1a03fe2313547841960f1d4e95906721cf211763be19855fc6aeec45b",
"resultUrl": "\/vote-result\/qgp3r31sg4vj5vas",
"downloadUrl": "\/bitrix\/services\/main\/ajax.php?action=vote.AttachedVote.download\u0026SITE_ID=s1\u0026signedAttachId=1.d6db75c1a03fe2313547841960f106721cf211763be19855fc6aeec45b",
"entityId": 32219,
"isFinished": false
},
"voted": {
"3": [
{
"ID": 1,
"NAME": "Саша",
"IMAGE": "https:\/\/your-domain.bitrix24.ru\/b13743910\/resize_cache\/2267\/cec8d72046af30148f6f5b573a3a0aa8\/main\/c7b\/c7bd44b1bab25dd97d038ce1b\/d5fb56b94dc2c3cd8c006a2c595a4895.jpg",
"WORK_POSITION": ""
}
]
}
},
"time": {
"start": 1755077476.824466,
"finish": 1755077476.928421,
"duration": 0.10395503044128418,
"processing": 0.10184097290039062,
"date_start": "2025-08-13T12:31:16+03:00",
"date_finish": "2025-08-13T12:31:16+03:00",
"operating_reset_at": 1755078076,
"operating": 0
}
}
Возвращаемые данные
result
object
Корневой элемент ответа. Содержит информацию о голосовании и проголосовавших, структура описана ниже
time
time
Информация о времени выполнения запроса
Обработка ошибок
{
"error": "ATTACH_NOT_FOUND",
"error_description": "Attach not found"
}
| Код | Описание | Значение |
|---|---|---|
100 |
Bitrix\Vote\Attach All parameters in the constructor must have real class type | Не передан или некорректен обязательный параметр. Передайте attachId, signedAttachId либо связку moduleId + entityType + entityId |
ATTACH_NOT_FOUND |
Attach not found | Голосование не найдено |
ATTACH_READ_ACCESS_DENIED |
Attach read access denied | Нет прав для участия в голосовании |

