Возможно ли в Bitrix получить значения пользовательского поля enumeration?
У меня есть поле в Bitrix (enumeration).
Я получаю данные в таком же виде, то есть "1 - 444", например, но Bitrix ожидает значение ID поля, а не строки. Поле сделки UF_CRM_..., которое как раз является списком (enumeration), возвращает значение 45 для "1 - 444" поля и 47 для поля "2 - 666". Как я по значению "1 - 444" могу получить его ID, чтобы передать в поле UF_CRM_... при создании новой сделки?
Пример тестовый, на самом деле значений по типу "1 - 444" больше и они периодически меняются. Каким методом можно получить ID по VALUE?
Использую python библиотеку fasr_bitrix24, либо же сам REST API, есть ли там такой метод?
Ответы (1 шт):
- Получите список значений для поля:
Используйте методcrm.deal.fields
(Возвращает описание полей сделки - json <=> dict)
from fast_bitrix24 import Bitrix
# Ваш код ^^^^^^^
# Получите поля сделки
fields = bx.call('crm.deal.fields')
# Найдите ваше пользовательское поле
enum_field = fields['UF_CRM_YOUR_FIELD'] # Замените на ваше поле
# Создайте соответствие значений и ID
value_to_id = {item['VALUE']: item['ID'] for item in enum_field['items']}
# Пример значения, для которого нужно получить ID
value = "1 - 444"
id_value = value_to_id.get(value)
if id_value is not None:
print(f"ID для '{value}': {id_value}")
else:
print(f"Значение '{value}' не найдено.")
- Если используете REST API напрямую, вы можете выполнить аналогичные шаги,
отправив запрос к методуcrm.deal.fields
URL для запроса будет выглядеть следующим образом:
https://your_bitrix24_domain/rest/crm.deal.fields.json?auth=your_access_token
Так Вы сможете динамически получать ID
по значениям, которые могут меняться.