documentgenerator.role.update
Изменить роль
Описание
Метод documentgenerator.role.update обновляет роль по идентификатору.
Параметры
id
integer
обязательный
Идентификатор роли.
Получить идентификатор можно после создания роли или методом получения списка ролей
fields
object
обязательный
Набор полей для обновления (подробное описание)
Параметр fields
name
string
необязательный
Новое название роли
code
string
необязательный
Новый символьный код роли
permissions
object
необязательный
Новый набор прав роли (подробное описание).
Ключи внутри permissions чувствительны к регистру. Передавайте только в верхнем регистре:
- SETTINGS, TEMPLATES, DOCUMENTS
- MODIFY, VIEW
Если передать ключи в нижнем регистре, права роли будут сброшены в пустые значения
Примеры запроса
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"id": 9,
"fields": {
"name": "Редакторы своих шаблонов",
"permissions": {
"SETTINGS": {
"MODIFY": ""
},
"TEMPLATES": {
"MODIFY": "A"
},
"DOCUMENTS": {
"MODIFY": "X",
"VIEW": "X"
}
}
}
}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/documentgenerator.role.update
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"id": 9,
"fields": {
"name": "Редакторы своих шаблонов",
"permissions": {
"SETTINGS": {
"MODIFY": ""
},
"TEMPLATES": {
"MODIFY": "A"
},
"DOCUMENTS": {
"MODIFY": "X",
"VIEW": "X"
}
}
},
"auth": "**put_access_token_here**"
}' \
https://**put_your_bitrix24_address**/rest/documentgenerator.role.update
// 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 RoleUpdateResult = {
role: {
id: number
name: string
code: string
permissions: {
settings: { modify: string }
templates: { modify: string }
documents: { modify: string; view: string }
}
}
}
try {
const response = await $b24.actions.v2.call.make<RoleUpdateResult>({
method: 'documentgenerator.role.update',
params: {
id: 9,
fields: {
name: 'Editors of own templates',
permissions: {
SETTINGS: {
MODIFY: '',
},
TEMPLATES: {
MODIFY: 'A',
},
DOCUMENTS: {
MODIFY: 'X',
VIEW: 'X',
},
},
},
},
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(result.role.id, result.role.name, result.role.code)
}
} 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 updateRole() {
try {
// Initialize the SDK inside a Bitrix24 frame
const $b24 = await B24Js.initializeB24Frame()
const response = await $b24.actions.v2.call.make({
method: 'documentgenerator.role.update',
params: {
id: 9,
fields: {
name: 'Editors of own templates',
permissions: {
SETTINGS: {
MODIFY: '',
},
TEMPLATES: {
MODIFY: 'A',
},
DOCUMENTS: {
MODIFY: 'X',
VIEW: 'X',
},
},
},
},
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(result.role.id, result.role.name, result.role.code)
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
}
document.addEventListener('DOMContentLoaded', updateRole)
</script>
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
try:
bitrix_response = client.documentgenerator.role.update(
bitrix_id=9,
fields={
"name": "Редакторы своих шаблонов",
"permissions": {
"SETTINGS": {
"MODIFY": "",
},
"TEMPLATES": {
"MODIFY": "A",
},
"DOCUMENTS": {
"MODIFY": "X",
"VIEW": "X",
},
},
},
).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(
'documentgenerator.role.update',
[
'id' => 9,
'fields' => [
'name' => 'Редакторы своих шаблонов',
'permissions' => [
'SETTINGS' => [
'MODIFY' => '',
],
'TEMPLATES' => [
'MODIFY' => 'A',
],
'DOCUMENTS' => [
'MODIFY' => 'X',
'VIEW' => 'X',
],
],
],
]
);
$result = $response->getResponseData()->getResult();
print_r($result);
} catch (Throwable $e) {
echo $e->getMessage();
}
BX24.callMethod(
'documentgenerator.role.update',
{
id: 9,
fields: {
name: 'Редакторы своих шаблонов',
permissions: {
SETTINGS: {
MODIFY: ''
},
TEMPLATES: {
MODIFY: 'A'
},
DOCUMENTS: {
MODIFY: 'X',
VIEW: 'X'
}
}
}
},
function(result)
{
if (result.error())
{
console.error(result.error());
}
else
{
console.log(result.data());
}
}
);
require_once('crest.php');
$result = CRest::call(
'documentgenerator.role.update',
[
'id' => 9,
'fields' => [
'name' => 'Редакторы своих шаблонов',
'permissions' => [
'SETTINGS' => [
'MODIFY' => '',
],
'TEMPLATES' => [
'MODIFY' => 'A',
],
'DOCUMENTS' => [
'MODIFY' => 'X',
'VIEW' => 'X',
],
],
],
]
);
print_r($result);
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "documentgenerator.role.update", b24.Params{
"id": 9,
"fields": b24.Params{
"name": "Редакторы своих шаблонов",
"permissions": b24.Params{
"SETTINGS": b24.Params{
"MODIFY": "",
},
"TEMPLATES": b24.Params{
"MODIFY": "A",
},
"DOCUMENTS": b24.Params{
"MODIFY": "X",
"VIEW": "X",
},
},
},
})
if err != nil {
return fmt.Errorf("documentgenerator.role.update: %w", err)
}
// Метод заворачивает ответ в объект с ключом "role".
raw, ok := b24.Unwrap(res.Result, "role")
if !ok {
return fmt.Errorf("в ответе нет ключа role")
}
var item struct {
ID b24.ID `json:"id"`
Name string `json:"name"`
Code string `json:"code"`
}
if err := json.Unmarshal(raw, &item); err != nil {
return fmt.Errorf("разбор ответа: %w", err)
}
fmt.Println(item.ID, item.Name)
Ответ
HTTP-статус: 200
{
"result": {
"role": {
"id": 9,
"name": "Редакторы своих шаблонов",
"code": "DOCGEN_TEMPLATE_EDITORS",
"permissions": {
"settings": {
"modify": ""
},
"templates": {
"modify": "A"
},
"documents": {
"modify": "X",
"view": "X"
}
}
}
},
"time": {
"start": 1774014410,
"finish": 1774014410.602927,
"duration": 0.6029269695281982,
"processing": 0,
"date_start": "2026-03-20T16:46:50+03:00",
"date_finish": "2026-03-20T16:46:50+03:00",
"operating_reset_at": 1774015010,
"operating": 0
}
}
Возвращаемые данные
result
object
Корневой элемент ответа (подробное описание)
time
time
Информация о времени выполнения запроса
Обработка ошибок
HTTP-статус: 400
{
"error": "0",
"error_description": "You do not have permissions to modify settings"
}
| Код | Описание | Значение |
|---|---|---|
400 |
100 |
Bitrix\DocumentGenerator\Model\Role All parameters in the constructor must have real class type |
400 |
100 |
Could not construct parameter {role} |
400 |
100 |
Could not find value for parameter {fields} |
400 |
0 |
You do not have permissions to modify settings |
403 |
DOCGEN_ACCESS_ERROR |
Your plan does not support this operation |

