Создать новый документ на основании шаблона documentgenerator.document.add

Scope: documentgenerator

Кто может выполнять метод: пользователь с правом на создание документов

Метод documentgenerator.document.add создает новый документ на основании шаблона.

Параметры метода

Обязательные параметры отмечены *

Название
тип

Описание

templateId*
integer

Идентификатор шаблона.

Получить идентификатор шаблона можно после создания шаблона или методом получения списка шаблонов

providerClassName
string

Класс провайдера данных.

По умолчанию имеет значение Bitrix\DocumentGenerator\DataProvider\Rest

value*
string

Внешний идентификатор объекта, для которого формируется документ.

Формат value задается интеграцией. Используйте единый формат в рамках вашего приложения, чтобы искать и фильтровать документы.

Рекомендуемый формат: <ТИП_ОБЪЕКТА>_<ID>, где:

  • <ТИП_ОБЪЕКТА> — строковый код типа объекта в верхнем регистре
  • <ID> — числовой или строковый идентификатор объекта во внешней системе

Примеры значений value для CRM-объектов:

  • лид — LEAD_123
  • контакт — CONTACT_45
  • компания — COMPANY_78
  • сделка — DEAL_901
  • коммерческое предложение — QUOTE_55
  • счет — INVOICE_12

Примеры значений value для другие объектов:

  • заказ — ORDER_1024
  • договор поставки — SUPPLY_CONTRACT_2026_015
  • запись внешней системы — ERP_DOC_A-7741

values
object

Значения полей документа вида {"КодПоля":"Значение"}

stampsEnabled
integer

Режим печатей и подписей:

  • 1 — включить
  • 0 — выключить

По умолчанию берется значение из шаблона

fields
object

Описание того, как интерпретировать и форматировать значения из values (подробное описание).

Ключ объекта fields должен совпадать с кодом поля из шаблона.

Если передаете только обычный текст, параметр можно не указывать.

Пример структуры fields:

{
            "CurrentDate": {
                "TYPE": "DATE",
                "FORMAT": {
                    "format": "d.m.Y"
                },
                "TITLE": "Дата договора"
            }
        }
        

Параметр fields

Название
тип

Описание

TYPE
string

Тип поля.

Типы, для которых можно указать форматирование:

  • DATE — дата или дата-время
  • NAME — ФИО

FORMAT
object

Параметры формата для типа поля.

FORMAT не фиксирован одним значением, его нужно выбирать под ваш шаблон и требования к выводу.

Для DATE значение format задается в формате модификаторов даты генератора документов. Пример: {"format":"d.m.Y"}

Для NAME:

  • format задает шаблон вывода частей имени, например #NAME# #LAST_NAME#
  • case задает падеж

Пользовательская документация

PROVIDER
string

Класс провайдера

TITLE
string

Название поля

Примеры кода

Как использовать примеры в документации

curl -X POST \
          -H "Content-Type: application/json" \
          -H "Accept: application/json" \
          -d '{"templateId":53,"value":"SUPPLY_CONTRACT_2026_015","values":{"DocumentNumber":"ДГ-2026-001","CurrentDate":"2026-03-18T00:00:00+03:00","ClientName":"ООО Ромашка","ClientPhone":"+7 999 123-45-67","Total":"125000","Comment":"Оплата в течение 5 рабочих дней после подписания","UserName":"Иван Петров"},"fields":{"CurrentDate":{"TYPE":"DATE","FORMAT":{"format":"d.m.Y"},"TITLE":"Дата договора"}},"stampsEnabled":1}' \
          https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/documentgenerator.document.add
        
curl -X POST \
          -H "Content-Type: application/json" \
          -H "Accept: application/json" \
          -d '{"templateId":53,"value":"SUPPLY_CONTRACT_2026_015","values":{"DocumentNumber":"ДГ-2026-001","CurrentDate":"2026-03-18T00:00:00+03:00","ClientName":"ООО Ромашка","ClientPhone":"+7 999 123-45-67","Total":"125000","Comment":"Оплата в течение 5 рабочих дней после подписания","UserName":"Иван Петров"},"fields":{"CurrentDate":{"TYPE":"DATE","FORMAT":{"format":"d.m.Y"},"TITLE":"Дата договора"}},"stampsEnabled":1,"auth":"**put_access_token_here**"}' \
          https://**put_your_bitrix24_address**/rest/documentgenerator.document.add
        
try
        {
            const response = await $b24.callMethod(
                'documentgenerator.document.add',
                {
                    templateId: 53,
                    value: 'SUPPLY_CONTRACT_2026_015',
                    values: {
                        DocumentNumber: 'ДГ-2026-001',
                        CurrentDate: '2026-03-18T00:00:00+03:00',
                        ClientName: 'ООО Ромашка',
                        ClientPhone: '+7 999 123-45-67',
                        Total: '125000',
                        Comment: 'Оплата в течение 5 рабочих дней после подписания',
                        UserName: 'Иван Петров'
                    },
                    fields: {
                        CurrentDate: {
                            TYPE: 'DATE',
                            FORMAT: {
                                format: 'd.m.Y'
                            },
                            TITLE: 'Дата договора'
                        }
                    },
                    stampsEnabled: 1
                }
            );
        
            const result = response.getData().result;
            console.log(result);
        }
        catch (error)
        {
            console.error(error);
        }
        
try {
            $response = $b24Service->core->call(
                'documentgenerator.document.add',
                [
                    'templateId' => 53,
                    'value' => 'SUPPLY_CONTRACT_2026_015',
                    'values' => [
                        'DocumentNumber' => 'ДГ-2026-001',
                        'CurrentDate' => '2026-03-18T00:00:00+03:00',
                        'ClientName' => 'ООО Ромашка',
                        'ClientPhone' => '+7 999 123-45-67',
                        'Total' => '125000',
                        'Comment' => 'Оплата в течение 5 рабочих дней после подписания',
                        'UserName' => 'Иван Петров',
                    ],
                    'fields' => [
                        'CurrentDate' => [
                            'TYPE' => 'DATE',
                            'FORMAT' => [
                                'format' => 'd.m.Y',
                            ],
                            'TITLE' => 'Дата договора',
                        ]
                    ],
                    'stampsEnabled' => 1,
                ]
            );
        
            $result = $response->getResponseData()->getResult();
            print_r($result);
        } catch (Throwable $e) {
            echo $e->getMessage();
        }
        
BX24.callMethod(
            'documentgenerator.document.add',
            {
                templateId: 53,
                value: 'SUPPLY_CONTRACT_2026_015',
                values: {
                    DocumentNumber: 'ДГ-2026-001',
                    CurrentDate: '2026-03-18T00:00:00+03:00',
                    ClientName: 'ООО Ромашка',
                    ClientPhone: '+7 999 123-45-67',
                    Total: '125000',
                    Comment: 'Оплата в течение 5 рабочих дней после подписания',
                    UserName: 'Иван Петров'
                },
                fields: {
                    CurrentDate: {
                        TYPE: 'DATE',
                        FORMAT: {
                            format: 'd.m.Y'
                        },
                        TITLE: 'Дата договора'
                    }
                },
                stampsEnabled: 1
            },
            function(result)
            {
                if (result.error())
                {
                    console.error(result.error());
                }
                else
                {
                    console.log(result.data());
                }
            }
        );
        
require_once('crest.php');
        
        $result = CRest::call(
            'documentgenerator.document.add',
            [
                'templateId' => 53,
                'value' => 'SUPPLY_CONTRACT_2026_015',
                'values' => [
                    'DocumentNumber' => 'ДГ-2026-001',
                    'CurrentDate' => '2026-03-18T00:00:00+03:00',
                    'ClientName' => 'ООО Ромашка',
                    'ClientPhone' => '+7 999 123-45-67',
                    'Total' => '125000',
                    'Comment' => 'Оплата в течение 5 рабочих дней после подписания',
                    'UserName' => 'Иван Петров',
                ],
                'fields' => [
                    'CurrentDate' => [
                        'TYPE' => 'DATE',
                        'FORMAT' => [
                            'format' => 'd.m.Y',
                        ],
                        'TITLE' => 'Дата договора',
                    ]
                ],
                'stampsEnabled' => 1,
            ]
        );
        
        print_r($result);
        

Обработка ответа

HTTP-статус: 200

{
            "result": {
                "document": {
                    "downloadUrl": "/bitrix/services/main/ajax.php?action=documentgenerator.api.document.getfile&SITE_ID=s1&id=51&ts=1773844068",
                    "publicUrl": null,
                    "title": "SUPPLY_CONTRACT Template 1773843147554 ДГ-2026-001",
                    "number": "ДГ-2026-001",
                    "id": 51,
                    "createTime": "2026-03-18T17:27:48+03:00",
                    "createdBy": 503,
                    "updateTime": "2026-03-18T17:27:48+03:00",
                    "updatedBy": null,
                    "stampsEnabled": true,
                    "isTransformationError": false,
                    "value": "SUPPLY_CONTRACT_2026_015",
                    "values": {
                        "productsTableVariant": "",
                        "_creationMethod": "rest",
                        "stampsEnabled": true,
                        "DocumentNumber": "ДГ-2026-001",
                        "CurrentDate": "2026-03-18T00:00:00+03:00",
                        "ClientName": "ООО Ромашка",
                        "ClientPhone": "+7 999 123-45-67",
                        "Total": "125000",
                        "Comment": "Оплата в течение 5 рабочих дней после подписания",
                        "UserName": "Иван Петров"
                    },
                    "templateId": "53",
                    "provider": "Bitrix\\DocumentGenerator\\DataProvider\\Rest",
                    "pullTag": "TRANSFORMDOCUMENT51",
                    "emailDiskFile": 5569,
                    "downloadUrlMachine": "https://**put_your_bitrix24_address**/rest/documentgenerator.api.document.getfile.json?auth=a0bfba690000071b00000844000001f7f0f1075f240da39bb5ea0e42c08c5fa182f3ed&token=documentgenerator%7CYWN0aW9uPWRvY3VtZW50Z2VuZXJhdG9yLmFwaS5kb2N1bWVudC5nZXRmaWxlJlNJVEVfSUQ9czEmaWQ9NTEmdHM9MTc3Mzg0NDA2OCZfPXZMVUFDSGMwQkY1QVpRbGQzTlNhV2ZIemNzMW5IZ1lM%7CImRvY3VtZW50Z2VuZXJhdG9yLmFwaS5kb2N1bWVudC5nZXRmaWxlfGRvY3VtZW50Z2VuZXJhdG9yfFlXTjBhVzl1UFdSdlkzVnRaVzUwWjJWdVpYSmhkRzl5TG1Gd2FTNWtiMk4xYldWdWRDNW5aWFJtYVd4bEpsTkpWRVZmU1VROWN6RW1hV1E5TlRFbWRITTlNVGMzTXpnME5EQTJPQ1pmUFhaTVZVRkRTR013UWtZMVFWcFJiR1F6VGxOaFYyWkllbU56TVc1SVoxbE18YTBiZmJhNjkwMDAwMDcxYjAwMDAwODQ0MDAwMDAxZjdmMGYxMDc1ZjI0MGRhMzliYjVlYTBlNDJjMDhjNWZhMTgyZjNlZCI%3D.6lsKyiThwQT0n4UyMQfXdyS%2BnBVTG08%2FpGguggYNGLE%3D"
                }
            },
            "time": {
                "start": 1773844068,
                "finish": 1773844068.572038,
                "duration": 0.572037935256958,
                "processing": 0,
                "date_start": "2026-03-18T17:27:48+03:00",
                "date_finish": "2026-03-18T17:27:48+03:00",
                "operating_reset_at": 1773844668,
                "operating": 0.9536302089691162
            }
        }
        

Возвращаемые данные

Название
тип

Описание

result
object

Корневой элемент ответа (подробное описание)

time
time

Информация о времени выполнения запроса

Объект result

Название
тип

Описание

document
object

Данные созданного документа (подробное описание)

Объект document

Название
тип

Описание

id
integer

Идентификатор документа

title
string

Название документа

number
string

Номер документа

templateId
integer

Идентификатор шаблона

provider
string

Класс провайдера данных

value
string

Внешний идентификатор объекта

values
object

Значения полей документа (подробное описание)

stampsEnabled
boolean

Признак включенных печатей и подписей

downloadUrl
string

Ссылка на скачивание DOCX для пользователя

downloadUrlMachine
string

Ссылка на скачивание DOCX для приложения

publicUrl
string

Публичная ссылка на документ, если она включена

isTransformationError
boolean

Признак ошибки конвертации документа

pullTag
string

Тег для подписки на обновление статуса конвертации

emailDiskFile
integer

Идентификатор файла на Диске для отправки по почте

createTime
datetime

Время создания документа

updateTime
datetime

Время последнего обновления документа

createdBy
integer

Идентификатор автора документа

updatedBy
integer

Идентификатор пользователя, который обновил документ

Объект values

Название
тип

Описание

_creationMethod
string

Способ создания документа

stampsEnabled
boolean

Признак включенных печатей и подписей

<код_поля>
string

Значение поля из шаблона по его коду

Конвертация файла в PDF выполняется асинхронно. Если поле pdfUrl не заполнено сразу после создания, выполните метод documentgenerator.document.get через 20-30 секунд.

Обработка ошибок

HTTP-статус: 400, 403

{
            "error": "0",
            "error_description": "Cannot create document on deleted template"
        }
        

Название
тип

Описание

error
string

Строковый код ошибки. Может состоять из цифр, латинских букв и знака подчеркивания

error_description
error_description

Текстовое описание ошибки. Описание не предназначено для показа конечному пользователю в необработанном виде

Возможные коды ошибок

Статус

Код

Описание

Значение

400

100

Bitrix\DocumentGenerator\Template constructor must be is public

Не передан обязательный параметр templateId

400

0

Empty required parameter "value"

Не передан обязательный параметр value

400

0

Cannot create document on deleted template

Нельзя создать документ по удаленному шаблону

400

0

Шаблон не найден

Шаблона с указанным templateId не существует

400

0

Cannot create document

Не удалось создать документ

400

0

You do not have permissions to view documents

Недостаточно прав для просмотра документов

400

0

Maximum count of documents has been reached

Достигнут лимит документов на тарифе

403

DOCGEN_ACCESS_ERROR

Access denied

Недостаточно прав на создание документа

Статусы и коды системных ошибок

HTTP-статус: 20x, 40x, 50x

Описанные ниже ошибки могут возникнуть при вызове любого метода

Статус

Код
Текст ошибки

Описание

500

INTERNAL_SERVER_ERROR
Internal server error

Возникла внутренняя ошибка сервера, обратитесь к администратору сервера или в техническую поддержку Битрикс24

500

ERROR_UNEXPECTED_ANSWER
Server returned an unexpected response

Возникла внутренняя ошибка сервера, обратитесь к администратору сервера или в техническую поддержку Битрикс24

503

QUERY_LIMIT_EXCEEDED
Too many requests

Превышен лимит на интенсивность запросов

405

ERROR_BATCH_METHOD_NOT_ALLOWED
Method is not allowed for batch usage

Текущий метод не разрешен для вызова с помощью batch

400

ERROR_BATCH_LENGTH_EXCEEDED
Max batch length exceeded

Превышена максимальная длина параметров, переданных в метод batch

401

NO_AUTH_FOUND
Wrong authorization data

Неверный access-токен или код вебхука

400

INVALID_REQUEST
Https required

Для вызовов методов требуется использовать протокол HTTPS

503

OVERLOAD_LIMIT
REST API is blocked due to overload

REST API заблокирован из-за перегрузки. Это ручная индивидуальная блокировка, для снятия необходимо обращаться в техническую поддержку Битрикс24

403

ACCESS_DENIED
REST API is available only on commercial plans

REST API доступен только на коммерческих планах

403

INVALID_CREDENTIALS
Invalid request credentials

У пользователя, с чьим access-токеном или вебхуком был вызван метод, не хватает прав

404

ERROR_MANIFEST_IS_NOT_AVAILABLE
Manifest is not available

Манифест недоступен

403

insufficient_scope
The request requires higher privileges than provided by the webhook token

Запрос требует более высоких привилегий, чем предоставляет токен вебхука

401

expired_token
The access token provided has expired

Предоставленный access-токен доступа истек

403

user_access_error
The user does not have access to the application

Пользователь не имеет доступа к приложению. Это означает, что приложение установлено, но администратор портала разрешил доступ к этому приложению только конкретным пользователям

500

PORTAL_DELETED
Portal was deleted

Публичная часть сайта закрыта. Чтобы открыть публичную часть сайта на коробочной установке отключите опцию «Временное закрытие публичной части сайта». Путь к настройке: Рабочий стол > Настройки > Настройки продукта > Настройки модулей > Главный модуль > Временное закрытие публичной части сайта

Продолжите изучение