crm.documentgenerator.document.getfields
Получить поля документа
Описание
Метод crm.documentgenerator.document.getfields возвращает карточку полей уже созданного документа: какие поля доступны, их текущие значения, значения по умолчанию и служебные признаки.
Параметры
id
integer
необязательный
Идентификатор документа
values
object
необязательный
Объект формата:
{
field_1: value_1,
field_2: value_2,
...,
field_n: value_n
}
где:
- field_n — код поля документа
- value_n — значение поля
values — это временные подстановки поверх текущих значений документа. Метод берет данные документа, накладывает values и пересчитывает поля.
Это позволяет проверить результат без изменения самого документа. Например, если передать values.DocumentNumber = "2026-001", в ответе поле DocumentNumber вернется со значением 2026-001. Если не передавать values, для того же поля вернется текущее значение документа, например 1.
Если values не передавать, метод вернет карточку полей на основе текущих данных документа и логики шаблона
Параметр values
DocumentNumber
string
необязательный
Номер документа
DocumentCreateTime
string
необязательный
Дата генерации
DocumentTitle
string
необязательный
Название документа
ClientPhone
string
необязательный
Телефон клиента
ClientEmail
string
необязательный
Email клиента
ProductsProductName
array
необязательный
Название товара
ProductsProductQuantity
array
необязательный
Количество
TotalSum
string
необязательный
Общая сумма
Примеры запроса
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"id":101,"values":{"DocumentNumber":"2026-001"}}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/crm.documentgenerator.document.getfields
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"id":101,"values":{"DocumentNumber":"2026-001"},"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/crm.documentgenerator.document.getfields
// 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
type DocumentField = {
title: string
value: string | unknown[] | null
default?: string | null
required?: string
type?: string
group?: string[]
chain?: string | string[]
format?: Record<string, unknown>
options?: Record<string, unknown>
hideRow?: string
}
// Shape of the payload returned in result (match the "response handling" section of the page)
type DocumentFieldsResult = {
documentFields: Record<string, DocumentField>
}
try {
const response = await $b24.actions.v2.call.make<DocumentFieldsResult>({
method: 'crm.documentgenerator.document.getfields',
params: {
id: 101,
values: {
DocumentNumber: '2026-001',
},
},
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(Object.keys(result.documentFields), result.documentFields)
}
} 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 getDocumentFields() {
try {
// Initialize the SDK inside a Bitrix24 frame
const $b24 = await B24Js.initializeB24Frame()
const response = await $b24.actions.v2.call.make({
method: 'crm.documentgenerator.document.getfields',
params: {
id: 101,
values: {
DocumentNumber: '2026-001',
},
},
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(Object.keys(result.documentFields), result.documentFields)
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
}
document.addEventListener('DOMContentLoaded', getDocumentFields)
</script>
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
try:
bitrix_response = client.crm.documentgenerator.document.getfields(
bitrix_id=101,
values={
"DocumentNumber": "2026-001",
},
).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(
'crm.documentgenerator.document.getfields',
[
'id' => 101,
'values' => [
'DocumentNumber' => '2026-001',
],
]
);
$result = $response
->getResponseData()
->getResult();
echo '<pre>';
print_r($result);
echo '</pre>';
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error getting document fields: ' . $e->getMessage();
}
BX24.callMethod(
'crm.documentgenerator.document.getfields',
{
id: 101,
values: {
DocumentNumber: '2026-001',
},
},
(result) => {
result.error()
? console.error(result.error())
: console.info(result.data())
;
},
);
require_once('crest.php');
$result = CRest::call(
'crm.documentgenerator.document.getfields',
[
'id' => 101,
'values' => [
'DocumentNumber' => '2026-001',
],
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "crm.documentgenerator.document.getfields", b24.Params{
"id": 101,
"values": b24.Params{
"DocumentNumber": "2026-001",
},
}, b24.WithIdempotent())
if err != nil {
return fmt.Errorf("crm.documentgenerator.document.getfields: %w", err)
}
// Метод заворачивает ответ в объект с ключом "documentFields".
raw, ok := b24.Unwrap(res.Result, "documentFields")
if !ok {
return fmt.Errorf("в ответе нет ключа documentFields")
}
fmt.Printf("%s\n", raw)
Ответ
HTTP-статус: 200
{
"result": {
"documentFields": {
"DocumentNumber": {
"title": "Номер",
"value": "2026-001",
"required": "Y",
"group": [
"Документ"
],
"chain": "this.DOCUMENT.DOCUMENT_NUMBER",
"default": "2026-001"
},
"MyCompanyUfLogo": {
"title": "Логотип",
"value": null,
"type": "IMAGE",
"group": [
"Документ",
"Моя компания"
],
"chain": "this.SOURCE.MY_COMPANY.UF_LOGO",
"default": null
},
"MY_COMPANY": {
"title": "Моя компания",
"value": [
{
"value": "340",
"title": "Колесо Фортуны",
"selected": true
},
{
"value": "358",
"title": "Битрикс-Разработка",
"selected": false
}
],
"group": [
"Документ",
"Моя компания"
]
}
}
},
"time": {
"start": 1773909500,
"finish": 1773909500.192341,
"duration": 0.19234108924865723,
"processing": 0,
"date_start": "2026-03-19T11:38:20+03:00",
"date_finish": "2026-03-19T11:38:20+03:00",
"operating_reset_at": 1773910100,
"operating": 0
}
}
Возвращаемые данные
result
object
Корневой элемент ответа. Содержит объект result
time
time
Информация о времени выполнения запроса
Обработка ошибок
HTTP-статус: 400
{
"error": "DOCGEN_ACCESS_ERROR",
"error_description": "Access denied"
}
| Код | Описание | Значение |
|---|---|---|
100 |
Bitrix\\DocumentGenerator\\Document constructor must be is public | Не передан обязательный параметр id |
DOCGEN_ACCESS_ERROR |
Access denied | Нет доступа к документу или недостаточно прав для работы с документами генератора |
0 |
Документ не найден | Документ с указанным id не найден или недоступен |
| — | You do not have permissions to modify documents | Недостаточно прав для изменения документов генератора |
| — | Module documentgenerator is not installed | Модуль documentgenerator недоступен |

