crm.documentgenerator.template.getfields
Получить поля шаблона документа
Описание
Метод crm.documentgenerator.template.getfields возвращает карточку полей шаблона: какие поля доступны, их текущие значения, значения по умолчанию и служебные признаки.
Параметры
id
integer
необязательный
Идентификатор шаблона
entityTypeId
integer
необязательный
Идентификатор типа CRM-элемента. Нужен для выбора провайдера данных
entityId
integer
необязательный
Идентификатор CRM-элемента, данные которого будут использованы для вычисления значений полей
values
object
необязательный
Объект формата:
{
field_1: value_1,
field_2: value_2,
...,
field_n: value_n,
}
где:
- field_n — название поля
- value_n — значение поля
values — это временные подстановки поверх данных CRM. Метод берет данные по entityTypeId и entityId, затем накладывает значения из values и пересчитывает поля шаблона.
Это позволяет проверить результат без изменения данных в CRM. Например, если передать values.DocumentNumber = "2026-001", в ответе поле DocumentNumber вернется уже с этим значением.
Если values не передавать, метод вернет карточку полей на основе исходных данных CRM и логики шаблона
Параметр values
MyCompanyRequisiteRqCompanyName
string
необязательный
Сокращенное наименование организации
MyCompanyRequisiteRegisteredAddressText
string
необязательный
Полный адрес
MyCompanyPhone
string
необязательный
Телефон
MyCompanyEmail
string
необязательный
MyCompanyWeb
string
необязательный
Сайт
MyCompanyUfLogo
string
необязательный
Логотип
RequisiteRqCompanyName
string
необязательный
Сокращенное наименование организации
RequisiteRegisteredAddressText
string
необязательный
Полный адрес
ClientPhone
string
необязательный
Телефон
ClientEmail
string
необязательный
ClientWeb
string
необязательный
Сайт
DocumentNumber
string
необязательный
Номер
DocumentCreateTime
string
необязательный
Дата генерации
ProductsIndex
string
необязательный
Текущий номер
ProductsProductName
array
необязательный
Название
ProductsProductQuantity
array
необязательный
Количество
ProductsProductMeasureName
array
необязательный
Единицы измерения
ProductsProductPriceRaw
array
необязательный
Исходная цена
ProductsProductPriceRawSum
array
необязательный
Сумма исходной цены
TotalRaw
string
необязательный
Сумма исходных цен
TaxesTaxTitle
array
необязательный
Заголовок
TaxesTaxRate
array
необязательный
Ставка
TaxesTaxValue
array
необязательный
Сумма
TotalSum
string
необязательный
Общая сумма
MyCompanyAssignedName
string
необязательный
Имя
MyCompanyAssignedLastName
string
необязательный
Фамилия
MyCompanyAssignedPersonalPhone
string
необязательный
Телефон
MyCompanyAssignedEmail
string
необязательный
DocumentTitle
string
необязательный
Название документа
MY_COMPANY
array
необязательный
Моя компания
Примеры запроса
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"id":1,"entityTypeId":2,"entityId":123,"values":{"DocumentNumber":"2026-001"}}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/crm.documentgenerator.template.getfields
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"id":1,"entityTypeId":2,"entityId":123,"values":{"DocumentNumber":"2026-001"},"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/crm.documentgenerator.template.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
// Shape of the payload returned in result (match the "response handling" section of the page)
type GetFieldsResult = {
templateFields: Record<string, TemplateField>
}
type TemplateField = {
title: string
value: string | string[] | null
default?: string | null
required?: string
type?: string
group: string[]
chain?: string
}
try {
const response = await $b24.actions.v2.call.make<GetFieldsResult>({
method: 'crm.documentgenerator.template.getfields',
params: {
id: 1,
entityTypeId: 2,
entityId: 123,
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('Template fields:', Object.keys(result.templateFields))
}
} 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 getTemplateFields() {
try {
// Initialize the SDK inside a Bitrix24 frame
const $b24 = await B24Js.initializeB24Frame()
const response = await $b24.actions.v2.call.make({
method: 'crm.documentgenerator.template.getfields',
params: {
id: 1,
entityTypeId: 2,
entityId: 123,
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('Template fields:', Object.keys(result.templateFields))
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
}
document.addEventListener('DOMContentLoaded', getTemplateFields)
</script>
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
try:
bitrix_response = client.crm.documentgenerator.template.getfields(
bitrix_id=1,
entity_type_id=2,
entity_id=123,
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.template.getfields',
[
'id' => 1,
'entityTypeId' => 2,
'entityId' => 123,
'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 template fields: ' . $e->getMessage();
}
BX24.callMethod(
'crm.documentgenerator.template.getfields',
{
id: 1,
entityTypeId: 2,
entityId: 123,
values: {
DocumentNumber: '2026-001',
},
},
(result) => {
result.error()
? console.error(result.error())
: console.info(result.data())
;
},
);
require_once('crest.php');
$result = CRest::call(
'crm.documentgenerator.template.getfields',
[
'id' => 1,
'entityTypeId' => 2,
'entityId' => 123,
'values' => [
'DocumentNumber' => '2026-001',
],
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "crm.documentgenerator.template.getfields", b24.Params{
"id": 1,
"entityTypeId": 2,
"entityId": 123,
"values": b24.Params{
"DocumentNumber": "2026-001",
},
}, b24.WithIdempotent())
if err != nil {
return fmt.Errorf("crm.documentgenerator.template.getfields: %w", err)
}
// Метод заворачивает ответ в объект с ключом "templateFields".
raw, ok := b24.Unwrap(res.Result, "templateFields")
if !ok {
return fmt.Errorf("в ответе нет ключа templateFields")
}
fmt.Printf("%s\n", raw)
Ответ
HTTP-статус: 200
{
"result": {
"templateFields": {
"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": 1773821944,
"finish": 1773821944.196063,
"duration": 0.19606304168701172,
"processing": 0,
"date_start": "2026-03-18T11:19:04+03:00",
"date_finish": "2026-03-18T11:19:04+03:00",
"operating_reset_at": 1773822544,
"operating": 0
}
}
Возвращаемые данные
result
object
Корневой элемент ответа. Содержит объект templateFields
time
time
Информация о времени выполнения запроса
Обработка ошибок
HTTP-статус: 400
{
"error": "DOCGEN_ACCESS_ERROR",
"error_description": "Access denied"
}
| Код | Описание | Значение |
|---|---|---|
DOCGEN_ACCESS_ERROR |
Access denied | Нет доступа к шаблону или недостаточно прав для работы с шаблонами генератора документов |
0 |
Шаблон не найден | Шаблон с указанным id не найден или недоступен |
100 |
Bitrix\\DocumentGenerator\\Template constructor must be is public | Не передан обязательный параметр |
| — | Cannot get fields from deleted template | Нельзя получить поля удаленного шаблона |
| — | You do not have permissions to modify templates | Недостаточно прав для изменения шаблонов генератора документов |
| — | Module documentgenerator is not installed | Модуль documentgenerator недоступен |

