Сгенерировать документ с текстом
Выберите инструмент для разработки с AI-агентом:
- используйте Битрикс24 Вайбкод, чтобы создать приложение для Битрикс24 по описанию задачи без знания языков программирования. Агент напишет код и разместит приложение на сервере без ручной настройки хостинга
- используйте MCP-сервер, чтобы разрабатывать интеграцию через REST API в своем проекте. Агент будет обращаться к официальной REST-документации
Scope:
documentgeneratorКто может выполнять метод: пользователь с правом на создание документов
Текстовые значения для плейсхолдеров шаблона передаются в метод documentgenerator.document.add через параметр values без дополнительных настроек типов полей.
Когда использовать
- В шаблоне только текстовые плейсхолдеры без модификаторов типов
- Не нужно задавать
TYPE,FORMATи провайдеры вfields
Что передавать в запросе
templateId— идентификатор шаблона, по которому создается документvalue— внешний идентификатор объекта, для которого создается документvalues— объект вида"КодПоля": "ТекстовоеЗначение"fieldsможно не передавать, если все поля вставляются как обычный текст без форматирования
Ключи в values должны совпадать с кодами полей из шаблона, например для плейсхолдера {SomeName} нужно передать 'SomeName'.
Получить коды полей шаблона можно методом documentgenerator.template.getfields.
Провайдер данных Bitrix\DocumentGenerator\DataProvider\Rest подставляется автоматически, поэтому providerClassName можно не передавать.
Пример
Как использовать примеры в документации
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"templateId":203,"value":"ORDER_1024","values":{"DocumentNumber":"ДГ-2026-001","CurrentDate":"18.03.2026","ClientName":"ООО Ромашка","Comment":"Оплата в течение 5 рабочих дней после подписания"}}' \
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: {
DocumentNumber: 'DG-2026-001',
CurrentDate: '18.03.2026',
ClientName: 'Romashka LLC',
Comment: 'Payment within 5 business days after signing',
},
},
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' => [
'DocumentNumber' => 'ДГ-2026-001',
'CurrentDate' => '18.03.2026',
'ClientName' => 'ООО Ромашка',
'Comment' => 'Оплата в течение 5 рабочих дней после подписания',
],
]
);
$result = $response->getResponseData()->getResult();
print_r($result);
} catch (Throwable $e) {
echo $e->getMessage();
}
Что вернется
Метод возвращает данные созданного документа. Пример ответа сокращен, полное описание полей — на странице метода documentgenerator.document.add.
{
"result": {
"document": {
"id": 51,
"title": "ORDER Template ДГ-2026-001",
"number": "ДГ-2026-001",
"templateId": "203",
"value": "ORDER_1024",
"isTransformationError": false,
"downloadUrl": "/bitrix/services/main/ajax.php?action=documentgenerator.api.document.getfile&SITE_ID=s1&id=51&ts=1773844068",
"publicUrl": null
}
}
}
Что взять из ответа:
id— идентификатор документа для дальнейших вызововdownloadUrl— ссылка на скачивание DOCX для пользователя,downloadUrlMachine— та же ссылка для приложенияpublicUrl— публичная ссылка, она равнаnull, пока не включена методом documentgenerator.document.enablepublicurl
Проверим результат
- Получите документ методом documentgenerator.document.get по
idиз ответа - Скачайте файл по
downloadUrlи убедитесь, что в тексте документа вместо плейсхолдеров подставились переданные значения - Если нужен PDF, проверьте поле
pdfUrlв ответе метода documentgenerator.document.get. Конвертация выполняется асинхронно, поэтому поле заполняется не сразу
Если метод вернул ошибку
Empty required parameter "value"— не передан обязательный параметрvalueШаблон не найден— шаблона с указаннымtemplateIdне существуетCannot create document on deleted template— шаблон помечен как удаленный, создайте документ по другому шаблону
Документ создался, но поля пустые — коды в values не совпали с плейсхолдерами шаблона. Сверьте их с ответом метода documentgenerator.template.getfields.
Полный список ошибок — в разделе «Обработка ошибок» на странице метода documentgenerator.document.add.