Изменить существующий шаблон документа crm.documentgenerator.template.update

Scope: crm

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

Метод crm.documentgenerator.template.update обновляет существующий шаблон документа.

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

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

Название
тип

Описание

id*
integer

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

fields*
object

Объект с полями шаблона для обновления (подробнее)

Параметр fields

Название
тип

Описание

name
string

Название шаблона

file
file

Файл шаблона в формате ["имя_файла.docx", "base64_контент"]. Можно передать в base64 или в multipart/form-data. Подробнее: Как загружать файлы

numeratorId
integer

Идентификатор нумератора. Список доступных нумераторов можно получить методом crm.documentgenerator.numerator.list

region
string

Регион шаблона, например ru

entityTypeId
array

Массив идентификаторов CRM-объектов, для которых доступен шаблон.

Типичные значения:

  • 1 — лид
  • 2 — сделка
  • 3 — контакт
  • 4 — компания
  • 5 — счет (старая версия)
  • 7 — коммерческое предложение
  • 31 — счет

Для объектов с направлениями добавляется суффикс направления, например:

  • 2_category_0 — сделка, направление 0
  • 31_1 — счет, направление 1

Для смарт-процессов указывается entityTypeId типа из crm.type.list или crm.enum.ownertype, например:

  • 177 — элемент смарт-процесса с entityTypeId = 177
  • 177_1 — элемент смарт-процесса с направлением 1

users
array

Массив кодов прав доступа, например ["UA"].

Поддерживаются коды доступа:

  • UA — все пользователи
  • U<id> — пользователь
  • G<id> — группа пользователей
  • D<id> — отдел
  • DR<id> — отдел с подотделами
  • IU<id> — пользователь интранета
  • SG<id>, SG<id>_A, SG<id>_E, SG<id>_K — рабочая группа/проект
  • SU<id>, SU<id>_M — пользователь соцсети
  • CHAT<id> — чат
  • AD, AE, AT, ATD, ATE, ATT (и варианты с идентификатором) — роль в структуре
  • SND<id>, SNDR<id>, SNT<id>, SNTR<id> — структурные коды подразделений и команд

active
char

Активность шаблона: Y или N

withStamps
char

Подставлять печать и подпись: Y или N

sort
integer

Индекс сортировки

Примеры кода

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

Пример обновления шаблона документа, где:

  • идентификатор шаблона — 41
  • новое название — Шаблон из файла (обновлен)
  • идентификатор нумератора — 49
  • регион шаблона — ru
  • идентификатор CRM-элемента — 2
  • код прав доступа — UA
curl -X POST \
        -H "Content-Type: application/json" \
        -H "Accept: application/json" \
        -d '{"id":41,"fields":{"name":"Шаблон из файла (обновлен)","file":["template-updated.docx","**base64_encoded_content**"],"numeratorId":49,"region":"ru","entityTypeId":["2"],"users":["UA"],"active":"Y","withStamps":"N","sort":500}}' \
        https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/crm.documentgenerator.template.update
        
curl -X POST \
        -H "Content-Type: application/json" \
        -H "Accept: application/json" \
        -d '{"id":41,"fields":{"name":"Шаблон из файла (обновлен)","file":["template-updated.docx","**base64_encoded_content**"],"numeratorId":49,"region":"ru","entityTypeId":["2"],"users":["UA"],"active":"Y","withStamps":"N","sort":500},"auth":"**put_access_token_here**"}' \
        https://**put_your_bitrix24_address**/rest/crm.documentgenerator.template.update
        
try
        {
        	const response = await $b24.callMethod(
        		'crm.documentgenerator.template.update',
        		{
        			id: 41,
        			fields: {
        				name: 'Шаблон из файла (обновлен)',
        				file: ['template-updated.docx', '**base64_encoded_content**'],
        				numeratorId: 49,
        				region: 'ru',
        				entityTypeId: ['2'],
        				users: ['UA'],
        				active: 'Y',
        				withStamps: 'N',
        				sort: 500,
        			},
        		}
        	);
        
        	const result = response.getData().result;
        	console.info(result);
        }
        catch (error)
        {
        	console.error('Error:', error);
        }
        
try {
            $response = $b24Service
                ->core
                ->call(
                    'crm.documentgenerator.template.update',
                    [
                        'id' => 41,
                        'fields' => [
                            'name' => 'Шаблон из файла (обновлен)',
                            'file' => [
                                'template-updated.docx',
                                '**base64_encoded_content**',
                            ],
                            'numeratorId' => 49,
                            'region' => 'ru',
                            'entityTypeId' => ['2'],
                            'users' => ['UA'],
                            'active' => 'Y',
                            'withStamps' => 'N',
                            'sort' => 500,
                        ],
                    ]
                );
        
            $result = $response
                ->getResponseData()
                ->getResult();
        
            echo '<pre>';
            print_r($result);
            echo '</pre>';
        
        } catch (Throwable $e) {
            error_log($e->getMessage());
            echo 'Error updating template: ' . $e->getMessage();
        }
        
BX24.callMethod(
            'crm.documentgenerator.template.update',
            {
                id: 41,
                fields: {
                    name: 'Шаблон из файла (обновлен)',
                    file: ['template-updated.docx', '**base64_encoded_content**'],
                    numeratorId: 49,
                    region: 'ru',
                    entityTypeId: ['2'],
                    users: ['UA'],
                    active: 'Y',
                    withStamps: 'N',
                    sort: 500,
                },
            },
            (result) => {
                result.error()
                    ? console.error(result.error())
                    : console.info(result.data())
                ;
            },
        );
        
require_once('crest.php');
        
        $result = CRest::call(
            'crm.documentgenerator.template.update',
            [
                'id' => 41,
                'fields' => [
                    'name' => 'Шаблон из файла (обновлен)',
                    'file' => [
                        'template-updated.docx',
                        '**base64_encoded_content**',
                    ],
                    'numeratorId' => 49,
                    'region' => 'ru',
                    'entityTypeId' => ['2'],
                    'users' => ['UA'],
                    'active' => 'Y',
                    'withStamps' => 'N',
                    'sort' => 500,
                ],
            ]
        );
        
        echo '<PRE>';
        print_r($result);
        echo '</PRE>';
        

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

HTTP-статус: 200

{
            "result": {
                "template": {
                    "id": "41",
                    "name": "Шаблон из файла (обновлен)",
                    "region": "ru",
                    "code": null,
                    "download": "https://mysite.ru/bitrix/services/main/ajax.php?action=crm.documentgenerator.template.download&SITE_ID=s1&id=41",
                    "active": "Y",
                    "moduleId": "crm",
                    "numeratorId": "49",
                    "withStamps": "N",
                    "users": {
                        "UA": "UA"
                    },
                    "isDeleted": "N",
                    "sort": "500",
                    "downloadMachine": "https://mysite.ru/rest/crm.documentgenerator.template.download.json?...",
                    "entityTypeId": [
                        "2"
                    ],
                    "createTime": "2026-03-18T15:54:20+03:00",
                    "updateTime": "2026-03-18T17:26:29+03:00"
                }
            },
            "time": {
                "start": 1773843989,
                "finish": 1773843989.201709,
                "duration": 0.20170903205871582,
                "processing": 0,
                "date_start": "2026-03-18T17:26:29+03:00",
                "date_finish": "2026-03-18T17:26:29+03:00",
                "operating_reset_at": 1773844589,
                "operating": 0
            }
        }
        

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

Название
тип

Описание

result
object

Корневой элемент ответа. Содержит объект template

time
time

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

Тип template

Название
тип

Описание

id
string

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

name
string

Название шаблона

region
string

Регион шаблона

code
string | null

Символьный код шаблона

download
string

Ссылка на скачивание файла шаблона

downloadMachine
string

Ссылка на скачивание файла шаблона для приложения

active
char

Активность шаблона: Y или N

moduleId
string

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

numeratorId
string

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

withStamps
char

Подставлять печать и подпись: Y или N

users
object

Объект кодов прав доступа в формате {"UA":"UA"}

isDeleted
char

Признак удаления шаблона: Y или N

sort
string

Индекс сортировки

entityTypeId
array

Массив идентификаторов CRM-элементов, для которых доступен шаблон

createTime
datetime

Дата и время создания шаблона

updateTime
datetime

Дата и время последнего обновления шаблона

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

HTTP-статус: 400

{
            "error": "0",
            "error_description": "Шаблон не найден"
        }
        

Название
тип

Описание

error
string

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

error_description
error_description

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

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

Код

Описание

Значение

100

Could not find value for parameter

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

100

Invalid value {...} to match with parameter {fields}. Should be value of type array.

Параметр fields передан не как объект

0

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

Шаблон с указанным id не найден или недоступен

0

Could not save file

Не удалось сохранить файл шаблона

DOCGEN_ACCESS_ERROR

Access denied

Нет доступа к шаблону

Пустое значение

You do not have permissions to modify templates

Недостаточно прав для изменения шаблонов генератора документов

Пустое значение

Module documentgenerator is not installed

Модуль documentgenerator недоступен

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

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

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

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