Сгенерировать документ с модификаторами даты и имени
Выберите инструмент для разработки с AI-агентом:
- используйте Битрикс24 Вайбкод, чтобы создать приложение для Битрикс24 по описанию задачи без знания языков программирования. Агент напишет код и разместит приложение на сервере без ручной настройки хостинга
- используйте MCP-сервер, чтобы разрабатывать интеграцию через REST API в своем проекте. Агент будет обращаться к официальной REST-документации
Scope:
documentgeneratorКто может выполнять метод: пользователь с правом на создание документов
Модификаторы в шаблонах документов — это правила форматирования, которые управляют тем, как выводятся значения полей, например дата или ФИО.
Входные данные можно заранее отформатировать в приложении, а можно передать форматирование через REST.
Когда использовать
- Нужно отформатировать дату средствами генератора документов
- Нужно вывести ФИО в заданном формате
- Нужно вывести русское имя в нужном падеже
Что передавать в запросе
Модификаторы даты и имени применяются к значениям плейсхолдеров шаблона через параметры values и fields метода documentgenerator.document.add. Кроме них в запросе обязательны templateId — идентификатор шаблона и value — внешний идентификатор объекта.
Пользовательская документация
Для даты
-
В
valuesпередайте дату в формате Atom, например2026-03-18T00:00:00+03:00 -
В
fieldsукажите тип поля:TYPE=DATE -
При необходимости задайте формат вывода по умолчанию через
FORMAT['format']:d— день месяца с ведущим нулемj— день месяца без ведущего нуляm— номер месяца с ведущим нулемn— номер месяца без ведущего нуляF— название месяца в родительном падеже, напримермартаf— название месяца в именительном падеже, напримерМартy— год двумя цифрамиY— год четырьмя цифрамиH— часы в 24-часовом формате с ведущим нулемi— минуты с ведущим нулемs— секунды с ведущим нулем
Символы форматирования даты и времени можно комбинировать:
d.m.y—28.03.26j F Y—28 марта 2026H:i:s—10:24:18Y-m-d H:i:s—2026-03-28 10:24:18
Название месяца выводится на языке региона, который задан в шаблоне.
Для имени
-
В
valuesпередайте имя массивом с частями ФИО:[ 'NAME' => 'Игорь', // имя 'LAST_NAME' => 'Иванов', // фамилия 'SECOND_NAME' => 'Петрович', // отчество 'GENDER' => 'M', // пол ]
По ключу GENDER можно передать пол явно: M или F. Если пол не указан, модуль попытается определить его по отчеству. Если GENDER и отчество не указаны, пол не будет определен и склонение не будет работать.
-
В
fieldsукажите тип поля:TYPE=NAME -
В
FORMAT['format']можно передать шаблон вывода:#TITLE#— обращение#NAME#— имя#LAST_NAME#— фамилия#SECOND_NAME#— отчество#NAME_SHORT#— первая буква имени с точкой#LAST_NAME_SHORT#— первая буква фамилии с точкой#SECOND_NAME_SHORT#— первая буква отчества с точкой
-
В
FORMAT['case']можно передать падеж по умолчанию:-1— именительный0— родительный1— дательный2— винительный3— творительный4— предложный
Пример
Как использовать примеры в документации
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"templateId":203,"value":"ORDER_1024","values":{"SomeDate":"2026-03-18T00:00:00+03:00","SomeName":{"NAME":"Владислав","LAST_NAME":"Горелкин","GENDER":"M"}},"fields":{"SomeDate":{"TYPE":"DATE","FORMAT":{"format":"d.m.Y H:i"}},"SomeName":{"TYPE":"NAME","FORMAT":{"case":0,"format":"#NAME# #LAST_NAME#"}}}}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/documentgenerator.document.add
// 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 DocumentAddResult = {
document: {
id: number
title: string
downloadUrl: string
}
}
const response = await $b24.actions.v2.call.make<DocumentAddResult>({
method: 'documentgenerator.document.add',
params: {
templateId: 203,
value: 'ORDER_1024',
values: {
// the date is passed in the atom format
SomeDate: '2026-03-18T00:00:00+03:00',
// the name is passed as an object with name parts
SomeName: {
NAME: 'Vladislav',
LAST_NAME: 'Gorelkin',
GENDER: 'M',
},
},
fields: {
SomeDate: {
TYPE: 'DATE',
FORMAT: {
format: 'd.m.Y H:i',
},
},
SomeName: {
TYPE: 'NAME',
FORMAT: {
case: 0,
format: '#NAME# #LAST_NAME#',
},
},
},
},
requestId: Text.getUuidRfc4122()
})
if (!response.isSuccess) {
console.error(response.getErrorMessages().join('; '))
} else {
console.info('Created document id:', response.getData()!.result.document.id)
}
try {
$response = $b24Service->core->call(
'documentgenerator.document.add',
[
'templateId' => 203,
'value' => 'ORDER_1024',
'values' => [
// значение передано в формате atom
'SomeDate' => '2026-03-18T00:00:00+03:00',
// имя передано в виде массива
'SomeName' => [
'NAME' => 'Владислав',
'LAST_NAME' => 'Горелкин',
'GENDER' => 'M',
],
],
'fields' => [
// тип поля — дата
'SomeDate' => [
'TYPE' => 'DATE',
'FORMAT' => [
'format' => 'd.m.Y H:i',
],
],
// тип поля — имя
'SomeName' => [
'TYPE' => 'NAME',
'FORMAT' => [
'case' => 0,
'format' => '#NAME# #LAST_NAME#',
],
],
],
]
);
$result = $response->getResponseData()->getResult();
print_r($result);
} catch (Throwable $e) {
echo $e->getMessage();
}
Что вернется
Метод возвращает данные созданного документа. В поле values возвращаются исходные значения, которые вы передали, а отформатированные значения подставляются в файл документа. Пример ответа сокращен, полное описание полей — на странице метода documentgenerator.document.add.
{
"result": {
"document": {
"id": 51,
"title": "ORDER Template 51",
"templateId": "203",
"value": "ORDER_1024",
"values": {
"SomeDate": "2026-03-18T00:00:00+03:00",
"_creationMethod": "rest"
},
"isTransformationError": false,
"downloadUrl": "/bitrix/services/main/ajax.php?action=documentgenerator.api.document.getfile&SITE_ID=s1&id=51&ts=1773844068"
}
}
}
Проверим результат
- Скачайте файл по
downloadUrlиз ответа - Проверьте, что дата выведена в формате из
FORMAT['format'], а имя — по шаблону вывода и в нужном падеже - Если формат не применился, сверьте коды полей в
valuesиfields: они должны совпадать между собой и с плейсхолдерами шаблона
Если метод вернул ошибку
Empty required parameter "value"— не передан обязательный параметрvalueШаблон не найден— шаблона с указаннымtemplateIdне существует
Дата выведена как есть — проверьте, что в values она передана в формате Atom, а в fields для этого поля указан TYPE = DATE.
Имя не склоняется — передайте GENDER явно или добавьте отчество в SECOND_NAME.
Полный список ошибок — в разделе «Обработка ошибок» на странице метода documentgenerator.document.add.