bitrix24-mcp-bridge 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -1
- package/dist/cli.js +230 -126
- package/docs/api-notes.md +11 -4
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -2988,7 +2988,7 @@ var require_compile = __commonJS({
|
|
|
2988
2988
|
const schOrFunc = root.refs[ref];
|
|
2989
2989
|
if (schOrFunc)
|
|
2990
2990
|
return schOrFunc;
|
|
2991
|
-
let _sch =
|
|
2991
|
+
let _sch = resolve4.call(this, root, ref);
|
|
2992
2992
|
if (_sch === void 0) {
|
|
2993
2993
|
const schema = (_a = root.localRefs) === null || _a === void 0 ? void 0 : _a[ref];
|
|
2994
2994
|
const { schemaId } = this.opts;
|
|
@@ -3015,7 +3015,7 @@ var require_compile = __commonJS({
|
|
|
3015
3015
|
function sameSchemaEnv(s1, s2) {
|
|
3016
3016
|
return s1.schema === s2.schema && s1.root === s2.root && s1.baseId === s2.baseId;
|
|
3017
3017
|
}
|
|
3018
|
-
function
|
|
3018
|
+
function resolve4(root, ref) {
|
|
3019
3019
|
let sch;
|
|
3020
3020
|
while (typeof (sch = this.refs[ref]) == "string")
|
|
3021
3021
|
ref = sch;
|
|
@@ -3646,7 +3646,7 @@ var require_fast_uri = __commonJS({
|
|
|
3646
3646
|
}
|
|
3647
3647
|
return uri;
|
|
3648
3648
|
}
|
|
3649
|
-
function
|
|
3649
|
+
function resolve4(baseURI, relativeURI, options) {
|
|
3650
3650
|
const schemelessOptions = options ? Object.assign({ scheme: "null" }, options) : { scheme: "null" };
|
|
3651
3651
|
const resolved = resolveComponent(parse4(baseURI, schemelessOptions), parse4(relativeURI, schemelessOptions), schemelessOptions, true);
|
|
3652
3652
|
schemelessOptions.skipEscape = true;
|
|
@@ -3904,7 +3904,7 @@ var require_fast_uri = __commonJS({
|
|
|
3904
3904
|
var fastUri = {
|
|
3905
3905
|
SCHEMES,
|
|
3906
3906
|
normalize,
|
|
3907
|
-
resolve:
|
|
3907
|
+
resolve: resolve4,
|
|
3908
3908
|
resolveComponent,
|
|
3909
3909
|
equal,
|
|
3910
3910
|
serialize,
|
|
@@ -22658,7 +22658,7 @@ var Protocol = class {
|
|
|
22658
22658
|
return;
|
|
22659
22659
|
}
|
|
22660
22660
|
const pollInterval = task2.pollInterval ?? this._options?.defaultTaskPollInterval ?? 1e3;
|
|
22661
|
-
await new Promise((
|
|
22661
|
+
await new Promise((resolve4) => setTimeout(resolve4, pollInterval));
|
|
22662
22662
|
options?.signal?.throwIfAborted();
|
|
22663
22663
|
}
|
|
22664
22664
|
} catch (error2) {
|
|
@@ -22675,7 +22675,7 @@ var Protocol = class {
|
|
|
22675
22675
|
*/
|
|
22676
22676
|
request(request, resultSchema, options) {
|
|
22677
22677
|
const { relatedRequestId, resumptionToken, onresumptiontoken, task, relatedTask } = options ?? {};
|
|
22678
|
-
return new Promise((
|
|
22678
|
+
return new Promise((resolve4, reject) => {
|
|
22679
22679
|
const earlyReject = (error2) => {
|
|
22680
22680
|
reject(error2);
|
|
22681
22681
|
};
|
|
@@ -22753,7 +22753,7 @@ var Protocol = class {
|
|
|
22753
22753
|
if (!parseResult.success) {
|
|
22754
22754
|
reject(parseResult.error);
|
|
22755
22755
|
} else {
|
|
22756
|
-
|
|
22756
|
+
resolve4(parseResult.data);
|
|
22757
22757
|
}
|
|
22758
22758
|
} catch (error2) {
|
|
22759
22759
|
reject(error2);
|
|
@@ -23014,12 +23014,12 @@ var Protocol = class {
|
|
|
23014
23014
|
}
|
|
23015
23015
|
} catch {
|
|
23016
23016
|
}
|
|
23017
|
-
return new Promise((
|
|
23017
|
+
return new Promise((resolve4, reject) => {
|
|
23018
23018
|
if (signal.aborted) {
|
|
23019
23019
|
reject(new McpError(ErrorCode.InvalidRequest, "Request cancelled"));
|
|
23020
23020
|
return;
|
|
23021
23021
|
}
|
|
23022
|
-
const timeoutId = setTimeout(
|
|
23022
|
+
const timeoutId = setTimeout(resolve4, interval);
|
|
23023
23023
|
signal.addEventListener("abort", () => {
|
|
23024
23024
|
clearTimeout(timeoutId);
|
|
23025
23025
|
reject(new McpError(ErrorCode.InvalidRequest, "Request cancelled"));
|
|
@@ -24119,7 +24119,7 @@ var McpServer = class {
|
|
|
24119
24119
|
let task = createTaskResult.task;
|
|
24120
24120
|
const pollInterval = task.pollInterval ?? 5e3;
|
|
24121
24121
|
while (task.status !== "completed" && task.status !== "failed" && task.status !== "cancelled") {
|
|
24122
|
-
await new Promise((
|
|
24122
|
+
await new Promise((resolve4) => setTimeout(resolve4, pollInterval));
|
|
24123
24123
|
const updatedTask = await extra.taskStore.getTask(taskId);
|
|
24124
24124
|
if (!updatedTask) {
|
|
24125
24125
|
throw new McpError(ErrorCode.InternalError, `Task ${taskId} not found during polling`);
|
|
@@ -24768,12 +24768,12 @@ var StdioServerTransport = class {
|
|
|
24768
24768
|
this.onclose?.();
|
|
24769
24769
|
}
|
|
24770
24770
|
send(message) {
|
|
24771
|
-
return new Promise((
|
|
24771
|
+
return new Promise((resolve4) => {
|
|
24772
24772
|
const json = serializeMessage(message);
|
|
24773
24773
|
if (this._stdout.write(json)) {
|
|
24774
|
-
|
|
24774
|
+
resolve4();
|
|
24775
24775
|
} else {
|
|
24776
|
-
this._stdout.once("drain",
|
|
24776
|
+
this._stdout.once("drain", resolve4);
|
|
24777
24777
|
}
|
|
24778
24778
|
});
|
|
24779
24779
|
}
|
|
@@ -24862,7 +24862,7 @@ function loadConfigState(env) {
|
|
|
24862
24862
|
// src/bridge/daemon.ts
|
|
24863
24863
|
import { createServer } from "node:net";
|
|
24864
24864
|
import { existsSync as existsSync3, mkdirSync as mkdirSync3, unlinkSync, chmodSync } from "node:fs";
|
|
24865
|
-
import { dirname as
|
|
24865
|
+
import { dirname as dirname3 } from "node:path";
|
|
24866
24866
|
|
|
24867
24867
|
// node_modules/ws/wrapper.mjs
|
|
24868
24868
|
var import_stream = __toESM(require_stream(), 1);
|
|
@@ -24898,8 +24898,8 @@ var Bridge = class {
|
|
|
24898
24898
|
return addr && typeof addr === "object" ? addr.port : this.opts.port;
|
|
24899
24899
|
}
|
|
24900
24900
|
start() {
|
|
24901
|
-
return new Promise((
|
|
24902
|
-
this.wss = new import_websocket_server.default({ host: "127.0.0.1", port: this.opts.port }, () =>
|
|
24901
|
+
return new Promise((resolve4, reject) => {
|
|
24902
|
+
this.wss = new import_websocket_server.default({ host: "127.0.0.1", port: this.opts.port }, () => resolve4());
|
|
24903
24903
|
this.wss.on("error", (err) => {
|
|
24904
24904
|
if (err.code === "EADDRINUSE") {
|
|
24905
24905
|
reject(new Error(
|
|
@@ -25011,13 +25011,13 @@ var Bridge = class {
|
|
|
25011
25011
|
const live = set && [...set].find((ws) => ws.readyState === import_websocket.default.OPEN);
|
|
25012
25012
|
if (!live) return Promise.reject(new Error(`portal ${origin} not connected \u2014 open a logged-in tab`));
|
|
25013
25013
|
const id = randomUUID();
|
|
25014
|
-
return new Promise((
|
|
25014
|
+
return new Promise((resolve4, reject) => {
|
|
25015
25015
|
const timer = setTimeout(() => {
|
|
25016
25016
|
this.pending.delete(id);
|
|
25017
25017
|
this.discardDownload(id);
|
|
25018
25018
|
reject(new Error(`call ${target.action ?? target.endpoint} timed out`));
|
|
25019
25019
|
}, timeoutMs);
|
|
25020
|
-
this.pending.set(id, { resolve:
|
|
25020
|
+
this.pending.set(id, { resolve: resolve4, reject, timer });
|
|
25021
25021
|
if (destPath !== void 0) this.downloadPaths.set(id, destPath);
|
|
25022
25022
|
try {
|
|
25023
25023
|
live.send(JSON.stringify({ type: "call", id, ...target }));
|
|
@@ -25049,20 +25049,20 @@ var Bridge = class {
|
|
|
25049
25049
|
}
|
|
25050
25050
|
this.pending.clear();
|
|
25051
25051
|
for (const id of [...this.downloads.keys()]) this.discardDownload(id);
|
|
25052
|
-
return new Promise((
|
|
25053
|
-
if (!this.wss) return
|
|
25052
|
+
return new Promise((resolve4) => {
|
|
25053
|
+
if (!this.wss) return resolve4();
|
|
25054
25054
|
let done = false;
|
|
25055
25055
|
const t = setTimeout(() => {
|
|
25056
25056
|
if (!done) {
|
|
25057
25057
|
done = true;
|
|
25058
|
-
|
|
25058
|
+
resolve4();
|
|
25059
25059
|
}
|
|
25060
25060
|
}, 500);
|
|
25061
25061
|
this.wss.close(() => {
|
|
25062
25062
|
if (!done) {
|
|
25063
25063
|
done = true;
|
|
25064
25064
|
clearTimeout(t);
|
|
25065
|
-
|
|
25065
|
+
resolve4();
|
|
25066
25066
|
}
|
|
25067
25067
|
});
|
|
25068
25068
|
});
|
|
@@ -25133,7 +25133,7 @@ function defineOperation(def) {
|
|
|
25133
25133
|
|
|
25134
25134
|
// src/ops/batch.ts
|
|
25135
25135
|
var MAX_BATCH = 50;
|
|
25136
|
-
var
|
|
25136
|
+
var STEP_RESERVE_MS = 3e4;
|
|
25137
25137
|
var SKIPPED = "\u043D\u0435 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043E: \u0438\u0441\u0442\u0435\u043A\u043B\u043E \u0432\u0440\u0435\u043C\u044F \u043F\u0430\u043A\u0435\u0442\u0430 \u2014 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0439\u0442\u0435 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u0438 \u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0435 \u0442\u043E\u043B\u044C\u043A\u043E \u044D\u0442\u0438 \u0437\u0430\u0434\u0430\u0447\u0438";
|
|
25138
25138
|
var taskIdsArg = () => external_exports.array(idArg()).min(1).max(MAX_BATCH).superRefine((ids, ctx) => {
|
|
25139
25139
|
const seen = /* @__PURE__ */ new Set();
|
|
@@ -25146,16 +25146,34 @@ var taskIdsArg = () => external_exports.array(idArg()).min(1).max(MAX_BATCH).sup
|
|
|
25146
25146
|
}
|
|
25147
25147
|
});
|
|
25148
25148
|
var errorMessage = (e) => e instanceof Error ? e.message : String(e);
|
|
25149
|
-
|
|
25150
|
-
const
|
|
25149
|
+
function budgetPace({ budgetMs = BUDGET_TIMEOUT_MS.long, now = Date.now } = {}) {
|
|
25150
|
+
const deadline = now() + budgetMs;
|
|
25151
|
+
let longestMs = 0;
|
|
25152
|
+
return {
|
|
25153
|
+
// `thenRequests`: requests the call still makes after the step, each given a full reserve.
|
|
25154
|
+
canStart: (thenRequests = 0) => now() + Math.max(STEP_RESERVE_MS, longestMs) + thenRequests * STEP_RESERVE_MS < deadline,
|
|
25155
|
+
async time(step) {
|
|
25156
|
+
const startedAt = now();
|
|
25157
|
+
try {
|
|
25158
|
+
return await step();
|
|
25159
|
+
} finally {
|
|
25160
|
+
longestMs = Math.max(longestMs, now() - startedAt);
|
|
25161
|
+
}
|
|
25162
|
+
}
|
|
25163
|
+
};
|
|
25164
|
+
}
|
|
25165
|
+
async function forEachTask(taskIds, fn, opts = {}) {
|
|
25166
|
+
return eachTask(taskIds, fn, budgetPace(opts));
|
|
25167
|
+
}
|
|
25168
|
+
async function eachTask(taskIds, fn, pace) {
|
|
25151
25169
|
const results = [];
|
|
25152
25170
|
for (const taskId of taskIds) {
|
|
25153
|
-
if (
|
|
25171
|
+
if (!pace.canStart()) {
|
|
25154
25172
|
results.push({ taskId, ok: false, error: SKIPPED });
|
|
25155
25173
|
continue;
|
|
25156
25174
|
}
|
|
25157
25175
|
try {
|
|
25158
|
-
const fields = await fn(taskId);
|
|
25176
|
+
const fields = await pace.time(() => fn(taskId));
|
|
25159
25177
|
const verdict = { taskId, ok: true };
|
|
25160
25178
|
results.push({ ...verdict, ...fields, ...verdict });
|
|
25161
25179
|
} catch (e) {
|
|
@@ -25164,20 +25182,25 @@ async function forEachTask(taskIds, fn, { budgetMs = BUDGET_TIMEOUT_MS.long, now
|
|
|
25164
25182
|
}
|
|
25165
25183
|
return { results };
|
|
25166
25184
|
}
|
|
25167
|
-
async function forEachTaskVetted(taskIds, steps,
|
|
25168
|
-
const
|
|
25169
|
-
const { results } = await
|
|
25185
|
+
async function forEachTaskVetted(taskIds, steps, opts = {}) {
|
|
25186
|
+
const pace = budgetPace(opts);
|
|
25187
|
+
const { results } = await eachTask(taskIds, async (taskId) => ({ prepared: await steps.prepare(taskId) }), pace);
|
|
25170
25188
|
steps.vet(results.flatMap((r) => r.ok ? [r.prepared] : []));
|
|
25171
25189
|
const firstPass = new Map(results.map((r) => [r.taskId, r]));
|
|
25172
|
-
|
|
25173
|
-
|
|
25190
|
+
const ready = results.flatMap((r) => r.ok ? [r.taskId] : []);
|
|
25191
|
+
const secondPass = await eachTask(
|
|
25192
|
+
ready,
|
|
25174
25193
|
async (taskId) => {
|
|
25175
25194
|
const first = firstPass.get(taskId);
|
|
25176
25195
|
if (!first?.ok) throw new Error(first?.error ?? SKIPPED);
|
|
25177
25196
|
return steps.apply(taskId, first.prepared);
|
|
25178
25197
|
},
|
|
25179
|
-
|
|
25198
|
+
pace
|
|
25180
25199
|
);
|
|
25200
|
+
const applied = new Map(secondPass.results.map((r) => [r.taskId, r]));
|
|
25201
|
+
return {
|
|
25202
|
+
results: results.map((first) => first.ok ? applied.get(first.taskId) ?? { taskId: first.taskId, ok: false, error: SKIPPED } : first)
|
|
25203
|
+
};
|
|
25181
25204
|
}
|
|
25182
25205
|
|
|
25183
25206
|
// src/ops/read.ts
|
|
@@ -25186,14 +25209,15 @@ var AJAX = "/bitrix/services/main/ajax.php";
|
|
|
25186
25209
|
function callTarget(entry) {
|
|
25187
25210
|
return { endpoint: AJAX, action: null, params: {}, bodyType: "form", responseType: "json", ...entry };
|
|
25188
25211
|
}
|
|
25212
|
+
var v2 = (action) => callTarget({ action, method: "POST", bodyType: "json" });
|
|
25189
25213
|
var TASKS_LIST = callTarget({ action: "tasks.task.list", method: "POST" });
|
|
25190
25214
|
var TASK_GET = callTarget({ action: "tasks.task.get", method: "POST" });
|
|
25191
|
-
var TASK_V2_GET =
|
|
25192
|
-
var TASK_SCRUM_INFO =
|
|
25193
|
-
var TASK_FILES =
|
|
25194
|
-
var TASK_VIEWS_COUNT =
|
|
25195
|
-
var TASK_SUBTASKS =
|
|
25196
|
-
var TASK_RELATED =
|
|
25215
|
+
var TASK_V2_GET = v2("tasks.v2.Task.get");
|
|
25216
|
+
var TASK_SCRUM_INFO = v2("tasks.v2.Scrum.getTaskInfo");
|
|
25217
|
+
var TASK_FILES = v2("tasks.v2.File.listObjects");
|
|
25218
|
+
var TASK_VIEWS_COUNT = v2("tasks.v2.Task.View.User.count");
|
|
25219
|
+
var TASK_SUBTASKS = v2("tasks.v2.Task.Relation.Child.list");
|
|
25220
|
+
var TASK_RELATED = v2("tasks.v2.Task.Relation.Related.list");
|
|
25197
25221
|
var PROJECTS_LIST = callTarget({ action: "socialnetwork.api.workgroup.list", method: "POST" });
|
|
25198
25222
|
var PROJECTS_GET = callTarget({ action: "socialnetwork.api.workgroup.get", method: "POST" });
|
|
25199
25223
|
var CHATS_RECENT = callTarget({
|
|
@@ -25209,8 +25233,8 @@ var CHAT_MESSAGES_TAIL = callTarget({
|
|
|
25209
25233
|
params: { "order[id]": "DESC", limit: 25 }
|
|
25210
25234
|
});
|
|
25211
25235
|
var CHAT_MESSAGE_READ = callTarget({ action: "im.v2.Chat.Message.read", method: "POST" });
|
|
25212
|
-
var ENTITYSELECTOR_LOAD =
|
|
25213
|
-
var ENTITYSELECTOR_SEARCH =
|
|
25236
|
+
var ENTITYSELECTOR_LOAD = v2("ui.entityselector.load");
|
|
25237
|
+
var ENTITYSELECTOR_SEARCH = v2("ui.entityselector.doSearch");
|
|
25214
25238
|
var RECENT_LOAD = callTarget({ action: "im.v2.Recent.load", method: "POST" });
|
|
25215
25239
|
var RECENT_TAIL = callTarget({ action: "im.v2.Recent.tail", method: "POST" });
|
|
25216
25240
|
var CHAT_DIALOG_ID = callTarget({ action: "im.v2.Chat.getDialogId", method: "POST" });
|
|
@@ -25443,6 +25467,13 @@ function parseResponse(schema, raw, method) {
|
|
|
25443
25467
|
if (!parsed.success) throw new Error(`${method} returned an unexpected shape`);
|
|
25444
25468
|
return parsed.data;
|
|
25445
25469
|
}
|
|
25470
|
+
var noTaskResponse = external_exports.union([external_exports.object({ result: external_exports.tuple([]) }), external_exports.object({ data: external_exports.union([external_exports.null(), external_exports.tuple([])]) })]);
|
|
25471
|
+
function parseTaskCard(schema, raw, method, taskId) {
|
|
25472
|
+
const parsed = schema.safeParse(raw);
|
|
25473
|
+
if (parsed.success) return parsed.data;
|
|
25474
|
+
if (noTaskResponse.safeParse(raw).success) throw new Error(`\u0437\u0430\u0434\u0430\u0447\u0430 ${taskId} \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u0430 \u0438\u043B\u0438 \u043D\u0435\u0442 \u0434\u043E\u0441\u0442\u0443\u043F\u0430 (\u0443\u0434\u0430\u043B\u0435\u043D\u0430 \u0438\u043B\u0438 \u0441\u043A\u0440\u044B\u0442\u0430 \u043E\u0442 \u0442\u0435\u0431\u044F)`);
|
|
25475
|
+
throw new Error(`${method} returned an unexpected shape`);
|
|
25476
|
+
}
|
|
25446
25477
|
async function mayHaveHappened(write, schema, method, unconfirmed) {
|
|
25447
25478
|
const raw = await write.catch((e) => {
|
|
25448
25479
|
throw new Error(`${errorMessage(e)} \u2014 ${unconfirmed}`);
|
|
@@ -25461,6 +25492,7 @@ var SPRINT_STAGES = restMethod("tasks.api.scrum.kanban.getStages");
|
|
|
25461
25492
|
var STAGE_MOVE = restMethod("task.stages.movetask");
|
|
25462
25493
|
var SCRUM_TASK_GET = restMethod("tasks.api.scrum.task.get");
|
|
25463
25494
|
var BACKLOG_GET = restMethod("tasks.api.scrum.backlog.get");
|
|
25495
|
+
var GROUP_STAGES = restMethod("task.stages.get");
|
|
25464
25496
|
var USER_CURRENT = restMethod("user.current");
|
|
25465
25497
|
var TASK_STAGE_SELECT = ["ID", "GROUP_ID", "STAGE_ID", "STATUS"];
|
|
25466
25498
|
var sprintsResponse = external_exports.object({ result: external_exports.array(external_exports.object({ id: numeric, status: external_exports.string() })) });
|
|
@@ -25473,6 +25505,8 @@ var taskResponse = external_exports.object({
|
|
|
25473
25505
|
var scrumTaskResponse = external_exports.object({ result: external_exports.object({ entityId: numeric, groupId: numeric.nullish() }) });
|
|
25474
25506
|
var backlogResponse = external_exports.object({ result: external_exports.object({ id: numeric }) });
|
|
25475
25507
|
var currentUserResponse = external_exports.object({ result: external_exports.object({ ID: numeric }) });
|
|
25508
|
+
var groupStage = external_exports.object({ ID: numeric, TITLE: external_exports.string(), SYSTEM_TYPE: external_exports.string().nullish() });
|
|
25509
|
+
var groupStagesResponse = external_exports.object({ result: external_exports.union([external_exports.record(groupStage), external_exports.array(groupStage)]) });
|
|
25476
25510
|
async function activeSprintColumns(ctx, groupId) {
|
|
25477
25511
|
const sprints = parseResponse(
|
|
25478
25512
|
sprintsResponse,
|
|
@@ -25491,7 +25525,7 @@ async function activeSprintColumns(ctx, groupId) {
|
|
|
25491
25525
|
}
|
|
25492
25526
|
async function readTaskStage(ctx, taskId) {
|
|
25493
25527
|
const raw = await ctx.call({ ...REST_TASK_GET, params: { taskId, select: TASK_STAGE_SELECT } });
|
|
25494
|
-
return
|
|
25528
|
+
return parseTaskCard(taskResponse, raw, "tasks.task.get", taskId).result.task;
|
|
25495
25529
|
}
|
|
25496
25530
|
var currentUsers = /* @__PURE__ */ new WeakMap();
|
|
25497
25531
|
function currentUserId(ctx) {
|
|
@@ -25523,6 +25557,13 @@ async function readBacklogId(ctx, groupId) {
|
|
|
25523
25557
|
const raw = await ctx.call({ ...BACKLOG_GET, params: { id: groupId } });
|
|
25524
25558
|
return parseResponse(backlogResponse, raw, "tasks.api.scrum.backlog.get").result.id;
|
|
25525
25559
|
}
|
|
25560
|
+
async function readGroupStages(ctx, groupId) {
|
|
25561
|
+
const raw = await ctx.call({ ...GROUP_STAGES, params: { entityId: groupId } });
|
|
25562
|
+
const stages = Object.values(parseResponse(groupStagesResponse, raw, "task.stages.get").result);
|
|
25563
|
+
const start = stages.find((s) => s.SYSTEM_TYPE === "NEW");
|
|
25564
|
+
if (!start) throw new Error(`\u0443 \u043F\u0440\u043E\u0435\u043A\u0442\u0430 ${groupId} \u043D\u0435\u0442 \u0441\u0442\u0430\u0440\u0442\u043E\u0432\u043E\u0439 \u0441\u0442\u0430\u0434\u0438\u0438 (SYSTEM_TYPE NEW) \u0432 task.stages.get \u2014 \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043E`);
|
|
25565
|
+
return { ids: new Set(stages.map((s) => s.ID)), start: { id: start.ID, name: start.TITLE } };
|
|
25566
|
+
}
|
|
25526
25567
|
function findColumn(columns, column) {
|
|
25527
25568
|
if (typeof column === "number") return columns.find((c) => c.id === column);
|
|
25528
25569
|
const wanted = column.trim().toLowerCase();
|
|
@@ -25568,7 +25609,7 @@ var BOARD_CREATE = callTarget({
|
|
|
25568
25609
|
endpoint: "/bitrix/services/main/ajax.php?mode=class&c=bitrix%3Atasks.kanban&action=addTask",
|
|
25569
25610
|
method: "POST"
|
|
25570
25611
|
});
|
|
25571
|
-
var RESULT_ADD =
|
|
25612
|
+
var RESULT_ADD = v2("tasks.v2.Task.Result.add");
|
|
25572
25613
|
var DESCRIPTION_MAX = 1e5;
|
|
25573
25614
|
var RESULT_MAX = 2e4;
|
|
25574
25615
|
var TITLE_MAX = 255;
|
|
@@ -25585,7 +25626,7 @@ var usersResponse = external_exports.object({
|
|
|
25585
25626
|
});
|
|
25586
25627
|
async function readDescription(ctx, taskId) {
|
|
25587
25628
|
const raw = await ctx.call({ ...TASK_V2_GET, params: { task: { id: taskId } } });
|
|
25588
|
-
return
|
|
25629
|
+
return parseTaskCard(descriptionResponse, raw, "tasks.v2.Task.get (description)", taskId).data.description ?? "";
|
|
25589
25630
|
}
|
|
25590
25631
|
var DESCRIPTION_MAY_HAVE_CHANGED = "\u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u043C\u043E\u0433\u043B\u043E \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C\u0441\u044F \u2014 \u0441\u0432\u0435\u0440\u044C \u0447\u0435\u0440\u0435\u0437 bitrix_task_get_v2 \u043F\u0435\u0440\u0435\u0434 \u043F\u043E\u0432\u0442\u043E\u0440\u043E\u043C";
|
|
25591
25632
|
async function writeDescription(ctx, taskId, text) {
|
|
@@ -25601,14 +25642,14 @@ async function writeDescription(ctx, taskId, text) {
|
|
|
25601
25642
|
}
|
|
25602
25643
|
async function readResponsible(ctx, taskId) {
|
|
25603
25644
|
const raw = await ctx.call({ ...REST_TASK_GET, params: { taskId, select: ["ID", "RESPONSIBLE_ID"] } });
|
|
25604
|
-
return
|
|
25645
|
+
return parseTaskCard(responsibleResponse, raw, "tasks.task.get", taskId).result.task;
|
|
25605
25646
|
}
|
|
25606
25647
|
var userIdsArg = () => external_exports.array(idArg()).max(MAX_BATCH).optional();
|
|
25607
25648
|
function memberListOperation(def) {
|
|
25608
25649
|
const response = membersResponse(def.key);
|
|
25609
25650
|
const readMembers = async (ctx, taskId) => {
|
|
25610
25651
|
const raw = await ctx.call({ ...REST_TASK_GET, params: { taskId, select: ["ID", def.field] } });
|
|
25611
|
-
return
|
|
25652
|
+
return parseTaskCard(response, raw, "tasks.task.get", taskId).result.task[def.key];
|
|
25612
25653
|
};
|
|
25613
25654
|
return defineOperation({
|
|
25614
25655
|
name: def.name,
|
|
@@ -25669,6 +25710,19 @@ async function placeInSprint(ctx, taskId, { fromBacklog, sprintId, target }) {
|
|
|
25669
25710
|
const moved = await moveToColumn(ctx, taskId, target, fromBacklog ? RETRY_FROM_BACKLOG : void 0);
|
|
25670
25711
|
return { sprintId, ...moved, fromBacklog };
|
|
25671
25712
|
}
|
|
25713
|
+
var RETRY_TO_BACKLOG = "\u043F\u043E\u0432\u0442\u043E\u0440\u0438 bitrix_task_to_backlog \u2014 \u0443 \u0437\u0430\u0434\u0430\u0447\u0438, \u0443\u0436\u0435 \u0441\u0442\u043E\u044F\u0449\u0435\u0439 \u0432 \u0431\u044D\u043A\u043B\u043E\u0433\u0435, \u043E\u043D \u043F\u0435\u0440\u0435\u0441\u0442\u0430\u0432\u0438\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u0441\u0442\u0430\u0434\u0438\u044E";
|
|
25714
|
+
async function leaveSprintColumn(ctx, taskId, start) {
|
|
25715
|
+
await ctx.call({ ...TASK_UPDATE, params: { taskId, fields: { STAGE_ID: start.id } } }).catch((e) => {
|
|
25716
|
+
throw new Error(`\u0437\u0430\u0434\u0430\u0447\u0430 \u0432 \u0431\u044D\u043A\u043B\u043E\u0433\u0435, \u043D\u043E \u043E\u0441\u0442\u0430\u043B\u0430\u0441\u044C \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0435 \u0441\u043F\u0440\u0438\u043D\u0442\u0430 (${errorMessage(e)}) \u2014 ${RETRY_TO_BACKLOG}`);
|
|
25717
|
+
});
|
|
25718
|
+
const { stageId } = await readTaskStage(ctx, taskId).catch((e) => {
|
|
25719
|
+
throw new Error(`\u0441\u0442\u0430\u0434\u0438\u044F \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0430, \u043D\u043E \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C (\u043F\u0440\u043E\u0432\u0435\u0440\u044C \u0447\u0435\u0440\u0435\u0437 bitrix_task_get): ${errorMessage(e)}`);
|
|
25720
|
+
});
|
|
25721
|
+
if (stageId !== start.id) {
|
|
25722
|
+
throw new Error(`Bitrix \u043E\u0442\u0432\u0435\u0442\u0438\u043B \u0443\u0441\u043F\u0435\u0445\u043E\u043C, \u043D\u043E \u0437\u0430\u0434\u0430\u0447\u0430 \u0432 \u0441\u0442\u0430\u0434\u0438\u0438 ${stageId ?? "?"}, \u0430 \u043D\u0435 \xAB${start.name}\xBB (${start.id}) \u2014 ${RETRY_TO_BACKLOG}`);
|
|
25723
|
+
}
|
|
25724
|
+
return { stageId: start.id };
|
|
25725
|
+
}
|
|
25672
25726
|
var MEMBERS_HINT = "add / remove \u2014 \u043C\u0430\u0441\u0441\u0438\u0432\u044B userId (\u043D\u0430\u0439\u0442\u0438 id \u043F\u043E \u0444\u0430\u043C\u0438\u043B\u0438\u0438 \u2014 bitrix_user_find); \u043D\u0443\u0436\u0435\u043D \u0445\u043E\u0442\u044F \u0431\u044B \u043E\u0434\u0438\u043D \u043D\u0435\u043F\u0443\u0441\u0442\u043E\u0439. \u0421\u043F\u0438\u0441\u043E\u043A \u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044F \u0443 \u043A\u0430\u0436\u0434\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u0437\u0430\u043D\u043E\u0432\u043E, \u0437\u0430\u043F\u0438\u0441\u044B\u0432\u0430\u0435\u0442\u0441\u044F \u0446\u0435\u043B\u0438\u043A\u043E\u043C \u0438 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442\u0441\u044F; \u0435\u0441\u043B\u0438 \u043C\u0435\u043D\u044F\u0442\u044C \u043D\u0435\u0447\u0435\u0433\u043E, \u0437\u0430\u043F\u0438\u0441\u044C \u043D\u0435 \u0434\u0435\u043B\u0430\u0435\u0442\u0441\u044F (changed: false). \u0415\u0441\u043B\u0438 Bitrix \u043F\u0440\u0438\u043C\u0435\u043D\u0438\u043B \u043D\u0435 \u0432\u0441\u0451, \u0437\u0430\u0434\u0430\u0447\u0430 ok: false \u0441 \u043F\u0435\u0440\u0435\u0447\u043D\u0435\u043C. \u0417\u0430\u0434\u0430\u0447\u0438 \u043E\u0431\u0440\u0430\u0431\u0430\u0442\u044B\u0432\u0430\u044E\u0442\u0441\u044F \u043F\u043E \u043E\u0447\u0435\u0440\u0435\u0434\u0438; \u043E\u0448\u0438\u0431\u043A\u0430 \u043E\u0434\u043D\u043E\u0439 \u043D\u0435 \u043E\u0441\u0442\u0430\u043D\u0430\u0432\u043B\u0438\u0432\u0430\u0435\u0442 \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u044B\u0435.";
|
|
25673
25727
|
var DESCRIPTION_REREAD = "\u041F\u043E\u0441\u043B\u0435 \u0437\u0430\u043F\u0438\u0441\u0438 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442\u0441\u044F; \u0435\u0441\u043B\u0438 \u043E\u043D\u043E \u043D\u0435 \u0442\u043E, \u0447\u0442\u043E \u0437\u0430\u043F\u0438\u0441\u0430\u043D\u043E, \u2014 \u043E\u0448\u0438\u0431\u043A\u0430. \u041E\u0442\u0432\u0435\u0442: { taskId, length } \u2014 length \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u043D\u043D\u043E\u0433\u043E \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u044F. ";
|
|
25674
25728
|
var DESCRIPTION_FORMAT = "\u0424\u043E\u0440\u043C\u0430\u0442 \u2014 BBCode: [b] [i] [u] [s], [url=\u2026]\u2026[/url], [user=ID]\u0418\u043C\u044F[/user], \u0441\u043F\u0438\u0441\u043A\u0438 [list] / [list=1] \u0441 \u043F\u0443\u043D\u043A\u0442\u0430\u043C\u0438 [*], [quote], [code], [spoiler=\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A]\u2026[/spoiler], \u0442\u0430\u0431\u043B\u0438\u0446\u044B [table][tr][th]/[td]. \u0412\u043B\u043E\u0436\u0435\u043D\u0438\u044F [disk file id=\u2026] \u0432 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0438 \u043D\u0435 \u0442\u0440\u043E\u0433\u0430\u0439 \u2014 \u044D\u0442\u043E \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u0451\u043D\u043D\u044B\u0435 \u0444\u0430\u0439\u043B\u044B.";
|
|
@@ -25755,22 +25809,28 @@ ${a.text}` : a.text);
|
|
|
25755
25809
|
}),
|
|
25756
25810
|
defineOperation({
|
|
25757
25811
|
name: "task_to_backlog",
|
|
25758
|
-
description: "\u26A0 \u041C\u0423\u0422\u0418\u0420\u0423\u042E\u0429\u0418\u0419. \u0412\u0435\u0440\u043D\u0443\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0438 (taskIds \u2014 \u0434\u043E 50) \u0432 \u0411\u042D\u041A\u041B\u041E\u0413 \u0438\u0445 scrum-\u043F\u0440\u043E\u0435\u043A\u0442\u0430; \u0441 \u0434\u043E\u0441\u043A\u0438 \u0441\u043F\u0440\u0438\u043D\u0442\u0430 \u043E\u043D\u0438 \u043F\u0440\u043E\u043F\u0430\u0434\u0430\u044E\u0442 \u2014 \u044D\u0442\u043E \u0432\u0438\u0434\u044F\u0442 \u0432\u0441\u0435 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u043F\u0440\u043E\u0435\u043A\u0442\u0430. \u0417\u0430\u0434\u0430\u0447\u0438
|
|
25812
|
+
description: "\u26A0 \u041C\u0423\u0422\u0418\u0420\u0423\u042E\u0429\u0418\u0419. \u0412\u0435\u0440\u043D\u0443\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0438 (taskIds \u2014 \u0434\u043E 50) \u0432 \u0411\u042D\u041A\u041B\u041E\u0413 \u0438\u0445 scrum-\u043F\u0440\u043E\u0435\u043A\u0442\u0430; \u0441 \u0434\u043E\u0441\u043A\u0438 \u0441\u043F\u0440\u0438\u043D\u0442\u0430 \u043E\u043D\u0438 \u043F\u0440\u043E\u043F\u0430\u0434\u0430\u044E\u0442 \u2014 \u044D\u0442\u043E \u0432\u0438\u0434\u044F\u0442 \u0432\u0441\u0435 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u043F\u0440\u043E\u0435\u043A\u0442\u0430. \u0417\u0430\u0434\u0430\u0447\u0430 \u0443\u0445\u043E\u0434\u0438\u0442 \u0438\u0437 \u043A\u043E\u043B\u043E\u043D\u043A\u0438 \u0441\u043F\u0440\u0438\u043D\u0442\u0430 \u0432 \u0441\u0442\u0430\u0440\u0442\u043E\u0432\u0443\u044E \u0441\u0442\u0430\u0434\u0438\u044E \u043A\u0430\u043D\u0431\u0430\u043D\u0430 \u043F\u0440\u043E\u0435\u043A\u0442\u0430, \u043A\u0430\u043A \u043F\u0440\u0438 \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0435 \u0432 \u0432\u0435\u0431-\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435. \u0417\u0430\u0434\u0430\u0447\u0430, \u043A\u043E\u0442\u043E\u0440\u0430\u044F \u0443\u0436\u0435 \u0432 \u0431\u044D\u043A\u043B\u043E\u0433\u0435, \u043D\u043E \u0432\u0441\u0451 \u0435\u0449\u0451 \u0447\u0438\u0441\u043B\u0438\u0442\u0441\u044F \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0435 \u0441\u043F\u0440\u0438\u043D\u0442\u0430, \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u0435\u0440\u0435\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u0432 \u044D\u0442\u0443 \u0441\u0442\u0430\u0434\u0438\u044E; \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0431\u044D\u043A\u043B\u043E\u0433\u0430 \u043D\u0435 \u0442\u0440\u043E\u0433\u0430\u044E\u0442\u0441\u044F (changed: false). \u0417\u0430\u0434\u0430\u0447\u0438 \u043E\u0431\u0440\u0430\u0431\u0430\u0442\u044B\u0432\u0430\u044E\u0442\u0441\u044F \u043F\u043E \u043E\u0447\u0435\u0440\u0435\u0434\u0438; \u043E\u0448\u0438\u0431\u043A\u0430 \u043E\u0434\u043D\u043E\u0439 \u043D\u0435 \u043E\u0441\u0442\u0430\u043D\u0430\u0432\u043B\u0438\u0432\u0430\u0435\u0442 \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u044B\u0435. \u041E\u0442\u0432\u0435\u0442: { results: [{ taskId, ok, error?, backlogId, stageId, changed }] } \u2014 \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0438 \u0441\u0442\u0430\u0434\u0438\u044F \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u043D\u044B \u043F\u043E\u0441\u043B\u0435 \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0430.",
|
|
25759
25813
|
mutating: true,
|
|
25760
25814
|
budget: "long",
|
|
25761
25815
|
input: { taskIds: taskIdsArg() },
|
|
25762
25816
|
run: async (ctx, a) => {
|
|
25763
25817
|
const backlogOf = perGroup((groupId) => readBacklogId(ctx, groupId));
|
|
25818
|
+
const stagesOf = perGroup((groupId) => readGroupStages(ctx, groupId));
|
|
25764
25819
|
return forEachTask(a.taskIds, async (taskId) => {
|
|
25765
25820
|
const task = await readScrumTask(ctx, taskId);
|
|
25766
25821
|
const backlogId = await backlogOf(task.groupId);
|
|
25767
|
-
|
|
25822
|
+
const stages = await stagesOf(task.groupId);
|
|
25823
|
+
if (task.entityId === backlogId) {
|
|
25824
|
+
const { stageId } = await readTaskStage(ctx, taskId);
|
|
25825
|
+
if (!stageId || stages.ids.has(stageId)) return { backlogId, stageId: stageId ?? 0, changed: false };
|
|
25826
|
+
return { backlogId, ...await leaveSprintColumn(ctx, taskId, stages.start), changed: true };
|
|
25827
|
+
}
|
|
25768
25828
|
await ctx.call({ ...SCRUM_TASK_UPDATE, params: { id: taskId, fields: { entityId: backlogId } } });
|
|
25769
25829
|
const after = await readScrumTask(ctx, taskId).catch((e) => {
|
|
25770
25830
|
throw new Error(`\u043F\u0435\u0440\u0435\u043D\u043E\u0441 \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D, \u043D\u043E \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C (\u043F\u0440\u043E\u0432\u0435\u0440\u044C \u0447\u0435\u0440\u0435\u0437 bitrix_task_scrum_info): ${errorMessage(e)}`);
|
|
25771
25831
|
});
|
|
25772
25832
|
if (after.entityId !== backlogId) throw new Error(`Bitrix \u043E\u0442\u0432\u0435\u0442\u0438\u043B \u0443\u0441\u043F\u0435\u0445\u043E\u043C, \u043D\u043E \u0437\u0430\u0434\u0430\u0447\u0430 \u043D\u0435 \u0432 \u0431\u044D\u043A\u043B\u043E\u0433\u0435 (\u0441\u0435\u0439\u0447\u0430\u0441 \u0432 ${after.entityId})`);
|
|
25773
|
-
return { backlogId, changed: true };
|
|
25833
|
+
return { backlogId, ...await leaveSprintColumn(ctx, taskId, stages.start), changed: true };
|
|
25774
25834
|
});
|
|
25775
25835
|
}
|
|
25776
25836
|
}),
|
|
@@ -25869,8 +25929,8 @@ ${a.text}` : a.text);
|
|
|
25869
25929
|
];
|
|
25870
25930
|
|
|
25871
25931
|
// src/ops/content.ts
|
|
25872
|
-
var TASK_V2_UPDATE =
|
|
25873
|
-
var PLAN_UPDATE =
|
|
25932
|
+
var TASK_V2_UPDATE = v2("tasks.v2.Task.update");
|
|
25933
|
+
var PLAN_UPDATE = v2("tasks.v2.Task.Plan.update");
|
|
25874
25934
|
var CHECKLIST_LIST = restMethod("task.checklistitem.getlist");
|
|
25875
25935
|
var CHECKLIST_ADD = restMethod("task.checklistitem.add");
|
|
25876
25936
|
var CHECKLIST_UPDATE = restMethod("task.checklistitem.update");
|
|
@@ -25889,11 +25949,11 @@ var SentUnconfirmed = class extends Error {
|
|
|
25889
25949
|
};
|
|
25890
25950
|
async function readTags(ctx, taskId) {
|
|
25891
25951
|
const raw = await ctx.call({ ...TASK_V2_GET, params: { task: { id: taskId } } });
|
|
25892
|
-
return
|
|
25952
|
+
return parseTaskCard(tagsResponse, raw, "tasks.v2.Task.get (tags)", taskId).data.tags.map((t) => t.name);
|
|
25893
25953
|
}
|
|
25894
25954
|
async function readPlan(ctx, taskId) {
|
|
25895
25955
|
const raw = await ctx.call({ ...TASK_V2_GET, params: { task: { id: taskId } } });
|
|
25896
|
-
const { startPlanTs, endPlanTs } =
|
|
25956
|
+
const { startPlanTs, endPlanTs } = parseTaskCard(planResponse, raw, "tasks.v2.Task.get (plan dates)", taskId).data;
|
|
25897
25957
|
return { startPlanTs: startPlanTs ?? 0, endPlanTs: endPlanTs ?? 0 };
|
|
25898
25958
|
}
|
|
25899
25959
|
async function readChecklist(ctx, taskId) {
|
|
@@ -25990,7 +26050,7 @@ var CONTENT_OPERATIONS = [
|
|
|
25990
26050
|
}),
|
|
25991
26051
|
defineOperation({
|
|
25992
26052
|
name: "task_checklist_edit",
|
|
25993
|
-
description: "\u26A0 \u041C\u0423\u0422\u0418\u0420\u0423\u042E\u0429\u0418\u0419. \u0418\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0447\u0435\u043A-\u043B\u0438\u0441\u0442 \u0437\u0430\u0434\u0430\u0447\u0438: add \u2014 \u043D\u043E\u0432\u044B\u0435 \u043F\u0443\u043D\u043A\u0442\u044B (\u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044F; \u043F\u0440\u0438 \u043F\u0443\u0441\u0442\u043E\u043C \u0447\u0435\u043A-\u043B\u0438\u0441\u0442\u0435 Bitrix \u0441\u0430\u043C \u0441\u043E\u0437\u0434\u0430\u0451\u0442 \u0433\u0440\u0443\u043F\u043F\u0443), rename \u2014 [{ itemId, title }], complete \u2014 \u043E\u0442\u043C\u0435\u0442\u0438\u0442\u044C \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043D\u044B\u043C\u0438, reopen \u2014 \u0441\u043D\u044F\u0442\u044C \u043E\u0442\u043C\u0435\u0442\u043A\u0443, remove \u2014 \u0443\u0434\u0430\u043B\u0438\u0442\u044C. itemId \u2014 \u0438\u0437 bitrix_task_checklist. \u041F\u0443\u043D\u043A\u0442 \u043C\u043E\u0436\u043D\u043E \u0437\u0430 \u0440\u0430\u0437 \u043F\u0435\u0440\u0435\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u0442\u044C \u0438 \u043E\u0442\u043C\u0435\u0442\u0438\u0442\u044C, \u043D\u043E \u043D\u0435\u043B\u044C\u0437\u044F complete \u0438 reopen \u0432\u043C\u0435\u0441\u0442\u0435 \u0438\u043B\u0438 remove \u0432\u043C\u0435\u0441\u0442\u0435 \u0441 \u0434\u0440\u0443\u0433\u043E\u0439 \u0435\u0433\u043E \u043F\u0440\u0430\u0432\u043A\u043E\u0439. \u041D\u0430\u0437\u0432\u0430\u043D\u0438\u044F \u2014 \u043F\u0440\u043E\u0441\u0442\u043E\u0439 \u0442\u0435\u043A\u0441\u0442 (\u043A\u0430\u043A \u0432 \u043F\u0443\u043D\u043A\u0442\u0435 \u0440\u0435\u043D\u0434\u0435\u0440\u0438\u0442\u0441\u044F BBCode, \u043D\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043E). \u0418\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F \u0432\u0438\u0434\u044F\u0442 \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443. \u0421\u043D\u0430\u0447\u0430\u043B\u0430 \u0432\u0441\u0435 itemId \u0441\u0432\u0435\u0440\u044F\u044E\u0442\u0441\u044F \u0441 \u0447\u0435\u043A-\u043B\u0438\u0441\u0442\u043E\u043C (\u043D\u0435\u0442 \u043F\u0443\u043D\u043A\u0442\u0430 \u2014 \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u043C\u0435\u043D\u044F\u0435\u0442\u0441\u044F), \u0437\u0430\u0442\u0435\u043C \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u0432\u044B\u043F\u043E\u043B\u043D\u044F\u044E\u0442\u0441\u044F \u043F\u043E \u043E\u0447\u0435\u0440\u0435\u0434\u0438: add, rename, complete, reopen, remove \u2014 \u0432\u0441\u0435\u0433\u043E \u0434\u043E 50 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0437\u0430 \u0432\u044B\u0437\u043E\u0432; \u043F\u0440\u0438 \u0441\u0431\u043E\u0435 \u043F\u043E\u0441\u0435\u0440\u0435\u0434\u0438\u043D\u0435 \u043E\u0448\u0438\u0431\u043A\u0430 \u043F\u0435\u0440\u0435\u0447\u0438\u0441\u043B\u044F\u0435\u0442 \u0441\u0434\u0435\u043B\u0430\u043D\u043D\u043E\u0435. \u0423\u0434\u0430\u043B\u0435\u043D\u0438\u0435 \u0433\u0440\u0443\u043F\u043F\u044B (\u043F\u0443\u043D\u043A\u0442\u0430 \u0441 parentId 0) \u0443\u0431\u0438\u0440\u0430\u0435\u0442 \u0438 \u0435\u0451 \u043F\u0443\u043D\u043A\u0442\u044B: \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u043E \u043E\u043D\u0438 \u043D\u0435 \u0443\u0434\u0430\u043B\u044F\u044E\u0442\u0441\u044F, \u0438 \u043E\u0441\u0442\u0430\u043B\u0438\u0441\u044C \u043B\u0438 \u043E\u043D\u0438, \u043D\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u044F\u0435\u0442\u0441\u044F; \u043D\u043E\u0432\u044B\u0435 \u043F\u0443\u043D\u043A\u0442\u044B \u0432 \u0432\u044B\u0437\u043E\u0432\u0435, \u0433\u0434\u0435 \u0443\u0434\u0430\u043B\u044F\u0435\u0442\u0441\u044F \u0433\u0440\u0443\u043F\u043F\u0430, \u043F\u043E\u0441\u043B\u0435 \u0437\u0430\u043F\u0438\u0441\u0438 \u0442\u043E\u0436\u0435 \u043D\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u044F\u044E\u0442\u0441\u044F (Bitrix \u043C\u043E\u0433 \u043F\u043E\u043B\u043E\u0436\u0438\u0442\u044C \u0438\u0445 \u0432 \u044D\u0442\u0443 \u0433\u0440\u0443\u043F\u043F\u0443). \u041E\u0442\u0432\u0435\u0442: { taskId, added, items } \u2014 added \u2014 id \u043D\u043E\u0432\u044B\u0445 \u043F\u0443\u043D\u043A\u0442\u043E\u0432, items \u2014 \u0447\u0435\u043A-\u043B\u0438\u0441\u0442, \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u0439 \u043F\u043E\u0441\u043B\u0435 \u043F\u0440\u0430\u0432\u043A\u0438.",
|
|
26053
|
+
description: "\u26A0 \u041C\u0423\u0422\u0418\u0420\u0423\u042E\u0429\u0418\u0419. \u0418\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0447\u0435\u043A-\u043B\u0438\u0441\u0442 \u0437\u0430\u0434\u0430\u0447\u0438: add \u2014 \u043D\u043E\u0432\u044B\u0435 \u043F\u0443\u043D\u043A\u0442\u044B (\u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044F; \u043F\u0440\u0438 \u043F\u0443\u0441\u0442\u043E\u043C \u0447\u0435\u043A-\u043B\u0438\u0441\u0442\u0435 Bitrix \u0441\u0430\u043C \u0441\u043E\u0437\u0434\u0430\u0451\u0442 \u0433\u0440\u0443\u043F\u043F\u0443), rename \u2014 [{ itemId, title }], complete \u2014 \u043E\u0442\u043C\u0435\u0442\u0438\u0442\u044C \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043D\u044B\u043C\u0438, reopen \u2014 \u0441\u043D\u044F\u0442\u044C \u043E\u0442\u043C\u0435\u0442\u043A\u0443, remove \u2014 \u0443\u0434\u0430\u043B\u0438\u0442\u044C. itemId \u2014 \u0438\u0437 bitrix_task_checklist. \u041F\u0443\u043D\u043A\u0442 \u043C\u043E\u0436\u043D\u043E \u0437\u0430 \u0440\u0430\u0437 \u043F\u0435\u0440\u0435\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u0442\u044C \u0438 \u043E\u0442\u043C\u0435\u0442\u0438\u0442\u044C, \u043D\u043E \u043D\u0435\u043B\u044C\u0437\u044F complete \u0438 reopen \u0432\u043C\u0435\u0441\u0442\u0435 \u0438\u043B\u0438 remove \u0432\u043C\u0435\u0441\u0442\u0435 \u0441 \u0434\u0440\u0443\u0433\u043E\u0439 \u0435\u0433\u043E \u043F\u0440\u0430\u0432\u043A\u043E\u0439. \u041D\u0430\u0437\u0432\u0430\u043D\u0438\u044F \u2014 \u043F\u0440\u043E\u0441\u0442\u043E\u0439 \u0442\u0435\u043A\u0441\u0442 (\u043A\u0430\u043A \u0432 \u043F\u0443\u043D\u043A\u0442\u0435 \u0440\u0435\u043D\u0434\u0435\u0440\u0438\u0442\u0441\u044F BBCode, \u043D\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043E). \u0418\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F \u0432\u0438\u0434\u044F\u0442 \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443. \u0421\u043D\u0430\u0447\u0430\u043B\u0430 \u0432\u0441\u0435 itemId \u0441\u0432\u0435\u0440\u044F\u044E\u0442\u0441\u044F \u0441 \u0447\u0435\u043A-\u043B\u0438\u0441\u0442\u043E\u043C (\u043D\u0435\u0442 \u043F\u0443\u043D\u043A\u0442\u0430 \u2014 \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u043C\u0435\u043D\u044F\u0435\u0442\u0441\u044F), \u0437\u0430\u0442\u0435\u043C \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u0432\u044B\u043F\u043E\u043B\u043D\u044F\u044E\u0442\u0441\u044F \u043F\u043E \u043E\u0447\u0435\u0440\u0435\u0434\u0438: add, rename, complete, reopen, remove \u2014 \u0432\u0441\u0435\u0433\u043E \u0434\u043E 50 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0437\u0430 \u0432\u044B\u0437\u043E\u0432; \u043F\u0440\u0438 \u0441\u0431\u043E\u0435 \u043F\u043E\u0441\u0435\u0440\u0435\u0434\u0438\u043D\u0435 \u043E\u0448\u0438\u0431\u043A\u0430 \u043F\u0435\u0440\u0435\u0447\u0438\u0441\u043B\u044F\u0435\u0442 \u0441\u0434\u0435\u043B\u0430\u043D\u043D\u043E\u0435; \u0435\u0441\u043B\u0438 \u0432\u0440\u0435\u043C\u044F \u0432\u044B\u0437\u043E\u0432\u0430 \u043D\u0430 \u0438\u0441\u0445\u043E\u0434\u0435, \u043E\u0441\u0442\u0430\u0432\u0448\u0438\u0435\u0441\u044F \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u043D\u0435 \u043D\u0430\u0447\u0438\u043D\u0430\u044E\u0442\u0441\u044F \u2014 \u043E\u0448\u0438\u0431\u043A\u0430 \u043F\u0435\u0440\u0435\u0447\u0438\u0441\u043B\u044F\u0435\u0442 \u0438 \u0441\u0434\u0435\u043B\u0430\u043D\u043D\u043E\u0435, \u0438 \u043D\u0435 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043D\u043E\u0435. \u0423\u0434\u0430\u043B\u0435\u043D\u0438\u0435 \u0433\u0440\u0443\u043F\u043F\u044B (\u043F\u0443\u043D\u043A\u0442\u0430 \u0441 parentId 0) \u0443\u0431\u0438\u0440\u0430\u0435\u0442 \u0438 \u0435\u0451 \u043F\u0443\u043D\u043A\u0442\u044B: \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u043E \u043E\u043D\u0438 \u043D\u0435 \u0443\u0434\u0430\u043B\u044F\u044E\u0442\u0441\u044F, \u0438 \u043E\u0441\u0442\u0430\u043B\u0438\u0441\u044C \u043B\u0438 \u043E\u043D\u0438, \u043D\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u044F\u0435\u0442\u0441\u044F; \u043D\u043E\u0432\u044B\u0435 \u043F\u0443\u043D\u043A\u0442\u044B \u0432 \u0432\u044B\u0437\u043E\u0432\u0435, \u0433\u0434\u0435 \u0443\u0434\u0430\u043B\u044F\u0435\u0442\u0441\u044F \u0433\u0440\u0443\u043F\u043F\u0430, \u043F\u043E\u0441\u043B\u0435 \u0437\u0430\u043F\u0438\u0441\u0438 \u0442\u043E\u0436\u0435 \u043D\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u044F\u044E\u0442\u0441\u044F (Bitrix \u043C\u043E\u0433 \u043F\u043E\u043B\u043E\u0436\u0438\u0442\u044C \u0438\u0445 \u0432 \u044D\u0442\u0443 \u0433\u0440\u0443\u043F\u043F\u0443). \u041E\u0442\u0432\u0435\u0442: { taskId, added, items } \u2014 added \u2014 id \u043D\u043E\u0432\u044B\u0445 \u043F\u0443\u043D\u043A\u0442\u043E\u0432, items \u2014 \u0447\u0435\u043A-\u043B\u0438\u0441\u0442, \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u0439 \u043F\u043E\u0441\u043B\u0435 \u043F\u0440\u0430\u0432\u043A\u0438.",
|
|
25994
26054
|
mutating: true,
|
|
25995
26055
|
// One request per item, two more around them.
|
|
25996
26056
|
budget: "long",
|
|
@@ -26025,52 +26085,64 @@ var CONTENT_OPERATIONS = [
|
|
|
26025
26085
|
if (both !== void 0) throw invalid(`item ${both} is in both complete and reopen`);
|
|
26026
26086
|
const removedAndEdited = remove.find((id) => renamed.includes(id) || complete.includes(id) || reopen.includes(id));
|
|
26027
26087
|
if (removedAndEdited !== void 0) throw invalid(`item ${removedAndEdited} is removed and edited at once`);
|
|
26088
|
+
const pace = budgetPace();
|
|
26028
26089
|
const before = await readChecklist(ctx, TASKID);
|
|
26029
26090
|
const missing = touched.filter((id) => !before.some((item) => item.id === id));
|
|
26030
26091
|
if (missing.length > 0) {
|
|
26031
26092
|
throw new Error(`\u0432 \u0447\u0435\u043A-\u043B\u0438\u0441\u0442\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 ${TASKID} \u043D\u0435\u0442 \u043F\u0443\u043D\u043A\u0442\u043E\u0432 ${missing.join(", ")} \u2014 \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043E; \u0441\u043F\u0438\u0441\u043E\u043A \u2014 bitrix_task_checklist`);
|
|
26032
26093
|
}
|
|
26033
|
-
const done = [];
|
|
26034
|
-
const step = async (label, request) => {
|
|
26035
|
-
try {
|
|
26036
|
-
await request();
|
|
26037
|
-
} catch (e) {
|
|
26038
|
-
const outcome = e instanceof SentUnconfirmed ? "\u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u043E, \u043E\u0442\u0432\u0435\u0442 \u043D\u0435 \u0440\u0430\u0441\u043F\u043E\u0437\u043D\u0430\u043D" : `\u043D\u0435 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043E (${errorMessage(e)})`;
|
|
26039
|
-
throw new Error(
|
|
26040
|
-
`${label}: ${outcome}; \u0434\u043E \u044D\u0442\u043E\u0433\u043E \u0441\u0434\u0435\u043B\u0430\u043D\u043E: ${done.join(", ") || "\u043D\u0438\u0447\u0435\u0433\u043E"} \u2014 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0439 \u0447\u0435\u043A-\u043B\u0438\u0441\u0442 (bitrix_task_checklist) \u043F\u0435\u0440\u0435\u0434 \u043F\u043E\u0432\u0442\u043E\u0440\u043E\u043C`
|
|
26041
|
-
);
|
|
26042
|
-
}
|
|
26043
|
-
done.push(label);
|
|
26044
|
-
};
|
|
26045
26094
|
const mark = (target, ITEMID, method) => async () => {
|
|
26046
26095
|
parseResponse(checklistDoneResponse, await ctx.call({ ...target, params: { TASKID, ITEMID } }), method);
|
|
26047
26096
|
};
|
|
26048
|
-
const added = [];
|
|
26049
|
-
for (const TITLE of add) {
|
|
26050
|
-
await step(`\u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C \xAB${TITLE}\xBB`, async () => {
|
|
26051
|
-
const raw = await ctx.call({ ...CHECKLIST_ADD, params: { TASKID, FIELDS: { TITLE } } });
|
|
26052
|
-
const parsed = checklistAddResponse.safeParse(raw);
|
|
26053
|
-
if (!parsed.success) throw new SentUnconfirmed();
|
|
26054
|
-
added.push(parsed.data.result);
|
|
26055
|
-
});
|
|
26056
|
-
}
|
|
26057
|
-
for (const { itemId, title } of rename) {
|
|
26058
|
-
await step(`\u043F\u0435\u0440\u0435\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u0442\u044C ${itemId}`, async () => {
|
|
26059
|
-
await ctx.call({ ...CHECKLIST_UPDATE, params: { TASKID, ITEMID: itemId, FIELDS: { TITLE: title } } });
|
|
26060
|
-
});
|
|
26061
|
-
}
|
|
26062
|
-
for (const id of complete) await step(`\u043E\u0442\u043C\u0435\u0442\u0438\u0442\u044C ${id}`, mark(CHECKLIST_COMPLETE, id, "task.checklistitem.complete"));
|
|
26063
|
-
for (const id of reopen) await step(`\u0441\u043D\u044F\u0442\u044C \u043E\u0442\u043C\u0435\u0442\u043A\u0443 ${id}`, mark(CHECKLIST_RENEW, id, "task.checklistitem.renew"));
|
|
26064
26097
|
const gone = /* @__PURE__ */ new Set();
|
|
26065
26098
|
const drop = (id) => {
|
|
26066
26099
|
if (gone.has(id)) return;
|
|
26067
26100
|
gone.add(id);
|
|
26068
26101
|
for (const item of before) if (item.parentId === id) drop(item.id);
|
|
26069
26102
|
};
|
|
26070
|
-
|
|
26071
|
-
if (gone.has(id))
|
|
26072
|
-
await step(`\u0443\u0434\u0430\u043B\u0438\u0442\u044C ${id}`, mark(CHECKLIST_DELETE, id, "task.checklistitem.delete"));
|
|
26103
|
+
const toDelete = remove.filter((id) => {
|
|
26104
|
+
if (gone.has(id)) return false;
|
|
26073
26105
|
drop(id);
|
|
26106
|
+
return true;
|
|
26107
|
+
});
|
|
26108
|
+
const added = [];
|
|
26109
|
+
const actions = [
|
|
26110
|
+
...add.map((TITLE) => ({
|
|
26111
|
+
label: `\u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C \xAB${TITLE}\xBB`,
|
|
26112
|
+
run: async () => {
|
|
26113
|
+
const raw = await ctx.call({ ...CHECKLIST_ADD, params: { TASKID, FIELDS: { TITLE } } });
|
|
26114
|
+
const parsed = checklistAddResponse.safeParse(raw);
|
|
26115
|
+
if (!parsed.success) throw new SentUnconfirmed();
|
|
26116
|
+
added.push(parsed.data.result);
|
|
26117
|
+
}
|
|
26118
|
+
})),
|
|
26119
|
+
...rename.map(({ itemId, title }) => ({
|
|
26120
|
+
label: `\u043F\u0435\u0440\u0435\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u0442\u044C ${itemId}`,
|
|
26121
|
+
// Answers null on success.
|
|
26122
|
+
run: async () => {
|
|
26123
|
+
await ctx.call({ ...CHECKLIST_UPDATE, params: { TASKID, ITEMID: itemId, FIELDS: { TITLE: title } } });
|
|
26124
|
+
}
|
|
26125
|
+
})),
|
|
26126
|
+
...complete.map((id) => ({ label: `\u043E\u0442\u043C\u0435\u0442\u0438\u0442\u044C ${id}`, run: mark(CHECKLIST_COMPLETE, id, "task.checklistitem.complete") })),
|
|
26127
|
+
...reopen.map((id) => ({ label: `\u0441\u043D\u044F\u0442\u044C \u043E\u0442\u043C\u0435\u0442\u043A\u0443 ${id}`, run: mark(CHECKLIST_RENEW, id, "task.checklistitem.renew") })),
|
|
26128
|
+
...toDelete.map((id) => ({ label: `\u0443\u0434\u0430\u043B\u0438\u0442\u044C ${id}`, run: mark(CHECKLIST_DELETE, id, "task.checklistitem.delete") }))
|
|
26129
|
+
];
|
|
26130
|
+
for (const [i, action] of actions.entries()) {
|
|
26131
|
+
const done = actions.slice(0, i).map((a2) => a2.label).join(", ") || "\u043D\u0438\u0447\u0435\u0433\u043E";
|
|
26132
|
+
if (!pace.canStart(1)) {
|
|
26133
|
+
const rest = actions.slice(i).map((a2) => a2.label).join(", ");
|
|
26134
|
+
throw new Error(
|
|
26135
|
+
`\u0438\u0441\u0442\u0435\u043A\u043B\u043E \u0432\u0440\u0435\u043C\u044F \u0432\u044B\u0437\u043E\u0432\u0430, \u043D\u0435 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043E: ${rest}; \u0434\u043E \u044D\u0442\u043E\u0433\u043E \u0441\u0434\u0435\u043B\u0430\u043D\u043E: ${done} \u2014 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0439 \u0447\u0435\u043A-\u043B\u0438\u0441\u0442 (bitrix_task_checklist) \u043F\u0435\u0440\u0435\u0434 \u043F\u043E\u0432\u0442\u043E\u0440\u043E\u043C`
|
|
26136
|
+
);
|
|
26137
|
+
}
|
|
26138
|
+
try {
|
|
26139
|
+
await pace.time(action.run);
|
|
26140
|
+
} catch (e) {
|
|
26141
|
+
const outcome = e instanceof SentUnconfirmed ? "\u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u043E, \u043E\u0442\u0432\u0435\u0442 \u043D\u0435 \u0440\u0430\u0441\u043F\u043E\u0437\u043D\u0430\u043D" : `\u043D\u0435 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043E (${errorMessage(e)})`;
|
|
26142
|
+
throw new Error(
|
|
26143
|
+
`${action.label}: ${outcome}; \u0434\u043E \u044D\u0442\u043E\u0433\u043E \u0441\u0434\u0435\u043B\u0430\u043D\u043E: ${done} \u2014 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0439 \u0447\u0435\u043A-\u043B\u0438\u0441\u0442 (bitrix_task_checklist) \u043F\u0435\u0440\u0435\u0434 \u043F\u043E\u0432\u0442\u043E\u0440\u043E\u043C`
|
|
26144
|
+
);
|
|
26145
|
+
}
|
|
26074
26146
|
}
|
|
26075
26147
|
const isGroup = (id) => before.some((item) => item.parentId === id) || before.find((item) => item.id === id)?.parentId === 0;
|
|
26076
26148
|
const groupRemoved = remove.some(isGroup);
|
|
@@ -26135,7 +26207,6 @@ var CONTENT_OPERATIONS = [
|
|
|
26135
26207
|
];
|
|
26136
26208
|
|
|
26137
26209
|
// src/ops/attributes.ts
|
|
26138
|
-
var v2 = (action) => callTarget({ action, method: "POST", bodyType: "json" });
|
|
26139
26210
|
var DEADLINE_UPDATE = v2("tasks.v2.Task.Deadline.update");
|
|
26140
26211
|
var MUTE = v2("tasks.v2.Task.Attention.mute");
|
|
26141
26212
|
var UNMUTE = v2("tasks.v2.Task.Attention.unmute");
|
|
@@ -26164,7 +26235,7 @@ var remindersResponse = external_exports.object({
|
|
|
26164
26235
|
});
|
|
26165
26236
|
async function readCard(ctx, taskId, schema, what) {
|
|
26166
26237
|
const raw = await ctx.call({ ...TASK_V2_GET, params: { task: { id: taskId } } });
|
|
26167
|
-
return
|
|
26238
|
+
return parseTaskCard(schema, raw, `tasks.v2.Task.get (${what})`, taskId);
|
|
26168
26239
|
}
|
|
26169
26240
|
async function readReminders(ctx, taskId) {
|
|
26170
26241
|
const raw = await ctx.call({ ...REMINDER_LIST, params: { taskId } });
|
|
@@ -26330,7 +26401,7 @@ async function postMessage(ctx, dialogId, text, replyTo) {
|
|
|
26330
26401
|
}
|
|
26331
26402
|
async function readTaskChat(ctx, taskId) {
|
|
26332
26403
|
const raw = await ctx.call({ ...REST_TASK_GET, params: { taskId, select: ["ID", "CHAT_ID"] } });
|
|
26333
|
-
return
|
|
26404
|
+
return parseTaskCard(taskChatResponse, raw, "tasks.task.get", taskId).result.task.chatId;
|
|
26334
26405
|
}
|
|
26335
26406
|
var CHAT_OPERATIONS = [
|
|
26336
26407
|
defineOperation({
|
|
@@ -26399,7 +26470,7 @@ var CHAT_OPERATIONS = [
|
|
|
26399
26470
|
|
|
26400
26471
|
// src/ops/composite.ts
|
|
26401
26472
|
import { mkdirSync as mkdirSync2, writeFileSync } from "node:fs";
|
|
26402
|
-
import { join as join3 } from "node:path";
|
|
26473
|
+
import { dirname as dirname2, join as join3, resolve as resolve2 } from "node:path";
|
|
26403
26474
|
|
|
26404
26475
|
// node_modules/node-html-parser/dist/index.mjs
|
|
26405
26476
|
var __create2 = Object.create;
|
|
@@ -30700,6 +30771,7 @@ function sortCalls(acc) {
|
|
|
30700
30771
|
// src/ops/download.ts
|
|
30701
30772
|
import { basename, isAbsolute, join as join2 } from "node:path";
|
|
30702
30773
|
import { existsSync as existsSync2, renameSync, rmSync as rmSync2 } from "node:fs";
|
|
30774
|
+
import { lstat, readdir } from "node:fs/promises";
|
|
30703
30775
|
import { randomUUID as randomUUID3 } from "node:crypto";
|
|
30704
30776
|
var DOWNLOAD_LINKS = [
|
|
30705
30777
|
{
|
|
@@ -30769,6 +30841,21 @@ function resolveDestination(req) {
|
|
|
30769
30841
|
}
|
|
30770
30842
|
return path;
|
|
30771
30843
|
}
|
|
30844
|
+
var DOWNLOADS_WARN_BYTES = 500 * 1024 * 1024;
|
|
30845
|
+
async function downloadsWarning(downloadsDir) {
|
|
30846
|
+
let bytes;
|
|
30847
|
+
try {
|
|
30848
|
+
const entries = await readdir(downloadsDir, { withFileTypes: true });
|
|
30849
|
+
const sizes = await Promise.all(
|
|
30850
|
+
entries.filter((e) => e.isFile()).map((e) => lstat(join2(downloadsDir, e.name)).then((s) => s.size, () => 0))
|
|
30851
|
+
);
|
|
30852
|
+
bytes = sizes.reduce((sum, size) => sum + size, 0);
|
|
30853
|
+
} catch {
|
|
30854
|
+
return void 0;
|
|
30855
|
+
}
|
|
30856
|
+
if (bytes <= DOWNLOADS_WARN_BYTES) return void 0;
|
|
30857
|
+
return `\u043F\u0430\u043F\u043A\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043E\u043A \u043C\u043E\u0441\u0442\u0430 ${downloadsDir} \u0437\u0430\u043D\u0438\u043C\u0430\u0435\u0442 ${Math.round(bytes / 1024 / 1024)} \u041C\u0411 \u2014 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u043D\u0435\u043D\u0443\u0436\u043D\u044B\u0435 \u0444\u0430\u0439\u043B\u044B (\u043C\u043E\u0441\u0442 \u0441\u0430\u043C \u0438\u0445 \u043D\u0435 \u0443\u0434\u0430\u043B\u044F\u0435\u0442)`;
|
|
30858
|
+
}
|
|
30772
30859
|
|
|
30773
30860
|
// src/ops/taskComments.ts
|
|
30774
30861
|
var MONTHS = {
|
|
@@ -30953,6 +31040,11 @@ async function downloadToDisk(ctx, origins, args) {
|
|
|
30953
31040
|
})
|
|
30954
31041
|
};
|
|
30955
31042
|
}
|
|
31043
|
+
async function withDownloadsWarning(ctx, written, reply) {
|
|
31044
|
+
if (dirname2(resolve2(written)) !== resolve2(ctx.downloadsDir)) return reply;
|
|
31045
|
+
const warning = await downloadsWarning(ctx.downloadsDir);
|
|
31046
|
+
return warning === void 0 ? reply : { ...reply, warning };
|
|
31047
|
+
}
|
|
30956
31048
|
var COMPOSITE_OPERATIONS = [
|
|
30957
31049
|
defineOperation({
|
|
30958
31050
|
name: "call_detail",
|
|
@@ -30975,7 +31067,7 @@ var COMPOSITE_OPERATIONS = [
|
|
|
30975
31067
|
};
|
|
30976
31068
|
writeFileSync(files.transcript, formatTranscript(call), "utf8");
|
|
30977
31069
|
writeFileSync(files.json, JSON.stringify(call, null, 1), "utf8");
|
|
30978
|
-
return { ...call, transcript: [], files };
|
|
31070
|
+
return withDownloadsWarning(ctx, files.transcript, { ...call, transcript: [], files });
|
|
30979
31071
|
}
|
|
30980
31072
|
}),
|
|
30981
31073
|
// The legacy forum discussion tasks had before task chats. The first page is a server-rendered
|
|
@@ -31045,7 +31137,7 @@ var COMPOSITE_OPERATIONS = [
|
|
|
31045
31137
|
};
|
|
31046
31138
|
writeFileSync(files.text, formatComments(taskId, comments, reachedHistoryStart), "utf8");
|
|
31047
31139
|
writeFileSync(files.json, JSON.stringify(result, null, 1), "utf8");
|
|
31048
|
-
return { ...result, comments: [], files };
|
|
31140
|
+
return withDownloadsWarning(ctx, files.text, { ...result, comments: [], files });
|
|
31049
31141
|
}
|
|
31050
31142
|
}),
|
|
31051
31143
|
defineOperation({
|
|
@@ -31054,7 +31146,10 @@ var COMPOSITE_OPERATIONS = [
|
|
|
31054
31146
|
mutating: false,
|
|
31055
31147
|
budget: "download",
|
|
31056
31148
|
input: { url: external_exports.string(), savePath: external_exports.string().optional(), overwrite: external_exports.boolean().optional() },
|
|
31057
|
-
run: (ctx, a) =>
|
|
31149
|
+
run: async (ctx, a) => {
|
|
31150
|
+
const saved = await downloadToDisk(ctx, ctx.origins, { ...a, fallbackName: "bitrix-file" });
|
|
31151
|
+
return withDownloadsWarning(ctx, saved.path, saved);
|
|
31152
|
+
}
|
|
31058
31153
|
}),
|
|
31059
31154
|
defineOperation({
|
|
31060
31155
|
name: "call_recording",
|
|
@@ -31065,7 +31160,8 @@ var COMPOSITE_OPERATIONS = [
|
|
|
31065
31160
|
async run(ctx, { callId, savePath, overwrite }) {
|
|
31066
31161
|
const detail = await loadCallDetail(ctx, callId, void 0, false);
|
|
31067
31162
|
if (!detail.recording?.url) throw new Error(`call ${callId} has no recording`);
|
|
31068
|
-
|
|
31163
|
+
const saved = await downloadToDisk(ctx, { [ctx.portal]: ctx.origin }, { url: detail.recording.url, savePath, overwrite, fallbackName: `call-${detail.id}.mp3` });
|
|
31164
|
+
return withDownloadsWarning(ctx, saved.path, saved);
|
|
31069
31165
|
}
|
|
31070
31166
|
}),
|
|
31071
31167
|
defineOperation({
|
|
@@ -31126,7 +31222,7 @@ var COMPOSITE_OPERATIONS = [
|
|
|
31126
31222
|
// src/ops/files.ts
|
|
31127
31223
|
import { constants } from "node:fs";
|
|
31128
31224
|
import { open, realpath } from "node:fs/promises";
|
|
31129
|
-
import { basename as basename2, isAbsolute as isAbsolute2, relative, resolve as
|
|
31225
|
+
import { basename as basename2, isAbsolute as isAbsolute2, relative, resolve as resolve3, sep } from "node:path";
|
|
31130
31226
|
var STORAGE_LIST = restMethod("disk.storage.getlist");
|
|
31131
31227
|
var UPLOAD = restMethod("disk.folder.uploadfile");
|
|
31132
31228
|
var ATTACH = restMethod("tasks.task.files.attach");
|
|
@@ -31140,7 +31236,7 @@ var taskFilesResponse = external_exports.object({ result: external_exports.objec
|
|
|
31140
31236
|
var fileNameArg = () => external_exports.string().min(1).max(255).refine((name) => !/[/\\\x00-\x1f\x7f]/.test(name) && name !== "." && name !== "..", "a file name, without path separators or control characters");
|
|
31141
31237
|
async function readTaskFiles(ctx, taskId) {
|
|
31142
31238
|
const raw = await ctx.call({ ...REST_TASK_GET, params: { taskId, select: ["ID", "UF_TASK_WEBDAV_FILES"] } });
|
|
31143
|
-
return
|
|
31239
|
+
return parseTaskCard(taskFilesResponse, raw, "tasks.task.get", taskId).result.task.ufTaskWebdavFiles ?? [];
|
|
31144
31240
|
}
|
|
31145
31241
|
function fileError(path, e) {
|
|
31146
31242
|
const code = e instanceof Error && "code" in e ? e.code : void 0;
|
|
@@ -31149,7 +31245,7 @@ function fileError(path, e) {
|
|
|
31149
31245
|
return new OpInputError(`\u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044C ${path}${typeof code === "string" ? ` (${code})` : ""}`);
|
|
31150
31246
|
}
|
|
31151
31247
|
async function within(dir, realFile) {
|
|
31152
|
-
const realDir = await realpath(dir).catch(() =>
|
|
31248
|
+
const realDir = await realpath(dir).catch(() => resolve3(dir));
|
|
31153
31249
|
const rel = relative(realDir, realFile);
|
|
31154
31250
|
return rel === "" || rel !== ".." && !rel.startsWith(`..${sep}`) && !isAbsolute2(rel);
|
|
31155
31251
|
}
|
|
@@ -31247,9 +31343,8 @@ var DOD_NECESSARY = dod("isNecessary");
|
|
|
31247
31343
|
var DOD_SETTINGS = dod("getSettings");
|
|
31248
31344
|
var DOD_LIST = dod("getList");
|
|
31249
31345
|
var DOD_SAVE = dod("saveList");
|
|
31250
|
-
var
|
|
31251
|
-
var
|
|
31252
|
-
var STATUS_RENEW = v22("tasks.v2.Task.Status.renew");
|
|
31346
|
+
var STATUS_COMPLETE = v2("tasks.v2.Task.Status.complete");
|
|
31347
|
+
var STATUS_RENEW = v2("tasks.v2.Task.Status.renew");
|
|
31253
31348
|
var CLOSED = 5;
|
|
31254
31349
|
var groupTypeResponse = external_exports.object({ data: external_exports.object({ TYPE: external_exports.enum(["scrum", "project", "group"]) }) });
|
|
31255
31350
|
var necessaryResponse = external_exports.object({ data: external_exports.boolean() });
|
|
@@ -31413,11 +31508,10 @@ var LIFECYCLE_OPERATIONS = [
|
|
|
31413
31508
|
];
|
|
31414
31509
|
|
|
31415
31510
|
// src/ops/relations.ts
|
|
31416
|
-
var
|
|
31417
|
-
var
|
|
31418
|
-
var
|
|
31419
|
-
var
|
|
31420
|
-
var CHILD_DELETE = v23("tasks.v2.Task.Relation.Child.delete");
|
|
31511
|
+
var RELATED_ADD = v2("tasks.v2.Task.Relation.Related.add");
|
|
31512
|
+
var RELATED_DELETE = v2("tasks.v2.Task.Relation.Related.delete");
|
|
31513
|
+
var CHILD_ADD = v2("tasks.v2.Task.Relation.Child.add");
|
|
31514
|
+
var CHILD_DELETE = v2("tasks.v2.Task.Relation.Child.delete");
|
|
31421
31515
|
var GANTT_ADD = restMethod("task.dependence.add");
|
|
31422
31516
|
var GANTT_DELETE = restMethod("task.dependence.delete");
|
|
31423
31517
|
var FINISH_START = 2;
|
|
@@ -31437,11 +31531,11 @@ async function readRelated(ctx, taskId) {
|
|
|
31437
31531
|
}
|
|
31438
31532
|
async function readParent(ctx, taskId) {
|
|
31439
31533
|
const raw = await ctx.call({ ...REST_TASK_GET, params: { taskId, select: ["ID", "PARENT_ID"] } });
|
|
31440
|
-
return
|
|
31534
|
+
return parseTaskCard(parentResponse, raw, "tasks.task.get", taskId).result.task.parentId;
|
|
31441
31535
|
}
|
|
31442
31536
|
async function hasGanttLinks(ctx, taskId) {
|
|
31443
31537
|
const raw = await ctx.call({ ...TASK_V2_GET, params: { task: { id: taskId } } });
|
|
31444
|
-
return
|
|
31538
|
+
return parseTaskCard(ganttFlagResponse, raw, "tasks.v2.Task.get (containsGanttLinks)", taskId).data.containsGanttLinks;
|
|
31445
31539
|
}
|
|
31446
31540
|
var taskList = (ids) => ids.map((id) => ({ id }));
|
|
31447
31541
|
var relatedIdsArg = () => external_exports.array(idArg()).max(MAX_BATCH).optional();
|
|
@@ -31533,20 +31627,18 @@ var RELATION_OPERATIONS = [
|
|
|
31533
31627
|
}),
|
|
31534
31628
|
defineOperation({
|
|
31535
31629
|
name: "task_gantt_link",
|
|
31536
|
-
description:
|
|
31630
|
+
description: "\u26A0 \u041C\u0423\u0422\u0418\u0420\u0423\u042E\u0429\u0418\u0419. \u0421\u0432\u044F\u0437\u044C \u0437\u0430\u0434\u0430\u0447 \u043D\u0430 \u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u0435 \u0413\u0430\u043D\u0442\u0430 \xAB\u043E\u043A\u043E\u043D\u0447\u0430\u043D\u0438\u0435 \u2192 \u043D\u0430\u0447\u0430\u043B\u043E\xBB: dependentId \u043D\u0430\u0447\u0438\u043D\u0430\u0435\u0442\u0441\u044F \u043F\u043E\u0441\u043B\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F taskId. \u041F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0441\u0432\u044F\u0437\u044C \u0434\u043E\u0431\u0430\u0432\u043B\u044F\u0435\u0442\u0441\u044F; remove: true \u2014 \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u0441\u0432\u044F\u0437\u044C. \u041F\u0440\u043E\u0447\u0438\u0435 \u0441\u0432\u044F\u0437\u0438 \u0437\u0430\u0434\u0430\u0447 \u043D\u0435 \u0442\u0440\u043E\u0433\u0430\u044E\u0442\u0441\u044F. \u041F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044C \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u0443\u044E \u0441\u0432\u044F\u0437\u044C \u043D\u0435\u043B\u044C\u0437\u044F: Bitrix \u0441\u043E\u043E\u0431\u0449\u0430\u0435\u0442 \u0442\u043E\u043B\u044C\u043A\u043E, \u0435\u0441\u0442\u044C \u043B\u0438 \u0443 \u0437\u0430\u0434\u0430\u0447\u0438 dependentId \u0445\u043E\u0442\u044C \u043E\u0434\u043D\u0430 \u0441\u0432\u044F\u0437\u044C \u0413\u0430\u043D\u0442\u0430, \u2014 \u043F\u043E \u043D\u0435\u043C\u0443 \u0437\u0430\u043F\u0438\u0441\u044C \u0438 \u043F\u0440\u043E\u0432\u0435\u0440\u044F\u0435\u0442\u0441\u044F. confirmed: true \u2014 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u043E: \u043F\u043E\u0441\u043B\u0435 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u0441\u0432\u044F\u0437\u0438 \u043F\u043E\u044F\u0432\u0438\u043B\u0438\u0441\u044C, \u043F\u043E\u0441\u043B\u0435 \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u044F \u043D\u0435 \u043E\u0441\u0442\u0430\u043B\u043E\u0441\u044C \u043D\u0438 \u043E\u0434\u043D\u043E\u0439. confirmed: false \u0438 note \u2014 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044C \u043D\u0435\u043B\u044C\u0437\u044F: \u043F\u0440\u0438 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u0438 \u0443 \u0437\u0430\u0434\u0430\u0447\u0438 \u0443\u0436\u0435 \u0431\u044B\u043B\u0438 \u0441\u0432\u044F\u0437\u0438 \u0413\u0430\u043D\u0442\u0430, \u043F\u0440\u0438 \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0438 \u0443 \u043D\u0435\u0451 \u043E\u0441\u0442\u0430\u044E\u0442\u0441\u044F \u0434\u0440\u0443\u0433\u0438\u0435. \u0415\u0441\u043B\u0438 \u0441\u0432\u044F\u0437\u0435\u0439 \u043F\u043E\u0441\u043B\u0435 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u043D\u0435\u0442 \u2014 \u043E\u0448\u0438\u0431\u043A\u0430. \u041F\u043E\u0432\u0442\u043E\u0440 \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044E\u0449\u0435\u0439 \u0441\u0432\u044F\u0437\u0438 Bitrix \u043E\u0442\u0432\u0435\u0440\u0433\u0430\u0435\u0442 \u043A\u0430\u043A \u0446\u0438\u043A\u043B\u0438\u0447\u0435\u0441\u043A\u0443\u044E \u0437\u0430\u0432\u0438\u0441\u0438\u043C\u043E\u0441\u0442\u044C \u2014 \u0435\u0441\u043B\u0438 \u0443 dependentId \u0443\u0436\u0435 \u0431\u044B\u043B\u0438 \u0441\u0432\u044F\u0437\u0438 \u0413\u0430\u043D\u0442\u0430, \u043E\u0448\u0438\u0431\u043A\u0430 \u0441\u043A\u0430\u0436\u0435\u0442, \u0447\u0442\u043E \u044D\u0442\u0430 \u0441\u0432\u044F\u0437\u044C, \u0441\u043A\u043E\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043E, \u0443\u0436\u0435 \u0435\u0441\u0442\u044C. \u0421\u0432\u044F\u0437\u044C \u0432\u0438\u0434\u044F\u0442 \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0438; \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u044F\u0435\u0442 \u043B\u0438 Bitrix \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u043E\u0432 \u2014 \u043D\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043E. \u041E\u0442\u0432\u0435\u0442: { taskId, dependentId, linked, confirmed, note? }.",
|
|
31537
31631
|
mutating: true,
|
|
31538
31632
|
// Up to three requests in a row.
|
|
31539
31633
|
budget: "long",
|
|
31540
31634
|
input: {
|
|
31541
31635
|
taskId: idArg(),
|
|
31542
31636
|
dependentId: idArg(),
|
|
31543
|
-
remove: external_exports.boolean().optional()
|
|
31544
|
-
type: external_exports.enum(["finish_start"]).optional()
|
|
31637
|
+
remove: external_exports.boolean().optional()
|
|
31545
31638
|
},
|
|
31546
31639
|
run: async (ctx, a) => {
|
|
31547
31640
|
const invalid = (message) => new OpInputError(`invalid arguments for task_gantt_link \u2014 ${message}`);
|
|
31548
31641
|
if (a.dependentId === a.taskId) throw invalid("a task cannot depend on itself");
|
|
31549
|
-
if (a.remove && a.type !== void 0) throw invalid("type applies only when adding a link");
|
|
31550
31642
|
const link = { taskId: a.taskId, dependentId: a.dependentId };
|
|
31551
31643
|
const pair = { taskIdFrom: a.taskId, taskIdTo: a.dependentId };
|
|
31552
31644
|
const readAfter = () => reread(hasGanttLinks(ctx, a.dependentId), `bitrix_task_get_v2 \u0437\u0430\u0434\u0430\u0447\u0438 ${a.dependentId}`);
|
|
@@ -31563,7 +31655,12 @@ var RELATION_OPERATIONS = [
|
|
|
31563
31655
|
const before = await hasGanttLinks(ctx, a.dependentId).catch((e) => {
|
|
31564
31656
|
throw new Error(`\u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044C \u0441\u0432\u044F\u0437\u0438 \u0413\u0430\u043D\u0442\u0430 \u0437\u0430\u0434\u0430\u0447\u0438 ${a.dependentId}: ${errorMessage(e)}; \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0437\u0430\u043F\u0438\u0441\u0430\u043D\u043E \u2014 \u043F\u043E\u0432\u0442\u043E\u0440 \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u0435\u043D`);
|
|
31565
31657
|
});
|
|
31566
|
-
await ctx.call({ ...GANTT_ADD, params: { ...pair, linkType: FINISH_START } })
|
|
31658
|
+
await ctx.call({ ...GANTT_ADD, params: { ...pair, linkType: FINISH_START } }).catch((e) => {
|
|
31659
|
+
if (!before || !/циклическ/i.test(errorMessage(e))) throw e;
|
|
31660
|
+
throw new Error(
|
|
31661
|
+
`Bitrix \u043E\u0442\u043A\u043B\u043E\u043D\u0438\u043B \u0441\u0432\u044F\u0437\u044C \u043A\u0430\u043A \u0446\u0438\u043A\u043B\u0438\u0447\u0435\u0441\u043A\u0443\u044E \u0437\u0430\u0432\u0438\u0441\u0438\u043C\u043E\u0441\u0442\u044C (${errorMessage(e)}). \u0423 \u0437\u0430\u0434\u0430\u0447\u0438 ${a.dependentId} \u0443\u0436\u0435 \u0435\u0441\u0442\u044C \u0441\u0432\u044F\u0437\u0438 \u0413\u0430\u043D\u0442\u0430, \u0442\u0430\u043A \u0447\u0442\u043E, \u0441\u043A\u043E\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043E, \u0438\u043C\u0435\u043D\u043D\u043E \u044D\u0442\u0430 \u0441\u0432\u044F\u0437\u044C \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u2014 \u043F\u043E\u0432\u0442\u043E\u0440 Bitrix \u043E\u0442\u0432\u0435\u0440\u0433\u0430\u0435\u0442 \u0442\u0430\u043A \u0436\u0435; \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044C \u0441\u0432\u044F\u0437\u044C \u0438 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044C \u044D\u0442\u043E \u043D\u0435\u043B\u044C\u0437\u044F, \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0437\u0430\u043F\u0438\u0441\u0430\u043D\u043E`
|
|
31662
|
+
);
|
|
31663
|
+
});
|
|
31567
31664
|
if (!await readAfter()) throw new Error(`Bitrix \u043E\u0442\u0432\u0435\u0442\u0438\u043B \u0443\u0441\u043F\u0435\u0445\u043E\u043C, \u043D\u043E \u043D\u0435 \u043F\u0440\u0438\u043C\u0435\u043D\u0438\u043B \u0441\u0432\u044F\u0437\u044C: \u0443 \u0437\u0430\u0434\u0430\u0447\u0438 ${a.dependentId} \u043D\u0435\u0442 \u0441\u0432\u044F\u0437\u0435\u0439 \u0413\u0430\u043D\u0442\u0430`);
|
|
31568
31665
|
if (!before) return { ...link, linked: true, confirmed: true };
|
|
31569
31666
|
return {
|
|
@@ -31614,7 +31711,7 @@ async function runOperation(reg, name, rawArgs, ctx, policy) {
|
|
|
31614
31711
|
|
|
31615
31712
|
// src/version.ts
|
|
31616
31713
|
var DEV_VERSION = "0.0.0-dev";
|
|
31617
|
-
var PACKAGE_VERSION = true ? "1.
|
|
31714
|
+
var PACKAGE_VERSION = true ? "1.1.0" : DEV_VERSION;
|
|
31618
31715
|
var isReleaseBuild = PACKAGE_VERSION !== DEV_VERSION;
|
|
31619
31716
|
|
|
31620
31717
|
// src/bridge/daemon.ts
|
|
@@ -31656,12 +31753,12 @@ var Daemon = class {
|
|
|
31656
31753
|
}
|
|
31657
31754
|
const sockPath = this.opts.sockPath;
|
|
31658
31755
|
try {
|
|
31659
|
-
mkdirSync3(
|
|
31756
|
+
mkdirSync3(dirname3(sockPath), { recursive: true, mode: 448 });
|
|
31660
31757
|
if (existsSync3(sockPath)) unlinkSync(sockPath);
|
|
31661
31758
|
this.uds = createServer((sock) => this.onClient(sock));
|
|
31662
|
-
await new Promise((
|
|
31759
|
+
await new Promise((resolve4, reject) => {
|
|
31663
31760
|
this.uds.once("error", reject);
|
|
31664
|
-
this.uds.listen(sockPath, () =>
|
|
31761
|
+
this.uds.listen(sockPath, () => resolve4());
|
|
31665
31762
|
});
|
|
31666
31763
|
chmodSync(sockPath, 384);
|
|
31667
31764
|
} catch (e) {
|
|
@@ -31859,9 +31956,9 @@ var UdsClient = class {
|
|
|
31859
31956
|
sock.destroy();
|
|
31860
31957
|
}
|
|
31861
31958
|
tryConnect() {
|
|
31862
|
-
return new Promise((
|
|
31959
|
+
return new Promise((resolve4, reject) => {
|
|
31863
31960
|
const s = connect(this.opts.sockPath);
|
|
31864
|
-
s.once("connect", () =>
|
|
31961
|
+
s.once("connect", () => resolve4(s));
|
|
31865
31962
|
s.once("error", reject);
|
|
31866
31963
|
});
|
|
31867
31964
|
}
|
|
@@ -31889,12 +31986,12 @@ var UdsClient = class {
|
|
|
31889
31986
|
send(sock, kind, frame, overrideTimeoutMs) {
|
|
31890
31987
|
const id = String(++this.seq);
|
|
31891
31988
|
const timeoutMs = overrideTimeoutMs ?? this.opts.requestTimeoutMs ?? DEFAULT_REQUEST_TIMEOUT_MS;
|
|
31892
|
-
return new Promise((
|
|
31989
|
+
return new Promise((resolve4, reject) => {
|
|
31893
31990
|
const timer = setTimeout(() => {
|
|
31894
31991
|
this.pending.delete(id);
|
|
31895
31992
|
reject(new Error(`daemon did not respond to ${kind} in ${timeoutMs}ms`));
|
|
31896
31993
|
}, timeoutMs);
|
|
31897
|
-
this.pending.set(id, { resolve:
|
|
31994
|
+
this.pending.set(id, { resolve: resolve4, reject, timer, sock });
|
|
31898
31995
|
sock.write(encodeFrame({ id, ...frame }));
|
|
31899
31996
|
});
|
|
31900
31997
|
}
|
|
@@ -31911,7 +32008,7 @@ var UdsClient = class {
|
|
|
31911
32008
|
};
|
|
31912
32009
|
var shutdownSeq = 0;
|
|
31913
32010
|
function requestDaemonShutdown(sockPath, timeoutMs = 2e3) {
|
|
31914
|
-
return new Promise((
|
|
32011
|
+
return new Promise((resolve4) => {
|
|
31915
32012
|
const s = connect(sockPath);
|
|
31916
32013
|
const id = `shutdown-${++shutdownSeq}`;
|
|
31917
32014
|
let done = false;
|
|
@@ -31924,7 +32021,7 @@ function requestDaemonShutdown(sockPath, timeoutMs = 2e3) {
|
|
|
31924
32021
|
s.destroy();
|
|
31925
32022
|
} catch {
|
|
31926
32023
|
}
|
|
31927
|
-
|
|
32024
|
+
resolve4(v);
|
|
31928
32025
|
};
|
|
31929
32026
|
timer = setTimeout(() => finish(false), timeoutMs);
|
|
31930
32027
|
timer.unref?.();
|
|
@@ -32009,7 +32106,7 @@ import { join as join7 } from "node:path";
|
|
|
32009
32106
|
// src/tools/help.ts
|
|
32010
32107
|
import { fileURLToPath as fileURLToPath2 } from "node:url";
|
|
32011
32108
|
var API_NOTES = fileURLToPath2(new URL("../../docs/api-notes.md", import.meta.url));
|
|
32012
|
-
var HELP = '# Bitrix24 API notes (reverse-engineered)\n\n\u041A\u0430\u043A \u0430\u0433\u0435\u043D\u0442\u0443 \u0440\u0430\u0431\u043E\u0442\u0430\u0442\u044C \u0441 Bitrix24 \u0447\u0435\u0440\u0435\u0437 \u044D\u0442\u043E\u0442 \u043C\u043E\u0441\u0442: \u0444\u043E\u0440\u043C\u0430\u0442 `params`, \u0438\u043C\u0435\u043D\u0430 \u043F\u043E\u043B\u0435\u0439, \u0433\u043E\u0442\u043E\u0432\u044B\u0435 \u0446\u0435\u043F\u043E\u0447\u043A\u0438 \u0432\u044B\u0437\u043E\u0432\u043E\u0432.\n\n\u0414\u0432\u0435 \u043F\u043E\u0432\u0435\u0440\u0445\u043D\u043E\u0441\u0442\u0438 API. **\u041F\u0443\u0431\u043B\u0438\u0447\u043D\u044B\u0439 REST** (`tasks.task.*`, `im.recent.list`, `im.user.get`, `im.chat.get`,\n`socialnetwork.api.workgroup.*`) \u2014 \u0435\u0441\u0442\u044C \u043E\u0444\u0438\u0446\u0438\u0430\u043B\u044C\u043D\u044B\u0435 \u0434\u043E\u043A\u0438, \u0441\u0441\u044B\u043B\u043A\u0438 \u043D\u0430 \u043D\u0438\u0445 \u043F\u043E\u043C\u0435\u0447\u0435\u043D\u044B **\u{1F4D6}**\n([`apidocs.bitrix24.com`](https://apidocs.bitrix24.com); \u0430\u0433\u0435\u043D\u0442\u0443 \u0441 MCP context7 \u2014 \u0431\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u0430\n`/bitrix24/b24restdocs`). **\u0412\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u0438\u0435 ajax-\u043A\u043E\u043D\u0442\u0440\u043E\u043B\u043B\u0435\u0440\u044B** (`im.v2.*`, `tasks.v2.*`, `ui.entityselector.*`)\n\u043F\u0443\u0431\u043B\u0438\u0447\u043D\u044B\u0445 \u0434\u043E\u043A\u043E\u0432 \u043D\u0435 \u0438\u043C\u0435\u044E\u0442 \u2014 \u0432\u0441\u0451 \u043D\u0438\u0436\u0435 \u0434\u043E\u0431\u044B\u0442\u043E \u0436\u0438\u0432\u044B\u043C \u0440\u0435\u0432\u0435\u0440\u0441\u043E\u043C; \u043A\u043E\u043D\u0432\u0435\u0440\u0442 \u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u043F\u043E\u043B\u0435\u0439 \u0443 \u043D\u0438\u0445 \u043C\u043E\u0433\u0443\u0442\n\u043E\u0442\u043B\u0438\u0447\u0430\u0442\u044C\u0441\u044F \u043E\u0442 \u{1F4D6}-\u0430\u043D\u0430\u043B\u043E\u0433\u043E\u0432. \u0418\u043C\u0435\u043D\u0430 \u043F\u043E\u043B\u0435\u0439 \u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u044B \u0434\u043B\u044F \u043E\u0431\u043B\u0430\u0447\u043D\u043E\u0433\u043E Bitrix24; \u043D\u0430 \u0434\u0440\u0443\u0433\u043E\u043C \u043F\u043E\u0440\u0442\u0430\u043B\u0435 \u043E\u0442\u0432\u0435\u0442\n\u043C\u043E\u0436\u0435\u0442 \u043E\u0442\u043B\u0438\u0447\u0430\u0442\u044C\u0441\u044F.\n\n---\n\n## 1. \u041A\u0430\u043A \u0432\u044B\u0437\u044B\u0432\u0430\u0442\u044C\n\n- **\u041A\u0430\u0436\u0434\u044B\u0439 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442 `bitrix_*` \u2014 \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u0430\u044F \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F \u043C\u043E\u0441\u0442\u0430** \u0441 \u0442\u0438\u043F\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u043C\u0438 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u0430\u043C\u0438\n (`taskId`, `chatId`, `query`, \u2026) \u0438 \u0440\u0430\u0437\u0443\u043C\u043D\u044B\u043C\u0438 \u0434\u0435\u0444\u043E\u043B\u0442\u0430\u043C\u0438; \u043F\u043E\u043B\u043D\u044B\u0439 \u0441\u043F\u0438\u0441\u043E\u043A \u2014 \xA73 \u0438 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u044F MCP-\u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432.\n \u0412\u044B\u0437\u0432\u0430\u0442\u044C \u043F\u0440\u043E\u0438\u0437\u0432\u043E\u043B\u044C\u043D\u044B\u0439 \u043C\u0435\u0442\u043E\u0434 Bitrix \u043F\u043E \u0438\u043C\u0435\u043D\u0438 \u043D\u0435\u043B\u044C\u0437\u044F \u2014 \u0442\u043E\u043B\u044C\u043A\u043E \u044D\u0442\u0438 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438.\n- **`params`** (\u043D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0439, \u0443 \u0431\u043E\u043B\u044C\u0448\u0438\u043D\u0441\u0442\u0432\u0430 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0439 \u2014 \u043F\u043E\u043C\u0435\u0442\u043A\u0430 \xAB+ `params`\xBB \u0432 \xA73) \u2014 \u043E\u0431\u044A\u0435\u043A\u0442 \u0432\n **\u043D\u0430\u0442\u0438\u0432\u043D\u043E\u043C \u0444\u043E\u0440\u043C\u0430\u0442\u0435 Bitrix** (`select`/`filter`/`order`/\u043F\u0430\u0433\u0438\u043D\u0430\u0446\u0438\u044F, \xA74). \u041E\u043D \u043C\u0435\u0440\u0436\u0438\u0442\u0441\u044F **\u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u043C** \u0438\n \u043F\u0435\u0440\u0435\u043A\u0440\u044B\u0432\u0430\u0435\u0442 \u0434\u0435\u0444\u043E\u043B\u0442\u044B \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438. \u041A\u043B\u044E\u0447\u0438 `action`, `c`, `mode`, `sessid` \u0432 `params` \u0437\u0430\u043F\u0440\u0435\u0449\u0435\u043D\u044B \u2014 \u0438\u0445 \u0437\u0430\u0434\u0430\u0451\u0442\n \u0441\u0430\u043C\u0430 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F; \u0432\u044B\u0437\u043E\u0432 \u0441 \u043D\u0438\u043C\u0438 \u0432\u0435\u0440\u043D\u0451\u0442 \u043E\u0448\u0438\u0431\u043A\u0443 `invalid arguments\u2026`, \u0437\u0430\u043F\u0440\u043E\u0441 \u043D\u0435 \u0443\u0439\u0434\u0451\u0442.\n- **`portal`** (\u043D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0439, \u0443 \u0432\u0441\u0435\u0445) \u2014 alias \u043F\u043E\u0440\u0442\u0430\u043B\u0430; \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u2014 \u043F\u043E\u0440\u0442\u0430\u043B \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0438\u0437 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A.\n- \u0423 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0439 \u0435\u0441\u0442\u044C \u0434\u0435\u0444\u043E\u043B\u0442\u044B (\u043D\u0430\u043F\u0440. `bitrix_tasks_list` \u0441\u043E\u0440\u0442\u0438\u0440\u0443\u0435\u0442 `{"ID":"desc"}`) \u2014 \u0441\u0440\u0430\u0432\u043D\u0438\u0432\u0430\u0435\u0448\u044C \u0432\u044B\u0434\u0430\u0447\u0438\n \u0441 \u0440\u0430\u0437\u043D\u044B\u043C\u0438 `params`, \u0437\u0430\u0434\u0430\u0432\u0430\u0439 `order` \u044F\u0432\u043D\u043E.\n- **\u041C\u0443\u0442\u0438\u0440\u0443\u044E\u0449\u0438\u0435** \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 (\u26A0 \u0432 \xA73, \u043F\u043E\u043B\u043D\u044B\u0439 \u0441\u043F\u0438\u0441\u043E\u043A \u2014 \u043F\u043E\u0441\u043B\u0435 \u0442\u0430\u0431\u043B\u0438\u0446\u044B) \u043C\u0435\u043D\u044F\u044E\u0442 \u0434\u0430\u043D\u043D\u044B\u0435 \u043D\u0430 \u043F\u043E\u0440\u0442\u0430\u043B\u0435 \u043E\u0442 \u0438\u043C\u0435\u043D\u0438\n \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F, \u0441\u0440\u0430\u0437\u0443 \u0438 \u0431\u0435\u0437 \u043E\u0442\u043C\u0435\u043D\u044B. \u041F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u043E\u043D\u0438 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u044B; \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C \u043C\u043E\u0436\u0435\u0442 \u0432\u044B\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0438\u0445\n \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0430\u0442\u0435\u043B\u0435\u043C \u043C\u0443\u0442\u0430\u0446\u0438\u0439 \u2014 \u0442\u043E\u0433\u0434\u0430 \u0432\u044B\u0437\u043E\u0432 \u0432\u0435\u0440\u043D\u0451\u0442 \u043E\u0448\u0438\u0431\u043A\u0443 `operation <\u0438\u043C\u044F> changes data, but mutations are\n disabled\u2026`; \u044D\u0442\u043E \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F, \u043E\u0431\u043E\u0439\u0442\u0438 \u0435\u0451 \u043D\u0435\u043B\u044C\u0437\u044F \u2014 \u0441\u043E\u043E\u0431\u0449\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E. \u0412\u043A\u043B\u044E\u0447\u0435\u043D\u044B \u043B\u0438 \u043E\u043D\u0438 \u0441\u0435\u0439\u0447\u0430\u0441 \u2014\n \u043F\u043E\u043B\u0435 `mutations` \u0432 `bitrix_status`. \u041E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0447\u0442\u0435\u043D\u0438\u044F \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0430\u0442\u0435\u043B\u044C \u043D\u0435 \u0442\u0440\u043E\u0433\u0430\u0435\u0442.\n- \u041E\u0442\u0432\u0435\u0442 `invalid_csrf` / `invalid_authentication` = \u0441\u0435\u0441\u0441\u0438\u044F \u043F\u043E\u0440\u0442\u0430\u043B\u0430 \u043F\u0440\u043E\u0442\u0443\u0445\u043B\u0430 \u2192 \u043F\u0435\u0440\u0435\u043B\u043E\u0433\u0438\u043D\u044C\u0441\u044F \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435\n \u043D\u0430 \u0432\u043A\u043B\u0430\u0434\u043A\u0435 \u043F\u043E\u0440\u0442\u0430\u043B\u0430.\n\n---\n\n## 2. \u0424\u043E\u0440\u043C\u0430\u0442 \u043E\u0442\u0432\u0435\u0442\u0430\n\nAjax-\u043A\u043E\u043D\u0442\u0440\u043E\u043B\u043B\u0435\u0440\u044B (`/bitrix/services/main/ajax.php`) \u043E\u0442\u0432\u0435\u0447\u0430\u044E\u0442 HTTP 200 \u0441 \u043A\u043E\u043D\u0432\u0435\u0440\u0442\u043E\u043C:\n\n```jsonc\n{ "status": "success" | "error",\n "data": { ... },\n "errors": [] } // \u041F\u0423\u0421\u0422\u041E\u0419 \u043C\u0430\u0441\u0441\u0438\u0432 \u043F\u0440\u0438 \u0443\u0441\u043F\u0435\u0445\u0435! (\u0432 JS [] \u2014 truthy)\n```\n\n\u0423\u0441\u043F\u0435\u0445 = `status:"success"` \u0438/\u0438\u043B\u0438 **\u043F\u0443\u0441\u0442\u043E\u0439** `errors`. \u041D\u0435\u043F\u0443\u0441\u0442\u043E\u0439 `errors` / `status:"error"` / top-level\n`error` \u2014 \u0440\u0435\u0430\u043B\u044C\u043D\u0430\u044F \u043E\u0448\u0438\u0431\u043A\u0430 (\u043C\u043E\u0441\u0442 \u043C\u0430\u043F\u043F\u0438\u0442 \u0435\u0451 \u0432 `ok:false`). REST-\u044D\u043D\u0434\u043F\u043E\u0438\u043D\u0442\u044B (`/rest/*.json`) \u043E\u0442\u0432\u0435\u0447\u0430\u044E\u0442\n\u0438\u043D\u0430\u0447\u0435: `{ "result": \u2026, "next", "total", "time" }` \u2014 \u0431\u0435\u0437 `errors`.\n\n---\n\n## 3. \u0418\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u044B: \u0447\u0442\u043E \u0434\u0435\u043B\u0430\u0435\u0442 \u2192 \u043A\u043B\u044E\u0447\u0435\u0432\u044B\u0435 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u044B\n\n`params` \u0432 \u0442\u0430\u0431\u043B\u0438\u0446\u0435 \u043D\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u0435\u0442\u0441\u044F \u2014 \u043E\u043D \u0435\u0441\u0442\u044C \u0443 \u0432\u0441\u0435\u0445 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0439 \u0441 \u043F\u043E\u043C\u0435\u0442\u043A\u043E\u0439 \xAB+ `params`\xBB (\xA71). \u0424\u043E\u0440\u043C\u0430\n`params` \u0440\u0430\u0437\u043B\u0438\u0447\u0430\u0435\u0442\u0441\u044F \u043F\u043E \u043C\u0435\u0442\u043E\u0434\u0443: \u0433\u0434\u0435-\u0442\u043E \u043F\u043B\u043E\u0441\u043A\u043E, \u0433\u0434\u0435-\u0442\u043E \u0432\u043B\u043E\u0436\u0435\u043D\u043D\u043E, \u0433\u0434\u0435-\u0442\u043E \u043E\u0431\u0451\u0440\u043D\u0443\u0442\u043E \u0432 `params[\u2026]` \u2014 \u043A\u043E\u043B\u043E\u043D\u043A\u0430\n\xABparams / \u043F\u0430\u0433\u0438\u043D\u0430\u0446\u0438\u044F\xBB \u043F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0435\u0442 \u0442\u043E\u0447\u043D\u0443\u044E \u0444\u043E\u0440\u043C\u0443 (\u043A\u043E\u0434\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 \u0442\u0435\u043B\u0430 \u043C\u043E\u0441\u0442 \u0431\u0435\u0440\u0451\u0442 \u043D\u0430 \u0441\u0435\u0431\u044F).\n\n| \u0418\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442 | \u0427\u0442\u043E \u0434\u0435\u043B\u0430\u0435\u0442 | \u041A\u043B\u044E\u0447\u0435\u0432\u044B\u0435 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u044B | params / \u043F\u0430\u0433\u0438\u043D\u0430\u0446\u0438\u044F |\n|---|---|---|---|\n| `bitrix_help` | \u044D\u0442\u0430 \u0441\u043F\u0440\u0430\u0432\u043A\u0430 | \u2014 | \u2014 |\n| `bitrix_status` | \u043A\u0430\u043A\u0438\u0435 \u043F\u043E\u0440\u0442\u0430\u043B\u044B \u0441\u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u044B \u0438 \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u044B, \u0432\u0435\u0440\u0441\u0438\u0438 \u043C\u043E\u0441\u0442\u0430 \u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u044F | \u2014 | \u2014 |\n| *\u0417\u0430\u0434\u0430\u0447\u0438* | | | |\n| `bitrix_tasks_list` | \u0441\u043F\u0438\u0441\u043E\u043A \u0437\u0430\u0434\u0430\u0447 | + `params` | \u0432\u0435\u0440\u0445\u043D\u0438\u0439 \u0443\u0440\u043E\u0432\u0435\u043D\u044C: `filter{RESPONSIBLE_ID,REAL_STATUS,GROUP_ID,\u2026}`, `select[]`, `order{}`; **`PAGEN_1`** \u2014 \u043D\u043E\u043C\u0435\u0440 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B (1, 2, 3\u2026), \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430 = 20 \u0437\u0430\u0434\u0430\u0447; `start` **\u043D\u0435 \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442** (\u0432\u0435\u0440\u043D\u0451\u0442 \u0442\u0443 \u0436\u0435 \u043F\u0435\u0440\u0432\u0443\u044E \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443) |\n| `bitrix_task_get` | \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0437\u0430\u0434\u0430\u0447\u0438 (\u0432 \u0442.\u0447. `CHAT_ID`) | `taskId` + `params` | \u0432\u0435\u0440\u0445\u043D\u0438\u0439 \u0443\u0440\u043E\u0432\u0435\u043D\u044C: `select[]` |\n| `bitrix_task_get_v2` | \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0437\u0430\u0434\u0430\u0447\u0438 \u0447\u0435\u0440\u0435\u0437 v2-\u043F\u043E\u0434\u0441\u0438\u0441\u0442\u0435\u043C\u0443 | `taskId` + `params` | \u2014 |\n| `bitrix_task_scrum_info` | \u0441\u043F\u0440\u0438\u043D\u0442 / \u044D\u043F\u0438\u043A / story points \u0437\u0430\u0434\u0430\u0447\u0438 | `taskId` + `params` | \u2014 |\n| `bitrix_task_files` | \u0444\u0430\u0439\u043B\u044B \u0437\u0430\u0434\u0430\u0447\u0438 (\u0441\u0441\u044B\u043B\u043A\u0438 \u0434\u043B\u044F \u0441\u043A\u0430\u0447\u0438\u0432\u0430\u043D\u0438\u044F) | `ids[]` \u2014 id **\u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u0451\u043D\u043D\u044B\u0445 \u043E\u0431\u044A\u0435\u043A\u0442\u043E\u0432** (\xA74), \u043D\u0435 \u0437\u0430\u0434\u0430\u0447 + `params` | `downloadUrl` \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 \u043E\u0442\u043D\u043E\u0441\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0439 \u2014 \u0434\u043E\u043F\u0438\u0448\u0438 origin \u043F\u043E\u0440\u0442\u0430\u043B\u0430 |\n| `bitrix_task_views_count` | \u0441\u043A\u043E\u043B\u044C\u043A\u043E \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u0439 \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u043B\u0438 \u0437\u0430\u0434\u0430\u0447\u0443 | `taskId` + `params` | \u2014 |\n| `bitrix_task_subtasks` / `bitrix_task_related` | \u043F\u043E\u0434\u0437\u0430\u0434\u0430\u0447\u0438 / \u0441\u0432\u044F\u0437\u0430\u043D\u043D\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 | `taskId` + `params` | `navigation{size}` (\u0434\u0435\u0444\u043E\u043B\u0442 10) |\n| `bitrix_task_comments` | \u0441\u0442\u0430\u0440\u044B\u0435 \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 (\u0444\u043E\u0440\u0443\u043C), \xA75.6 | `taskId`, `limit?`, `maxPages?`, `beforeId?`, `output?` | `beforeId` \u2014 \u043A\u0443\u0440\u0441\u043E\u0440 |\n| `bitrix_task_description_set` \u26A0 | **\u0437\u0430\u043C\u0435\u043D\u0438\u0442\u044C** \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0446\u0435\u043B\u0438\u043A\u043E\u043C (`""` \u2014 \u043E\u0447\u0438\u0441\u0442\u0438\u0442\u044C) | `taskId`, `text` (\u2264 100 000) | \u0431\u0435\u0437 `params`; \u0440\u0430\u0437\u043C\u0435\u0442\u043A\u0430 \u2014 BBCode \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u044F (\u043D\u0438\u0436\u0435); \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442\u0441\u044F, \u043E\u0442\u0432\u0435\u0442 `{ taskId, length }` |\n| `bitrix_task_description_append` \u26A0 | **\u0434\u043E\u043F\u0438\u0441\u0430\u0442\u044C** \u0432 \u043A\u043E\u043D\u0435\u0446 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u044F \u0447\u0435\u0440\u0435\u0437 \u043F\u0443\u0441\u0442\u0443\u044E \u0441\u0442\u0440\u043E\u043A\u0443; \u0441\u0442\u0430\u0440\u043E\u0435 (\u0444\u0430\u0439\u043B\u044B `[disk file id=\u2026]`, \u0442\u0430\u0431\u043B\u0438\u0446\u044B) \u043D\u0435 \u0442\u0440\u043E\u0433\u0430\u0435\u0442 | `taskId`, `text` (\u2264 100 000) | \u0431\u0435\u0437 `params`; \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442\u0441\u044F, \u043E\u0442\u0432\u0435\u0442 `{ taskId, length }` |\n| `bitrix_task_description_replace` \u26A0 | **\u0442\u043E\u0447\u0435\u0447\u043D\u0430\u044F \u043F\u0440\u0430\u0432\u043A\u0430** \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u044F: \u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442 `find` \u2192 `replace` (`""` \u2014 \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442), \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u043E\u0435 \u043A\u0430\u043A \u0431\u044B\u043B\u043E | `taskId`, `find`, `replace`, `all?` | \u0431\u0435\u0437 `params`; `find` \u2014 \u0442\u043E\u0447\u043D\u0430\u044F \u043F\u043E\u0434\u0441\u0442\u0440\u043E\u043A\u0430 \u0441\u044B\u0440\u043E\u0433\u043E BBCode (`bitrix_task_get_v2` \u2192 `description`), \u0441 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043E\u043C \u0438 \u043F\u0435\u0440\u0435\u0432\u043E\u0434\u0430\u043C\u0438 \u0441\u0442\u0440\u043E\u043A. \u041D\u0435\u0442 \u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439 \u0438\u043B\u0438 \u0438\u0445 \u0431\u043E\u043B\u044C\u0448\u0435 \u043E\u0434\u043D\u043E\u0433\u043E \u0431\u0435\u0437 `all: true` \u2014 \u043E\u0448\u0438\u0431\u043A\u0430, \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0437\u0430\u043F\u0438\u0441\u0430\u043D\u043E. \u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442\u0441\u044F; \u043E\u0442\u0432\u0435\u0442 `{ taskId, replaced, length }` |\n| `bitrix_task_tags` \u26A0 | \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C / \u0443\u0431\u0440\u0430\u0442\u044C **\u0442\u0435\u0433\u0438** | `taskIds[]` (1\u201350), `add[]?`, `remove[]?` \u2014 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044F, \u0431\u0435\u0437 \u0443\u0447\u0451\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442 (\u043D\u0438\u0436\u0435), \u043F\u043E\u043B\u044F `tags`, `changed` |\n| `bitrix_task_checklist` | **\u0447\u0435\u043A-\u043B\u0438\u0441\u0442** \u0437\u0430\u0434\u0430\u0447\u0438 \u043F\u043B\u043E\u0441\u043A\u0438\u043C \u0441\u043F\u0438\u0441\u043A\u043E\u043C `{ taskId, items: [{ id, parentId, title, done }] }` | `taskId` | \u0431\u0435\u0437 `params`; `parentId: 0` \u2014 \u0433\u0440\u0443\u043F\u043F\u0430, \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u044B\u0435 \u2014 \u043F\u0443\u043D\u043A\u0442\u044B \u0433\u0440\u0443\u043F\u043F\u044B `parentId` |\n| `bitrix_task_checklist_edit` \u26A0 | \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0447\u0435\u043A-\u043B\u0438\u0441\u0442: \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C, \u043F\u0435\u0440\u0435\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u0442\u044C, \u043E\u0442\u043C\u0435\u0442\u0438\u0442\u044C / \u0441\u043D\u044F\u0442\u044C \u043E\u0442\u043C\u0435\u0442\u043A\u0443, \u0443\u0434\u0430\u043B\u0438\u0442\u044C | `taskId`, `add[]?` (\u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044F), `rename[{ itemId, title }]?`, `complete[]?`, `reopen[]?`, `remove[]?` | \u0431\u0435\u0437 `params`; id \u2014 \u0438\u0437 `bitrix_task_checklist`; \u2264 50 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0437\u0430 \u0432\u044B\u0437\u043E\u0432; \u043E\u0442\u0432\u0435\u0442 `{ taskId, added, items }` (\u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u043D) |\n| `bitrix_task_plan` \u26A0 | **\u043F\u043B\u0430\u043D\u0438\u0440\u0443\u0435\u043C\u044B\u0435** \u0434\u0430\u0442\u044B \u043D\u0430\u0447\u0430\u043B\u0430 / \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F | `taskId`, `start?`, `end?` \u2014 \u0434\u0430\u0442\u0430 (\u043D\u0438\u0436\u0435) \u0438\u043B\u0438 `null` (\u043E\u0447\u0438\u0441\u0442\u0438\u0442\u044C) | \u0431\u0435\u0437 `params`; \u0445\u043E\u0442\u044F \u0431\u044B \u043E\u0434\u043D\u0430; \u043D\u0435 \u043F\u0435\u0440\u0435\u0434\u0430\u043D\u043D\u0430\u044F \u043E\u0441\u0442\u0430\u0451\u0442\u0441\u044F \u043A\u0430\u043A \u0435\u0441\u0442\u044C; `start` \u043D\u0435 \u043F\u043E\u0437\u0436\u0435 `end`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, start, end }` |\n| `bitrix_task_priority` \u26A0 | **\u0432\u0430\u0436\u043D\u043E\u0441\u0442\u044C**: `high` \u2014 \xAB\u0412\u0430\u0436\u043D\u0430\u044F \u0437\u0430\u0434\u0430\u0447\u0430\xBB, `average` \u2014 \u043E\u0431\u044B\u0447\u043D\u0430\u044F | `taskIds[]` (1\u201350), `priority` | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u0435 `priority` |\n| `bitrix_task_deadline` \u26A0 | **\u043A\u0440\u0430\u0439\u043D\u0438\u0439 \u0441\u0440\u043E\u043A** | `taskIds[]` (1\u201350), `deadline` \u2014 \u0434\u0430\u0442\u0430 \u0438\u043B\u0438 `null` (\u0443\u0431\u0440\u0430\u0442\u044C), `reason?` (\u043F\u0440\u0438\u0447\u0438\u043D\u0430 \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0430, \u043F\u0440\u043E\u0441\u0442\u043E\u0439 \u0442\u0435\u043A\u0441\u0442 \u2264 1000) | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u0435 `deadline` |\n| `bitrix_task_close` \u26A0 | **\u0437\u0430\u043A\u0440\u044B\u0442\u044C** \u0437\u0430\u0434\u0430\u0447\u0443; Definition of Done \u043D\u0435 \u043E\u0431\u0445\u043E\u0434\u0438\u0442\u0441\u044F \u2014 \u0434\u0432\u0430 \u0448\u0430\u0433\u0430, \xA75.7 | `taskId`; \u0448\u0430\u0433 2 \u2014 \u043F\u043B\u044E\u0441 `typeId`, `confirmItems: true` | \u0431\u0435\u0437 `params`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, status, changed, typeId? }` \u0438\u043B\u0438 `{ taskId, needsConfirmation: true, types }` |\n| `bitrix_task_reopen` \u26A0 | **\u0432\u043E\u0437\u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C** \u0437\u0430\u0432\u0435\u0440\u0448\u0451\u043D\u043D\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 | `taskIds[]` (1\u201350) | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u044F `status`, `changed` |\n| `bitrix_task_result_add` \u26A0 | \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043E\u0434\u0438\u043D \u0438 \u0442\u043E\u0442 \u0436\u0435 **\u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442** \u0437\u0430\u0434\u0430\u0447\u0430\u043C: \u0437\u0430\u043A\u0440\u0435\u043F\u043B\u0451\u043D \u0432 \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0435, \u0430\u043D\u043E\u043D\u0441 \u0432 \u0447\u0430\u0442\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 | `taskIds[]` (1\u201350), `text` (\u2264 20 000) | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442 (\u043D\u0438\u0436\u0435), \u043F\u043E\u043B\u0435 `resultId` |\n| `bitrix_task_file_attach` \u26A0 | \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u0438\u0442\u044C **\u043B\u043E\u043A\u0430\u043B\u044C\u043D\u044B\u0439 \u0444\u0430\u0439\u043B** \u043A \u0437\u0430\u0434\u0430\u0447\u0435, \xA75.8 | `taskId`, `path` (\u0430\u0431\u0441\u043E\u043B\u044E\u0442\u043D\u044B\u0439), `name?` | \u0431\u0435\u0437 `params`; \u0444\u0430\u0439\u043B \u2264 10 \u041C\u0411 \u0443\u0445\u043E\u0434\u0438\u0442 \u043D\u0430 \u0414\u0438\u0441\u043A \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F; \u043E\u0442\u0432\u0435\u0442 `{ taskId, diskFileId, name, size, attachmentId }` |\n| `bitrix_task_mute` \u26A0 | \u0432\u044B\u043A\u043B\u044E\u0447\u0438\u0442\u044C (`true`) / \u0432\u043A\u043B\u044E\u0447\u0438\u0442\u044C (`false`) **\u0441\u0432\u043E\u0438** \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u043F\u043E \u0437\u0430\u0434\u0430\u0447\u0435 | `taskId`, `muted` | \u0431\u0435\u0437 `params`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, muted }` |\n| `bitrix_task_reminders` | \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F \u043F\u043E \u0437\u0430\u0434\u0430\u0447\u0435, \xA75.9 | `taskId` | \u0431\u0435\u0437 `params` |\n| `bitrix_task_reminder_set` \u26A0 | \u043F\u043E\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u043D\u043E\u0432\u043E\u0435 **\u0441\u0432\u043E\u0451** \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 \u0438\u043B\u0438 \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0441\u0432\u043E\u0451 (`reminderId`) | `taskId`, `at` (\u0434\u0430\u0442\u0430 \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043C), `via` (`notification` \\| `email`), `reminderId?` | \u0431\u0435\u0437 `params`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, reminder }` |\n| `bitrix_task_reminder_delete` \u26A0 | \u0443\u0434\u0430\u043B\u0438\u0442\u044C **\u0441\u0432\u043E\u0451** \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 | `taskId`, `reminderId` | \u0431\u0435\u0437 `params`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, reminderId, deleted: true }` |\n| *\u0423\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u0437\u0430\u0434\u0430\u0447* | | | |\n| `bitrix_task_delegate` \u26A0 | **\u0434\u0435\u043B\u0435\u0433\u0438\u0440\u043E\u0432\u0430\u0442\u044C**: `userId` \u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0441\u044F \u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043D\u043D\u044B\u043C | `taskIds[]` (1\u201350), `userId` | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u0435 `responsibleId` (\u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u043D) |\n| `bitrix_task_accomplices` / `bitrix_task_auditors` \u26A0 | \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C / \u0443\u0431\u0440\u0430\u0442\u044C **\u0441\u043E\u0438\u0441\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u0435\u0439** / **\u043D\u0430\u0431\u043B\u044E\u0434\u0430\u0442\u0435\u043B\u0435\u0439** | `taskIds[]` (1\u201350), `add[]?`, `remove[]?` \u2014 userId | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u044F `accomplices` / `auditors` (\u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u043D\u044B), `changed` |\n| `bitrix_user_find` | \u043D\u0430\u0439\u0442\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u0439 \u043F\u043E \u0444\u0430\u043C\u0438\u043B\u0438\u0438 `[{ id, name, lastName, active, workPosition }]` | `lastName` | \u0431\u0435\u0437 `params`; \u0432 \u0432\u044B\u0434\u0430\u0447\u0435 \u0438 **\u043D\u0435\u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0435** (\u0443\u0432\u043E\u043B\u0435\u043D\u043D\u044B\u0435, `active: false`) \u2014 \u043D\u0435 \u043D\u0430\u0437\u043D\u0430\u0447\u0430\u0439 \u0438\u0445 \u043D\u0430 \u0440\u0430\u0431\u043E\u0447\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 |\n| *\u0421\u0432\u044F\u0437\u0438 \u0437\u0430\u0434\u0430\u0447* | | | |\n| `bitrix_task_related_edit` \u26A0 | \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C / \u0443\u0431\u0440\u0430\u0442\u044C **\u0441\u0432\u044F\u0437\u0430\u043D\u043D\u044B\u0435** \u0437\u0430\u0434\u0430\u0447\u0438 (\u0431\u043B\u043E\u043A \xAB\u0421\u0432\u044F\u0437\u0430\u043D\u043D\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438\xBB) | `taskId`, `add[]?`, `remove[]?` \u2014 id \u0437\u0430\u0434\u0430\u0447 | \u0431\u0435\u0437 `params`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, related, changed }`; \u0437\u0430\u0434\u0430\u0447\u0438 \u0441\u043E 100 \u0438 \u0431\u043E\u043B\u0435\u0435 \u0441\u0432\u044F\u0437\u0430\u043D\u043D\u044B\u043C\u0438 \u043D\u0435 \u043F\u0440\u0430\u0432\u044F\u0442\u0441\u044F |\n| `bitrix_task_parent` \u26A0 | \u0441\u0434\u0435\u043B\u0430\u0442\u044C **\u043F\u043E\u0434\u0437\u0430\u0434\u0430\u0447\u0435\u0439** \u0437\u0430\u0434\u0430\u0447\u0438 `parentId`; `null` \u2014 \u043E\u0442\u0432\u044F\u0437\u0430\u0442\u044C \u043E\u0442 \u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044F | `taskId`, `parentId` | \u0431\u0435\u0437 `params`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, parentId, previousParentId, changed }` |\n| `bitrix_task_gantt_link` \u26A0 | \u0441\u0432\u044F\u0437\u044C \u0413\u0430\u043D\u0442\u0430 \xAB\u043E\u043A\u043E\u043D\u0447\u0430\u043D\u0438\u0435 \u2192 \u043D\u0430\u0447\u0430\u043B\u043E\xBB: `dependentId` \u043D\u0430\u0447\u0438\u043D\u0430\u0435\u0442\u0441\u044F \u043F\u043E\u0441\u043B\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F `taskId` | `taskId`, `dependentId`, `remove?`, `type?` (\u0442\u043E\u043B\u044C\u043A\u043E `"finish_start"`, \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u0440\u0438 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u0438) | \u0431\u0435\u0437 `params`; \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u0443\u044E \u0441\u0432\u044F\u0437\u044C \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044C \u043D\u0435\u043B\u044C\u0437\u044F \u2014 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u043F\u043E \u043F\u0440\u0438\u0437\u043D\u0430\u043A\u0443 \xAB\u0443 `dependentId` \u0435\u0441\u0442\u044C \u0441\u0432\u044F\u0437\u0438 \u0413\u0430\u043D\u0442\u0430\xBB: `confirmed: true` \u2014 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u043E, `confirmed: false` + `note` \u2014 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044C \u043D\u0435\u043B\u044C\u0437\u044F (\u0443 \u0437\u0430\u0434\u0430\u0447\u0438 \u0431\u044B\u043B\u0438 / \u043E\u0441\u0442\u0430\u043B\u0438\u0441\u044C \u0434\u0440\u0443\u0433\u0438\u0435 \u0441\u0432\u044F\u0437\u0438); \u043D\u0435\u0442 \u0441\u0432\u044F\u0437\u0435\u0439 \u043F\u043E\u0441\u043B\u0435 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u2014 \u043E\u0448\u0438\u0431\u043A\u0430; \u043E\u0442\u0432\u0435\u0442 `{ taskId, dependentId, linked, confirmed, note? }` |\n| *Scrum* | | | |\n| `bitrix_sprint_columns` | \u043A\u043E\u043B\u043E\u043D\u043A\u0438 \u0434\u043E\u0441\u043A\u0438 **\u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0433\u043E** \u0441\u043F\u0440\u0438\u043D\u0442\u0430 `[{ id, name, type }]` | `groupId` (= `GROUP_ID` \u0437\u0430\u0434\u0430\u0447\u0438) | \u0431\u0435\u0437 `params`; `type` \u2014 `NEW`/`WORK`/`FINISH`, \u0443 \u0441\u0432\u043E\u0438\u0445 \u043A\u043E\u043B\u043E\u043D\u043E\u043A \u043F\u0443\u0441\u0442\u043E\u0439; \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0443 `FINISH` \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 \u043D\u0435 \u0441\u0442\u0430\u0432\u044F\u0442 |\n| `bitrix_task_move` \u26A0 | \u043F\u0435\u0440\u0435\u043D\u0435\u0441\u0442\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u0441\u043F\u0440\u0438\u043D\u0442\u0430 | `taskIds[]` (1\u201350), `column` (id \u0438\u043B\u0438 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435, \u0431\u0435\u0437 \u0443\u0447\u0451\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430) | \u0431\u0435\u0437 `params`; \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u0442\u0438\u043F\u0430 `FINISH` \u0443\u043A\u0430\u0437\u0430\u0442\u044C \u043D\u0435\u043B\u044C\u0437\u044F \u2014 \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0439 \u0447\u0435\u0440\u0435\u0437 `bitrix_task_close`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442 (\u043D\u0438\u0436\u0435), \u043F\u043E\u043B\u044F `stageId`, `column`, `status` \u2014 \u043F\u0435\u0440\u0435\u043D\u043E\u0441 \u043C\u043E\u0436\u0435\u0442 \u043F\u0435\u0440\u0435\u043E\u0442\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u043A\u0440\u044B\u0442\u0443\u044E \u0437\u0430\u0434\u0430\u0447\u0443 |\n| `bitrix_task_to_sprint` \u26A0 | \u043F\u043E\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0438 \u043D\u0430 \u0434\u043E\u0441\u043A\u0443 **\u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0433\u043E** \u0441\u043F\u0440\u0438\u043D\u0442\u0430: \u0438\u0437 \u0431\u044D\u043A\u043B\u043E\u0433\u0430 \u2014 \u0432 \u0441\u043F\u0440\u0438\u043D\u0442 \u0438 \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0443, \u0443\u0436\u0435 \u0441\u0442\u043E\u044F\u0449\u0438\u0435 \u0432 \u043D\u0451\u043C \u2014 \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0443 | `taskIds[]` (1\u201350), `column?` (\u0431\u0435\u0437 \u043D\u0435\u0433\u043E \u2014 \u043A\u043E\u043B\u043E\u043D\u043A\u0430 \u0442\u0438\u043F\u0430 `NEW`) | \u0431\u0435\u0437 `params`; \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u0442\u0438\u043F\u0430 `FINISH` \u0443\u043A\u0430\u0437\u0430\u0442\u044C \u043D\u0435\u043B\u044C\u0437\u044F \u2014 \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0439 \u0447\u0435\u0440\u0435\u0437 `bitrix_task_close`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u044F `sprintId`, `stageId`, `column`, `status`, `fromBacklog`; \u0437\u0430\u0434\u0430\u0447\u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u043F\u0440\u0438\u043D\u0442\u043E\u0432 \u2014 \u043E\u0448\u0438\u0431\u043A\u0430 |\n| `bitrix_task_to_backlog` \u26A0 | \u0432\u0435\u0440\u043D\u0443\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 **\u0431\u044D\u043A\u043B\u043E\u0433** \u043F\u0440\u043E\u0435\u043A\u0442\u0430 | `taskIds[]` (1\u201350) | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u044F `backlogId`, `changed` |\n| `bitrix_task_create` \u26A0 | **\u0441\u043E\u0437\u0434\u0430\u0442\u044C** \u0437\u0430\u0434\u0430\u0447\u0443 \u0441\u0440\u0430\u0437\u0443 \u043D\u0430 \u0434\u043E\u0441\u043A\u0435 \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0433\u043E \u0441\u043F\u0440\u0438\u043D\u0442\u0430, \u043A\u0430\u043A \xAB+\xBB \u043D\u0430 \u0434\u043E\u0441\u043A\u0435 | `groupId`, `title` (\u2264 255, \u043F\u0440\u043E\u0441\u0442\u043E\u0439 \u0442\u0435\u043A\u0441\u0442), `column?` (\u0431\u0435\u0437 \u043D\u0435\u0433\u043E \u2014 \u043A\u043E\u043B\u043E\u043D\u043A\u0430 \u0442\u0438\u043F\u0430 `NEW`) | \u0431\u0435\u0437 `params`; \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u0442\u0438\u043F\u0430 `FINISH` \u0443\u043A\u0430\u0437\u0430\u0442\u044C \u043D\u0435\u043B\u044C\u0437\u044F; \u043E\u0442\u0432\u0435\u0442 `{ taskId, sprintId, stageId, column }`; \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u044B\u0435 \u043F\u043E\u043B\u044F \u2014 \u043F\u043E\u0442\u043E\u043C \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u044B\u043C\u0438 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F\u043C\u0438 |\n| *\u041F\u0440\u043E\u0435\u043A\u0442\u044B* | | | |\n| `bitrix_projects_list` | \u0440\u0430\u0431\u043E\u0447\u0438\u0435 \u0433\u0440\u0443\u043F\u043F\u044B / \u043F\u0440\u043E\u0435\u043A\u0442\u044B | + `params` | \u0432\u0435\u0440\u0445\u043D\u0438\u0439 \u0443\u0440\u043E\u0432\u0435\u043D\u044C: `select[]`, `order{}`, `filter{}`; `start` (\u0448\u0430\u0433 50; `start=(N-1)*50`, `-1` \u2014 \u043E\u0442\u0432\u0435\u0442 \u0431\u0435\u0437 `total`) \u{1F4D6} |\n| `bitrix_project_get` | \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0433\u0440\u0443\u043F\u043F\u044B (\u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438, `CHAT_ID`) | `groupId` + `params` | **\u043E\u0431\u0451\u0440\u043D\u0443\u0442\u043E**: `params[groupId]`, `params[select][]` |\n| *\u0427\u0430\u0442\u044B* | | | |\n| `bitrix_chats_recent` | \u043D\u0435\u0434\u0430\u0432\u043D\u0438\u0435 \u0434\u0438\u0430\u043B\u043E\u0433\u0438 (\u0431\u0435\u0437 \u0447\u0430\u0442\u043E\u0432 \u0437\u0430\u0434\u0430\u0447) | + `params` | \u043F\u043B\u043E\u0441\u043A\u043E: `LIMIT`, `SKIP_OPENLINES`, `UNREAD_ONLY` |\n| `bitrix_recent_load` | \u043D\u0435\u0434\u0430\u0432\u043D\u0438\u0435 \u043F\u043E \u0441\u0435\u043A\u0446\u0438\u0438 (`tasksTask` \u2014 \u0447\u0430\u0442\u044B \u0437\u0430\u0434\u0430\u0447) | `section?`, `limit?`, `unread?`, `parentId?` + `params` | \u0434\u0430\u043B\u044C\u0448\u0435 \u2014 `bitrix_recent_tail` |\n| `bitrix_recent_tail` | \u043B\u0438\u0441\u0442\u0430\u0442\u044C \u043D\u0435\u0434\u0430\u0432\u043D\u0438\u0435 \u0432\u0433\u043B\u0443\u0431\u044C | `lastMessageDate` (\u043A\u0443\u0440\u0441\u043E\u0440), `section?`, `limit?`, `unread?` + `params` | `lastMessageDate` |\n| `bitrix_chat_load` | \u043E\u0442\u043A\u0440\u044B\u0442\u044C \u0447\u0430\u0442, \u043F\u0435\u0440\u0432\u044B\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F, \u0447\u0438\u0441\u043B\u043E\u0432\u043E\u0439 `chatId` | `dialogId` \\| `chatId`, `messageLimit?` + `params` | \u2014 |\n| `bitrix_chat_get_dialog_id` | `externalId` \u2192 `dialogId` (\u043D\u0430\u043F\u0440. `"sg"+groupId`) | `externalId` + `params` | \u2014 |\n| `bitrix_chat_messages` | \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u0447\u0430\u0442\u0430 | `chatId`, `limit?` + `params` | \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u044F\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430 \u2014 \u043D\u0430\u0437\u0430\u0434 **\u043D\u0435 \u043B\u0438\u0441\u0442\u0430\u0435\u0442**, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439 `bitrix_chat_history` |\n| `bitrix_chat_history` | \u043B\u0438\u0441\u0442\u0430\u0442\u044C \u0438\u0441\u0442\u043E\u0440\u0438\u044E \u0447\u0430\u0442\u0430 \u0432\u0433\u043B\u0443\u0431\u044C | `chatId`, `beforeId?`, `limit?` + `params` | `beforeId` (\xA75.1) |\n| `bitrix_chat_mark_read` \u26A0 | \u043F\u043E\u043C\u0435\u0442\u0438\u0442\u044C \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u043C\u0438 | `chatId`, `ids[]`, `actionUuid?` + `params` | \u2014 |\n| `bitrix_chat_read_all` \u26A0 | \u043F\u043E\u043C\u0435\u0442\u0438\u0442\u044C **\u0432\u0441\u0435** \u0447\u0430\u0442\u044B \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u043C\u0438 | + `params` | \u2014 |\n| `bitrix_chat_send` \u26A0 | \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 (\u0432\u0438\u0434\u044F\u0442 \u0432\u0441\u0435 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u0447\u0430\u0442\u0430) | `chatId` \\| `dialogId` (\u0440\u043E\u0432\u043D\u043E \u043E\u0434\u043D\u043E), `text` (\u2264 20 000), `replyTo?` (id \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u044D\u0442\u043E\u0433\u043E \u0447\u0430\u0442\u0430 \u2014 \u043E\u0442\u0432\u0435\u0442 \u043D\u0430 \u043D\u0435\u0433\u043E) | \u0431\u0435\u0437 `params`; \u0440\u0430\u0437\u043C\u0435\u0442\u043A\u0430 \u2014 \u043F\u043E\u0434\u043C\u043D\u043E\u0436\u0435\u0441\u0442\u0432\u043E \u0447\u0430\u0442\u0430 (\u043D\u0438\u0436\u0435); \u043E\u0442\u0432\u0435\u0442 `{ chatId?, dialogId, messageId }` |\n| `bitrix_chat_message_edit` \u26A0 | \u0437\u0430\u043C\u0435\u043D\u0438\u0442\u044C \u0442\u0435\u043A\u0441\u0442 **\u0441\u0432\u043E\u0435\u0433\u043E** \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u0446\u0435\u043B\u0438\u043A\u043E\u043C | `messageId`, `text` (\u2264 20 000, \u043D\u0435 \u043F\u0443\u0441\u0442\u043E\u0439) | \u0431\u0435\u0437 `params`; \u0447\u0443\u0436\u043E\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 Bitrix \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u043D\u0435 \u0434\u0430\u0441\u0442 \u2014 \u043E\u0448\u0438\u0431\u043A\u0430 |\n| `bitrix_chat_reaction` \u26A0 | \u043F\u043E\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0440\u0435\u0430\u043A\u0446\u0438\u044E \u043D\u0430 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 | `messageId`, `reaction` (\u043B\u0430\u0442\u0438\u043D\u0438\u0446\u0430; \u043F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u044B `like` \u{1F44D}, `whiteHeavyCheckMark` \u2705) | \u0431\u0435\u0437 `params`; \u0434\u0440\u0443\u0433\u0438\u0435 \u0438\u043C\u0435\u043D\u0430 \u0443\u0445\u043E\u0434\u044F\u0442 \u043A\u0430\u043A \u0435\u0441\u0442\u044C, \u0431\u0435\u0437 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438 |\n| `bitrix_task_chat_post` \u26A0 | \u043E\u0434\u043D\u043E \u0438 \u0442\u043E \u0436\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u0432 **\u0447\u0430\u0442\u044B \u0437\u0430\u0434\u0430\u0447** (\u0447\u0430\u0442 \u043A\u0430\u0436\u0434\u043E\u0439 \u2014 \u043F\u043E \u0435\u0451 `CHAT_ID`) | `taskIds[]` (1\u201350), `text` (\u2264 20 000) | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u044F `chatId`, `messageId`; \u0437\u0430\u0434\u0430\u0447\u0430 \u0431\u0435\u0437 \u0447\u0430\u0442\u0430 \u2014 \u043E\u0448\u0438\u0431\u043A\u0430 \u044D\u0442\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 |\n| *\u041B\u044E\u0434\u0438 / \u043F\u043E\u0438\u0441\u043A* | | | |\n| `bitrix_user_get` | \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043C\u0435\u0441\u0441\u0435\u043D\u0434\u0436\u0435\u0440\u0430 | `userId` + `params` | \u2014 |\n| `bitrix_entity_search` | \u0442\u0435\u043A\u0441\u0442\u043E\u0432\u044B\u0439 \u043F\u043E\u0438\u0441\u043A \u0447\u0430\u0442\u043E\u0432 / \u043B\u044E\u0434\u0435\u0439 | `query`, `section?`, `dialog?` + `params` | \u2014 |\n| `bitrix_entity_selector` | \u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0430 entityselector \u0441\u043E \u0441\u0432\u043E\u0438\u043C `dialog` | `dialog` + `params` | `{"dialog":{entities,preselectedItems,\u2026}}` |\n| `bitrix_entity_chat` | `chatId` \u0447\u0430\u0442\u0430, \u043F\u0440\u0438\u0432\u044F\u0437\u0430\u043D\u043D\u043E\u0433\u043E \u043A \u043E\u0431\u044A\u0435\u043A\u0442\u0443 | `entityType`, `entityId` + `params` | \u2014 |\n| *\u0421\u043E\u0437\u0432\u043E\u043D\u044B \u0438 \u0444\u0430\u0439\u043B\u044B* | | | |\n| `bitrix_chat_calls` | \u0437\u0432\u043E\u043D\u043A\u0438 \u0432 \u0447\u0430\u0442\u0435 (`callId` + \u0440\u0435\u0437\u044E\u043C\u0435), \xA75.4 | `chatId`, `limit?`, `maxPages?`, `beforeId?` + `params` | `beforeId` \u2014 \u043A\u0443\u0440\u0441\u043E\u0440 |\n| `bitrix_call_detail` | \u0432\u0441\u0451 \u043F\u043E \u0437\u0432\u043E\u043D\u043A\u0443, \xA75.4 | `callId`, `transcript?` + `params` | \u2014 |\n| `bitrix_call_recording` | \u0441\u043A\u0430\u0447\u0430\u0442\u044C \u0430\u0443\u0434\u0438\u043E\u0437\u0430\u043F\u0438\u0441\u044C \u0437\u0432\u043E\u043D\u043A\u0430, \xA75.5 | `callId`, `savePath?`, `overwrite?` | \u2014 |\n| `bitrix_file_download` | \u0441\u043A\u0430\u0447\u0430\u0442\u044C \u0444\u0430\u0439\u043B \u043F\u043E\u0440\u0442\u0430\u043B\u0430 \u043D\u0430 \u0434\u0438\u0441\u043A, \xA75.5 | `url`, `savePath?`, `overwrite?` | \u2014 |\n\n**\u041C\u0443\u0442\u0438\u0440\u0443\u044E\u0449\u0438\u0435 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438** (\u26A0) \u2014 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u044B:\n\n- \u0437\u0430\u0434\u0430\u0447\u0438: `bitrix_task_description_set`, `bitrix_task_description_append`,\n `bitrix_task_description_replace`, `bitrix_task_tags`, `bitrix_task_checklist_edit`, `bitrix_task_plan`,\n `bitrix_task_priority`, `bitrix_task_deadline`, `bitrix_task_close`, `bitrix_task_reopen`,\n `bitrix_task_result_add`, `bitrix_task_file_attach`, `bitrix_task_mute`, `bitrix_task_reminder_set`,\n `bitrix_task_reminder_delete`;\n- \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438: `bitrix_task_delegate`, `bitrix_task_accomplices`, `bitrix_task_auditors`;\n- \u0441\u0432\u044F\u0437\u0438: `bitrix_task_related_edit`, `bitrix_task_parent`, `bitrix_task_gantt_link`;\n- scrum: `bitrix_task_move`, `bitrix_task_to_sprint`, `bitrix_task_to_backlog`, `bitrix_task_create`;\n- \u0447\u0430\u0442\u044B: `bitrix_chat_send`, `bitrix_chat_message_edit`, `bitrix_chat_reaction`, `bitrix_task_chat_post`,\n `bitrix_chat_mark_read`, `bitrix_chat_read_all`.\n\n\u0412\u044B\u043A\u043B\u044E\u0447\u0430\u0435\u0442 \u0438\u0445 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C (\u0430\u0433\u0435\u043D\u0442\u0443 \u044D\u0442\u043E \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u043E): `"mutations": false` \u0432 `config.json` \u043C\u043E\u0441\u0442\u0430, env\n`BITRIX_MCP_MUTATIONS=off` \u0443 \u043F\u0440\u043E\u0446\u0435\u0441\u0441\u0430 daemon (\u043F\u0435\u0440\u0435\u043A\u0440\u044B\u0432\u0430\u0435\u0442 `config.json`) \u0438\u043B\u0438 `setup` \u2192 `[m]`. \u0422\u0435\u043A\u0443\u0449\u0435\u0435\n\u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u2014 `bitrix_status` \u2192 `mutations`; \u0432\u044B\u043A\u043B\u044E\u0447\u0435\u043D\u043D\u0430\u044F \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F \u043E\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u043E\u0448\u0438\u0431\u043A\u043E\u0439 \u0438\u0437 \xA71 \u0438 \u0432 Bitrix24 \u043D\u0435\n\u0443\u0445\u043E\u0434\u0438\u0442. `bitrix_task_comments` \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u043F\u043E\u043C\u0435\u0447\u0430\u0435\u0442 \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u043C \u0438 \u043C\u0443\u0442\u0438\u0440\u0443\u044E\u0449\u0438\u043C \u043D\u0435 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044F.\n\n**\u041A\u0430\u0436\u0434\u0430\u044F \u043C\u0443\u0442\u0430\u0446\u0438\u044F \u2014 \u043E\u0442 \u0438\u043C\u0435\u043D\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F, \u0441\u0440\u0430\u0437\u0443 \u0438 \u0431\u0435\u0437 \u043E\u0442\u043C\u0435\u043D\u044B.** \u0414\u0435\u043B\u0430\u0439 \u0442\u043E\u043B\u044C\u043A\u043E \u0442\u043E, \u043E \u0447\u0451\u043C \u043E\u043D \u043F\u0440\u043E\u0441\u0438\u043B; \u0435\u0441\u043B\u0438\n\u043F\u0440\u043E\u0441\u044C\u0431\u0430 \u0448\u0438\u0440\u0435 \u0438\u043B\u0438 \u043D\u0435\u043E\u0434\u043D\u043E\u0437\u043D\u0430\u0447\u043D\u0430 (\u043A\u043E\u0433\u043E \u043D\u0430\u0437\u043D\u0430\u0447\u0438\u0442\u044C, \u043A\u0430\u043A\u0443\u044E \u0437\u0430\u0434\u0430\u0447\u0443 \u0437\u0430\u043A\u0440\u044B\u0442\u044C, \u043A\u0430\u043A\u043E\u0439 \u0444\u0430\u0439\u043B \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C) \u2014 \u0441\u043D\u0430\u0447\u0430\u043B\u0430\n\u0441\u043F\u0440\u043E\u0441\u0438. \u0423\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0435, \u0443\u0448\u0435\u0434\u0448\u0435\u0435 \u0447\u0435\u043B\u043E\u0432\u0435\u043A\u0443, \u043D\u0435 \u043E\u0442\u0437\u044B\u0432\u0430\u0435\u0442\u0441\u044F.\n\n**\u041F\u0430\u043A\u0435\u0442\u043D\u044B\u0435 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438** (`taskIds[]`, 1\u201350 id \u0431\u0435\u0437 \u043F\u043E\u0432\u0442\u043E\u0440\u043E\u0432: `bitrix_task_tags`, `bitrix_task_priority`,\n`bitrix_task_deadline`, `bitrix_task_reopen`, `bitrix_task_result_add`, `bitrix_task_delegate`,\n`bitrix_task_accomplices`, `bitrix_task_auditors`, `bitrix_task_move`, `bitrix_task_to_sprint`,\n`bitrix_task_to_backlog`, `bitrix_task_chat_post`) \u043E\u0431\u0440\u0430\u0431\u0430\u0442\u044B\u0432\u0430\u044E\u0442 \u0437\u0430\u0434\u0430\u0447\u0438 \u043F\u043E \u043E\u0447\u0435\u0440\u0435\u0434\u0438 \u0438 \u043E\u0442\u0432\u0435\u0447\u0430\u044E\u0442\n`{ results: [{ taskId, ok, error?, \u2026\u043F\u043E\u043B\u044F \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 }] }` \u0432 \u043F\u043E\u0440\u044F\u0434\u043A\u0435 `taskIds`. \u041E\u0448\u0438\u0431\u043A\u0430 \u043E\u0434\u043D\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438\n(`ok: false`, \u0442\u0435\u043A\u0441\u0442 \u0432 `error`) \u043D\u0435 \u043E\u0441\u0442\u0430\u043D\u0430\u0432\u043B\u0438\u0432\u0430\u0435\u0442 \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u044B\u0435 \u2014 \u043F\u0440\u043E\u0432\u0435\u0440\u044F\u0439 `ok` \u0443 \u043A\u0430\u0436\u0434\u043E\u0439. \u0421\u0430\u043C\u0430 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F\n\u043F\u0430\u0434\u0430\u0435\u0442 \u0446\u0435\u043B\u0438\u043A\u043E\u043C \u0442\u043E\u043B\u044C\u043A\u043E \u043D\u0430 \u043D\u0435\u0432\u0435\u0440\u043D\u044B\u0445 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u0430\u0445 (\u0438 \u043D\u0430 \u043A\u043E\u043B\u043E\u043D\u043A\u0435 \u0442\u0438\u043F\u0430 `FINISH` \u0443 `bitrix_task_move` /\n`_to_sprint` \u2014 \u0442\u043E\u0433\u0434\u0430 \u043D\u0435 \u0442\u0440\u043E\u043D\u0443\u0442\u0430 \u043D\u0438 \u043E\u0434\u043D\u0430 \u0437\u0430\u0434\u0430\u0447\u0430). \u0411\u043B\u0438\u0436\u0435 \u043A \u043A\u043E\u043D\u0446\u0443 \u043E\u0442\u0432\u0435\u0434\u0451\u043D\u043D\u043E\u0433\u043E \u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u043F\u0430\u043A\u0435\u0442 \u043F\u0435\u0440\u0435\u0441\u0442\u0430\u0451\u0442\n\u043D\u0430\u0447\u0438\u043D\u0430\u0442\u044C \u043D\u043E\u0432\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438: \u043E\u043D\u0438 \u043F\u0440\u0438\u0445\u043E\u0434\u044F\u0442 \u0441 `ok: false` \u0438 \xAB\u043D\u0435 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043E: \u0438\u0441\u0442\u0435\u043A\u043B\u043E \u0432\u0440\u0435\u043C\u044F \u043F\u0430\u043A\u0435\u0442\u0430\u2026\xBB \u2014 \u043F\u043E\u0432\u0442\u043E\u0440\u0438\n\u0442\u043E\u043B\u044C\u043A\u043E \u0438\u0445, \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0432 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435. \u0420\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u044B \u0438 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u043D\u0435\u0438\u0434\u0435\u043C\u043F\u043E\u0442\u0435\u043D\u0442\u043D\u044B: \u043F\u043E\u0432\u0442\u043E\u0440 \u0441\u043E\u0437\u0434\u0430\u0441\u0442 \u0434\u0443\u0431\u043B\u044C.\n\n**\u041E\u0448\u0438\u0431\u043A\u0430 \u043F\u043E\u0441\u043B\u0435 \u0437\u0430\u043F\u0438\u0441\u0438 \u2014 \u043D\u0435 \u043F\u043E\u0432\u043E\u0434 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u0442\u044C \u0432\u0441\u043B\u0435\u043F\u0443\u044E.** \u0411\u043E\u043B\u044C\u0448\u0438\u043D\u0441\u0442\u0432\u043E \u043C\u0443\u0442\u0430\u0446\u0438\u0439 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u044E\u0442 \u0442\u043E, \u0447\u0442\u043E\n\u0437\u0430\u043F\u0438\u0441\u0430\u043B\u0438, \u0438 \u043F\u043E \u0442\u0435\u043A\u0441\u0442\u0443 \u043E\u0448\u0438\u0431\u043A\u0438 \u0432\u0438\u0434\u043D\u043E, \u0447\u0442\u043E \u0441\u043B\u0443\u0447\u0438\u043B\u043E\u0441\u044C:\n\n- \xAB\u2026\u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043E / \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0437\u0430\u043F\u0438\u0441\u0430\u043D\u043E / \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0443\u0434\u0430\u043B\u0435\u043D\u043E\xBB, \u043E\u0448\u0438\u0431\u043A\u0438 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u043E\u0432\n (`invalid arguments\u2026`) \u2014 \u0437\u0430\u043F\u0440\u043E\u0441\u0430 \u043D\u0430 \u0437\u0430\u043F\u0438\u0441\u044C \u043D\u0435 \u0431\u044B\u043B\u043E; \u043F\u043E\u043F\u0440\u0430\u0432\u044C \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u044B \u0438 \u0432\u044B\u0437\u044B\u0432\u0430\u0439 \u0441\u043D\u043E\u0432\u0430.\n- \xAB\u0437\u0430\u043F\u0438\u0441\u044C \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0430, \u043D\u043E \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0442\u044C \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C (\u043F\u0440\u043E\u0432\u0435\u0440\u044C \u0447\u0435\u0440\u0435\u0437 \u2026)\xBB \u0438 \u0435\u0433\u043E \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u044B (\xAB\u043F\u0435\u0440\u0435\u043D\u043E\u0441 /\n \u0434\u0435\u043B\u0435\u0433\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 / \u0437\u0430\u043A\u0440\u044B\u0442\u0438\u0435 / \u0432\u043E\u0437\u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u043E, \u043D\u043E \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C\xBB) \u2014 \u0437\u0430\u043F\u0438\u0441\u044C \u0443\u0448\u043B\u0430,\n \u0430 \u0438\u0442\u043E\u0433 \u043D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043D: \u043F\u0440\u043E\u0432\u0435\u0440\u044C \u043D\u0430\u0437\u0432\u0430\u043D\u043D\u044B\u043C \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u043C, \u043D\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u0439.\n- \xAB\u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u043C\u043E\u0433\u043B\u043E \u0443\u0439\u0442\u0438\xBB, \xAB\u0437\u0430\u0434\u0430\u0447\u0430 \u043C\u043E\u0433\u043B\u0430 \u0441\u043E\u0437\u0434\u0430\u0442\u044C\u0441\u044F\xBB, \xAB\u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442 \u043C\u043E\u0433 \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C\u0441\u044F\xBB, \xAB\u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u043C\u043E\u0433\u043B\u043E\n \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C\u0441\u044F\xBB, \xAB\u0444\u0430\u0439\u043B \u043C\u043E\u0433 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C\u0441\u044F \u043D\u0430 \u0414\u0438\u0441\u043A\xBB, \xAB\u0432\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u043C\u043E\u0433\u043B\u043E \u0441\u043E\u0437\u0434\u0430\u0442\u044C\u0441\u044F\xBB, \xAB\u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 \u043C\u043E\u0433\u043B\u043E \u0441\u043E\u0437\u0434\u0430\u0442\u044C\u0441\u044F\xBB \u2014\n \u043F\u043E\u0440\u0442\u0430\u043B \u043C\u043E\u0433 \u0432\u0441\u0451 \u0441\u0434\u0435\u043B\u0430\u0442\u044C, \u043D\u043E \u043E\u0442\u0432\u0435\u0442\u0430 \u043D\u0435 \u0434\u0430\u043B (\u0442\u0430\u0439\u043C\u0430\u0443\u0442, \u043D\u0435\u043E\u0436\u0438\u0434\u0430\u043D\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442): \u0441\u043D\u0430\u0447\u0430\u043B\u0430 \u043F\u0440\u043E\u0432\u0435\u0440\u044C (\u0447\u0430\u0442, \u0434\u043E\u0441\u043A\u0430\n \u0441\u043F\u0440\u0438\u043D\u0442\u0430, \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0437\u0430\u0434\u0430\u0447\u0438, `bitrix_task_get_v2`, \u0414\u0438\u0441\u043A, \u0444\u0430\u0439\u043B\u044B \u0437\u0430\u0434\u0430\u0447\u0438, `bitrix_task_reminders`), \u043F\u043E\u0432\u0442\u043E\u0440 \u0431\u0435\u0437\n \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438 \u0441\u043E\u0437\u0434\u0430\u0441\u0442 \u0434\u0443\u0431\u043B\u044C (\u0430 `bitrix_task_description_append` \u0434\u043E\u043F\u0438\u0448\u0435\u0442 \u0442\u0435\u043A\u0441\u0442 \u0432\u0442\u043E\u0440\u043E\u0439 \u0440\u0430\u0437).\n- \xABBitrix \u043E\u0442\u0432\u0435\u0442\u0438\u043B \u0443\u0441\u043F\u0435\u0445\u043E\u043C, \u043D\u043E \u2026\xBB, \xABBitrix \u043D\u0435 \u043F\u0440\u0438\u043C\u0435\u043D\u0438\u043B: \u2026\xBB \u2014 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u043D\u043D\u043E\u0435 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u043D\u0435 \u0442\u043E, \u0447\u0442\u043E \u043F\u0440\u043E\u0441\u0438\u043B\u0438; \u0432\n \u043E\u0448\u0438\u0431\u043A\u0435 \u2014 \u043A\u0430\u043A \u0441\u0435\u0439\u0447\u0430\u0441. \u041D\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u0439 \u0442\u043E\u0442 \u0436\u0435 \u0432\u044B\u0437\u043E\u0432 \u0432\u0441\u043B\u0435\u043F\u0443\u044E \u2014 \u0441\u043A\u0430\u0436\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E.\n- \u041C\u043D\u043E\u0433\u043E\u0448\u0430\u0433\u043E\u0432\u044B\u0435 \u043F\u0440\u0430\u0432\u043A\u0438 \u043D\u0430\u0437\u044B\u0432\u0430\u044E\u0442, \u0447\u0442\u043E \u0443\u0436\u0435 \u0441\u0434\u0435\u043B\u0430\u043D\u043E: `bitrix_task_checklist_edit` \u2014 \xAB\u0434\u043E \u044D\u0442\u043E\u0433\u043E \u0441\u0434\u0435\u043B\u0430\u043D\u043E: \u2026\xBB,\n `bitrix_task_parent` \u2014 \u043F\u0440\u0435\u0436\u043D\u0435\u0433\u043E \u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044F \u0438 \u0432\u044B\u0437\u043E\u0432, \u043A\u043E\u0442\u043E\u0440\u044B\u043C \u0435\u0433\u043E \u0432\u0435\u0440\u043D\u0443\u0442\u044C, `bitrix_task_to_sprint` \u2014 \xAB\u0432\u0435\u0440\u043D\u0438\n \u0435\u0451 \u0432 \u0431\u044D\u043A\u043B\u043E\u0433 (`bitrix_task_to_backlog`) \u0438 \u043F\u043E\u0432\u0442\u043E\u0440\u0438\xBB.\n\n**\u0421\u043F\u0438\u0441\u043A\u0438 \u0446\u0435\u043B\u0438\u043A\u043E\u043C.** \u0421\u043E\u0438\u0441\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u0435\u0439, \u043D\u0430\u0431\u043B\u044E\u0434\u0430\u0442\u0435\u043B\u0435\u0439, \u0442\u0435\u0433\u0438 \u0438 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 Bitrix \u0445\u0440\u0430\u043D\u0438\u0442 \u0438 \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0438\u0441\u044B\u0432\u0430\u0435\u0442\n\u0446\u0435\u043B\u0438\u043A\u043E\u043C, \u043F\u043E\u044D\u0442\u043E\u043C\u0443 `bitrix_task_accomplices`, `bitrix_task_auditors`, `bitrix_task_tags`,\n`bitrix_task_description_append` / `_replace` \u0441\u0430\u043C\u0438 \u0447\u0438\u0442\u0430\u044E\u0442 \u0442\u0435\u043A\u0443\u0449\u0435\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 **\u043A\u0430\u0436\u0434\u043E\u0439** \u0437\u0430\u0434\u0430\u0447\u0438, \u043C\u0435\u043D\u044F\u044E\u0442 \u0432 \u043D\u0451\u043C\n\u0442\u043E\u043B\u044C\u043A\u043E \u043D\u0430\u0437\u0432\u0430\u043D\u043D\u043E\u0435 \u0438 \u0437\u0430\u043F\u0438\u0441\u044B\u0432\u0430\u044E\u0442 \u043E\u0431\u0440\u0430\u0442\u043D\u043E; \u0435\u0441\u043B\u0438 \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044C \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u2014 \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u043F\u0438\u0448\u0443\u0442. \u041F\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0439 \u0442\u043E\u043B\u044C\u043A\u043E\n`add` / `remove` (\u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442, \u0434\u043E\u043F\u0438\u0441\u043A\u0443), \u0430 \u043D\u0435 \u0432\u0435\u0441\u044C \u0441\u043F\u0438\u0441\u043E\u043A; \u0435\u0441\u043B\u0438 \u043C\u0435\u043D\u044F\u0442\u044C \u043D\u0435\u0447\u0435\u0433\u043E \u2014 `changed: false`, \u0437\u0430\u043F\u0438\u0441\u0438 \u043D\u0435\u0442.\n\u0422\u0430\u043A \u0436\u0435 `bitrix_task_related_edit` \u0434\u043E\u0431\u0430\u0432\u043B\u044F\u0435\u0442 \u0438 \u0443\u0431\u0438\u0440\u0430\u0435\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u043D\u0430\u0437\u0432\u0430\u043D\u043D\u044B\u0435 \u0441\u0432\u044F\u0437\u0438, \u0430 `bitrix_task_plan`\n\u0441\u043E\u0445\u0440\u0430\u043D\u044F\u0435\u0442 \u043D\u0435\u043F\u0435\u0440\u0435\u0434\u0430\u043D\u043D\u0443\u044E \u0434\u0430\u0442\u0443. `bitrix_task_description_set` \u2014 \u0435\u0434\u0438\u043D\u0441\u0442\u0432\u0435\u043D\u043D\u0430\u044F, \u0447\u0442\u043E \u0437\u0430\u043C\u0435\u043D\u044F\u0435\u0442 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u0446\u0435\u043B\u0438\u043A\u043E\u043C.\n\n**\u041A\u0442\u043E \u044D\u0442\u043E \u0443\u0432\u0438\u0434\u0438\u0442 \u0438 \u043A\u043E\u0433\u043E \u0443\u0432\u0435\u0434\u043E\u043C\u044F\u0442.**\n\n| \u041E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 | \u0412\u0438\u0434\u044F\u0442 | \u0423\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0435 |\n|---|---|---|\n| `bitrix_chat_send`, `bitrix_task_chat_post` | \u0432\u0441\u0435 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u0447\u0430\u0442\u0430 | \u0443\u043F\u043E\u043C\u044F\u043D\u0443\u0442\u044B\u043C `[user=ID]\u0418\u043C\u044F[/user]` |\n| `bitrix_chat_message_edit`, `bitrix_chat_reaction` | \u0432\u0441\u0435 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u0447\u0430\u0442\u0430 | \u043D\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043E (\u043D\u043E\u0432\u043E\u0435 \u0443\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 \u043F\u0440\u0438 \u043F\u0440\u0430\u0432\u043A\u0435; \u0430\u0432\u0442\u043E\u0440\u0443 \u2014 \u043E \u0440\u0435\u0430\u043A\u0446\u0438\u0438) |\n| `bitrix_task_delegate` | \u0438\u0441\u0442\u043E\u0440\u0438\u044F \u0437\u0430\u0434\u0430\u0447\u0438 | \u043D\u043E\u0432\u043E\u043C\u0443 \u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u043C\u0443 |\n| `bitrix_task_accomplices`, `bitrix_task_auditors` | \u0438\u0441\u0442\u043E\u0440\u0438\u044F \u0437\u0430\u0434\u0430\u0447\u0438 | \u043A\u0430\u0436\u0434\u043E\u043C\u0443 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u043D\u043E\u043C\u0443 |\n| `bitrix_task_close`, `bitrix_task_reopen` | \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 | \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0430\u043C \u0437\u0430\u0434\u0430\u0447\u0438 |\n| `bitrix_task_result_add` | \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0437\u0430\u0434\u0430\u0447\u0438; \u0430\u043D\u043E\u043D\u0441 \u0432 \u0435\u0451 \u0447\u0430\u0442\u0435 \u0432\u0438\u0434\u044F\u0442 \u0432\u0441\u0435 \u0435\u0433\u043E \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 | \u2014 |\n| \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435, \u0442\u0435\u0433\u0438, \u0432\u0430\u0436\u043D\u043E\u0441\u0442\u044C, \u0441\u0440\u043E\u043A, \u043F\u043B\u0430\u043D\u0438\u0440\u0443\u0435\u043C\u044B\u0435 \u0434\u0430\u0442\u044B | \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443; \u0438\u0441\u0442\u043E\u0440\u0438\u044F \u0437\u0430\u0434\u0430\u0447\u0438 | \u2014 |\n| `bitrix_task_checklist_edit`, \u0441\u0432\u044F\u0437\u0438, \u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044C, \u0441\u0432\u044F\u0437\u044C \u0413\u0430\u043D\u0442\u0430 | \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 | \u2014 |\n| `bitrix_task_file_attach` | \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 (\u0438 \u043C\u043E\u0433\u0443\u0442 \u0441\u043A\u0430\u0447\u0430\u0442\u044C) | \u2014 |\n| `bitrix_task_create`, `bitrix_task_move`, `_to_sprint`, `_to_backlog` | \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u043F\u0440\u043E\u0435\u043A\u0442\u0430 \u043D\u0430 scrum-\u0434\u043E\u0441\u043A\u0435 | \u2014 |\n| `bitrix_task_mute`, \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F | **\u0442\u043E\u043B\u044C\u043A\u043E \u0442\u044B** | \u0442\u043E\u043B\u044C\u043A\u043E \u0442\u0435\u0431\u0435 (\u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F) |\n\n\xAB\u2014\xBB \u2014 \u043D\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043E: \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F \u043E\u0431 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F\u0445 \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442, \u043D\u043E Bitrix \u043C\u043E\u0436\u0435\u0442 \u0441\u0430\u043C \u0441\u043B\u0430\u0442\u044C\n\u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0430\u043C \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u043E\u0431 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438. \u0427\u0430\u0442 \u0437\u0430\u0434\u0430\u0447\u0438 \u2014 `CHAT_ID` \u0438\u0437 `bitrix_task_get` (\u0438\u043B\u0438\n`bitrix_entity_chat { entityType:"TASKS_TASK" }`). userId \u0434\u043B\u044F \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u043E\u0432 \u2014 `bitrix_user_find` (\u043F\u043E\n\u0444\u0430\u043C\u0438\u043B\u0438\u0438) \u0438\u043B\u0438 \u043F\u043E\u043B\u044F \u0437\u0430\u0434\u0430\u0447\u0438; \u043B\u044E\u0434\u0435\u0439 \u0438\u0437 \u0432\u044B\u0434\u0430\u0447\u0438 `bitrix_user_find` \u0441 `active: false` \u043D\u0430 \u0440\u0430\u0431\u043E\u0447\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043D\u0435\n\u043D\u0430\u0437\u043D\u0430\u0447\u0430\u0439.\n\n**`bitrix_task_move`** \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u0434\u043B\u044F \u0437\u0430\u0434\u0430\u0447\u0438, \u043A\u043E\u0442\u043E\u0440\u0430\u044F \u0443\u0436\u0435 \u043D\u0430 \u0434\u043E\u0441\u043A\u0435 \u0441\u043F\u0440\u0438\u043D\u0442\u0430 (\u043D\u0435 \u0432 \u0431\u044D\u043A\u043B\u043E\u0433\u0435):\n`task.stages.movetask` \u043E\u0442\u0432\u0435\u0447\u0430\u0435\u0442 `true`, \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0441\u0434\u0435\u043B\u0430\u0432, \u2014 \u043C\u043E\u0441\u0442 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 \u0438 \u0432 \u044D\u0442\u043E\u043C \u0441\u043B\u0443\u0447\u0430\u0435\n\u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043E\u0448\u0438\u0431\u043A\u0443 \u043F\u043E \u044D\u0442\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0435. \u0417\u0430\u0434\u0430\u0447\u0443 \u0438\u0437 \u0431\u044D\u043A\u043B\u043E\u0433\u0430 \u0441\u0442\u0430\u0432\u0438\u0442 \u043D\u0430 \u0434\u043E\u0441\u043A\u0443 `bitrix_task_to_sprint` (\u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0438\u0442 \u0432\n\u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0439 \u0441\u043F\u0440\u0438\u043D\u0442, \u0441\u0442\u0430\u0432\u0438\u0442 \u043D\u0430 \u0434\u043E\u0441\u043A\u0443, \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442 \u0441\u043F\u0440\u0438\u043D\u0442 \u0438 \u043A\u043E\u043B\u043E\u043D\u043A\u0443); \u0437\u0430\u0434\u0430\u0447\u0438 \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0445 \u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0451\u043D\u043D\u044B\u0445\n\u0441\u043F\u0440\u0438\u043D\u0442\u043E\u0432 \u043E\u043D \u043D\u0435 \u0442\u0440\u043E\u0433\u0430\u0435\u0442. \u0415\u0441\u043B\u0438 \u043F\u0435\u0440\u0435\u043D\u043E\u0441 \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D, \u0430 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C, \u043E\u0448\u0438\u0431\u043A\u0430 \u0442\u0430\u043A \u0438 \u0433\u043E\u0432\u043E\u0440\u0438\u0442 \u2014\n\u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u0442\u043E\u0433\u0434\u0430 \u043F\u0440\u043E\u0432\u0435\u0440\u044C \u0447\u0435\u0440\u0435\u0437 `bitrix_task_get`. `task.stages.get` \u043E\u0442\u0434\u0430\u0451\u0442 \u0441\u0442\u0430\u0440\u044B\u0439 \u043A\u0430\u043D\u0431\u0430\u043D \u0433\u0440\u0443\u043F\u043F\u044B, \u0430 \u043D\u0435\n\u043A\u043E\u043B\u043E\u043D\u043A\u0438 \u0441\u043F\u0440\u0438\u043D\u0442\u0430. \u041F\u0435\u0440\u0435\u043D\u043E\u0441 \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u043C\u043E\u0436\u0435\u0442 \u043F\u0435\u0440\u0435\u043E\u0442\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u043A\u0440\u044B\u0442\u0443\u044E \u0437\u0430\u0434\u0430\u0447\u0443 \u2014 \u0441\u043C\u043E\u0442\u0440\u0438 `status` \u0432 \u043E\u0442\u0432\u0435\u0442\u0435.\n\n**\u041A\u043E\u043B\u043E\u043D\u043A\u0430 \u0442\u0438\u043F\u0430 `FINISH`** (\u043E\u0431\u044B\u0447\u043D\u043E \xAB\u0413\u043E\u0442\u043E\u0432\u043E\xBB, \u0441\u043C. `type` \u0432 `bitrix_sprint_columns`) \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442 \u0437\u0430\u0434\u0430\u0447\u0443,\n\u0430 Definition of Done \u0441\u043F\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u0432\u0441\u043F\u043B\u044B\u0432\u0430\u044E\u0449\u0435\u0435 \u043E\u043A\u043D\u043E \u0432\u0435\u0431-\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430. \u041F\u043E\u044D\u0442\u043E\u043C\u0443 `bitrix_task_move`,\n`bitrix_task_to_sprint` \u0438 `bitrix_task_create` \u0442\u0430\u043A\u0443\u044E \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u043D\u0435 \u043F\u0440\u0438\u043D\u0438\u043C\u0430\u044E\u0442 \u2014 \u043D\u0438 \u043F\u043E \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044E, \u043D\u0438 \u043F\u043E id:\n\xAB\u043A\u043E\u043B\u043E\u043D\u043A\u0430 \xAB\u2026\xBB \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 \u2014 \u0437\u0430\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u043C\u043E\u0436\u043D\u043E \u0442\u043E\u043B\u044C\u043A\u043E \u0447\u0435\u0440\u0435\u0437 `bitrix_task_close` \u2026; \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435\n\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043E\xBB. \u0423 \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0445 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0439 \u043E\u0442\u043A\u0430\u0437 \u2014 \u043D\u0430 \u0432\u0435\u0441\u044C \u0432\u044B\u0437\u043E\u0432: \u0441\u043D\u0430\u0447\u0430\u043B\u0430 \u0447\u0438\u0442\u0430\u044E\u0442\u0441\u044F \u0432\u0441\u0435 \u0437\u0430\u0434\u0430\u0447\u0438, \u0438 \u0435\u0441\u043B\u0438 \u043A\u043E\u043B\u043E\u043D\u043A\u0430\n\u0445\u043E\u0442\u044C \u0443 \u043E\u0434\u043D\u043E\u0439 \u0438\u0437 \u043D\u0438\u0445 (\u0432 \u0435\u0451 \u043F\u0440\u043E\u0435\u043A\u0442\u0435) \u2014 `FINISH`, \u043D\u0435 \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0438\u0442\u0441\u044F \u043D\u0438 \u043E\u0434\u043D\u0430. \u0417\u0430\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u2014\n`bitrix_task_close` (\xA75.7).\n\n**\u0414\u0430\u0442\u044B** (`bitrix_task_plan`, `bitrix_task_deadline`, `bitrix_task_reminder_set`) \u2014 ISO 8601 **\u0441\u043E\n\u0441\u043C\u0435\u0449\u0435\u043D\u0438\u0435\u043C**: `"2026-12-01T09:00:00+03:00"` \u0438\u043B\u0438 `"\u2026Z"`; \u0431\u0435\u0437 \u0441\u043C\u0435\u0449\u0435\u043D\u0438\u044F \u2014 \u043E\u0448\u0438\u0431\u043A\u0430 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u043E\u0432. \u0412 \u043E\u0442\u0432\u0435\u0442\u0435 \u0434\u0430\u0442\u044B \u0432\nUTC. Bitrix \u0445\u0440\u0430\u043D\u0438\u0442 \u0432\u0440\u0435\u043C\u044F \u0437\u0430\u0434\u0430\u0447 \u0441 \u0442\u043E\u0447\u043D\u043E\u0441\u0442\u044C\u044E \u0434\u043E \u043C\u0438\u043D\u0443\u0442\u044B: \u0441\u0435\u043A\u0443\u043D\u0434\u044B \u043D\u0435 \u0441\u0447\u0438\u0442\u0430\u044E\u0442\u0441\u044F \u0440\u0430\u0441\u0445\u043E\u0436\u0434\u0435\u043D\u0438\u0435\u043C.\n\n**\u0420\u0430\u0437\u043C\u0435\u0442\u043A\u0430 \u0442\u0435\u043A\u0441\u0442\u0430.**\n\n- **\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438** (`bitrix_task_description_*`) \u0438 **\u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442** (`bitrix_task_result_add`) \u2014 \u043F\u043E\u043B\u043D\u044B\u0439\n BBCode: `[b] [i] [u] [s]`, `[url=\u2026]\u2026[/url]`, `[user=ID]\u0418\u043C\u044F[/user]`, \u0441\u043F\u0438\u0441\u043A\u0438 `[list]` / `[list=1]` \u0441\n \u043F\u0443\u043D\u043A\u0442\u0430\u043C\u0438 `[*]`, `[quote]`, `[code]`, `[spoiler=\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A]\u2026[/spoiler]`, \u0442\u0430\u0431\u043B\u0438\u0446\u044B `[table][tr][th]/[td]`.\n \u0422\u0435\u0433\u0438 `[disk file id=\u2026]` \u2014 \u044D\u0442\u043E \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u0451\u043D\u043D\u044B\u0435 \u0444\u0430\u0439\u043B\u044B, \u0441\u043E\u0445\u0440\u0430\u043D\u044F\u0439 \u0438\u0445. \u041A\u0430\u043A BBCode \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0430 \u0432\u044B\u0433\u043B\u044F\u0434\u0438\u0442 \u0432 \u0435\u0433\u043E\n \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0435 \u0432 \u0447\u0430\u0442\u0435, \u043D\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043E.\n- **\u0421\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u0432 \u0447\u0430\u0442** (`bitrix_chat_send`, `bitrix_chat_message_edit`, `bitrix_task_chat_post`) \u2014 \u0442\u043E\u043B\u044C\u043A\u043E\n \u0442\u043E, \u0447\u0442\u043E \u0440\u0435\u043D\u0434\u0435\u0440\u044F\u0442 \u0438 \u0432\u0435\u0431, \u0438 \u043C\u043E\u0431\u0438\u043B\u044C\u043D\u043E\u0435 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435: `[b] [i] [u] [s]`, `[url=\u2026]\u2026[/url]`,\n `[user=ID]\u0418\u043C\u044F[/user]`, `[code]`, `[color=#hex]\u2026[/color]`, `[br]`. \u0426\u0438\u0442\u0430\u0442\u0430 \u2014 \u0441\u0442\u0440\u043E\u043A\u0430, \u043D\u0430\u0447\u0438\u043D\u0430\u044E\u0449\u0430\u044F\u0441\u044F \u0441 `>>`,\n \u0438\u043B\u0438 \u0431\u043B\u043E\u043A \u043C\u0435\u0436\u0434\u0443 \u0434\u0432\u0443\u043C\u044F \u0441\u0442\u0440\u043E\u043A\u0430\u043C\u0438 \u0438\u0437 \u0434\u0435\u0444\u0438\u0441\u043E\u0432; \u0441\u043F\u0438\u0441\u043E\u043A \u2014 \u0441\u0442\u0440\u043E\u043A\u0438, \u043D\u0430\u0447\u0438\u043D\u0430\u044E\u0449\u0438\u0435\u0441\u044F \u0441 `\u2022`. `[quote]`, `[list]`,\n `[spoiler]`, \u0442\u0430\u0431\u043B\u0438\u0446\u044B \u0438 Markdown \u0432 \u0447\u0430\u0442\u0435 **\u043D\u0435 \u0440\u0435\u043D\u0434\u0435\u0440\u044F\u0442\u0441\u044F**. \u0414\u043B\u0438\u043D\u043D\u0435\u0435 20 000 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 Bitrix \u043C\u043E\u043B\u0447\u0430 \u043E\u0431\u0440\u0435\u0436\u0435\u0442 \u2014\n \u043C\u043E\u0441\u0442 \u0442\u0430\u043A\u043E\u0435 \u043D\u0435 \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442.\n- **\u041F\u0440\u043E\u0441\u0442\u043E\u0439 \u0442\u0435\u043A\u0441\u0442:** \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 (`bitrix_task_create` \u2014 BBCode \u0432 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0438 \u043D\u0435 \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442), \u0442\u0435\u0433\u0438, \u043F\u0440\u0438\u0447\u0438\u043D\u0430\n \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0430 \u0441\u0440\u043E\u043A\u0430. \u041D\u0430\u0437\u0432\u0430\u043D\u0438\u044F \u043F\u0443\u043D\u043A\u0442\u043E\u0432 \u0447\u0435\u043A-\u043B\u0438\u0441\u0442\u0430 \u2014 \u0442\u043E\u0436\u0435 \u043F\u0440\u043E\u0441\u0442\u043E\u0439 \u0442\u0435\u043A\u0441\u0442 (\u043A\u0430\u043A \u0432 \u043D\u0438\u0445 \u0440\u0435\u043D\u0434\u0435\u0440\u0438\u0442\u0441\u044F BBCode, \u043D\u0435\n \u043F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043E).\n- Markdown \u043D\u0435 \u0440\u0435\u043D\u0434\u0435\u0440\u0438\u0442\u0441\u044F \u043D\u0438\u0433\u0434\u0435.\n\n---\n\n## 4. \u0421\u043F\u0440\u0430\u0432\u043E\u0447\u043D\u0438\u043A \u043F\u043E\u043B\u0435\u0439\n\n**\u0417\u0430\u0434\u0430\u0447\u0430** (`tasks.task.*`) \u2014 \u043F\u043E\u043B\u044F \u0434\u043B\u044F `select`/`filter` \u0432 UPPER_CASE: `ID`, `TITLE`, `DESCRIPTION`,\n`STATUS`, `REAL_STATUS`, `RESPONSIBLE_ID`, `CREATED_BY`, `CREATED_DATE`, `CHANGED_DATE`, `DEADLINE`,\n`CLOSED_DATE`, `PRIORITY`, `GROUP_ID`, `TAGS`, `TIME_ESTIMATE`, **`CHAT_ID`** (id \u0447\u0430\u0442\u0430-\u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u044F\n\u0437\u0430\u0434\u0430\u0447\u0438 \u2014 \u043F\u0440\u044F\u043C\u043E\u0439 \u0440\u0435\u0437\u043E\u043B\u0432\u0435\u0440 `taskId \u2192 chatId`, \xA75.2), `COMMENTS_COUNT` (\xA75.6), **`UF_TASK_WEBDAV_FILES`**\n(id **\u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u0451\u043D\u043D\u044B\u0445 \u043E\u0431\u044A\u0435\u043A\u0442\u043E\u0432** \u2014 \u0438\u043C\u0435\u043D\u043D\u043E \u0438\u0445 \u0436\u0434\u0451\u0442 `bitrix_task_files`; \u0441 id \u0437\u0430\u0434\u0430\u0447\u0438 \u043E\u043D \u0432\u0435\u0440\u043D\u0451\u0442 \u043F\u0443\u0441\u0442\u043E\u0439\n\u0441\u043F\u0438\u0441\u043E\u043A \u0431\u0435\u0437 \u043E\u0448\u0438\u0431\u043A\u0438), `UF_*`. \u041E\u0442\u0432\u0435\u0442 \u043F\u043E\u0434\u043A\u043B\u0430\u0434\u044B\u0432\u0430\u0435\u0442 \u043E\u0431\u044A\u0435\u043A\u0442\u044B `group`,\n`responsible`, `creator`, `action`.\n\u{1F4D6} (`tasks.task.get`/`list`) \u2014 \u0441\u0432\u0435\u0440\u0445 \u044D\u0442\u043E\u0433\u043E: `parentId`, `stageId`, `sprintId`, `backlogId`,\n`commentsCount`, `timeSpentInLogs`, `favorite`, `flowId`, `mark`, `accomplices[]`, `auditors[]`,\n`checklist{}`, `subStatus`; \u0432 \u043E\u0444\u0438\u0446\u0438\u0430\u043B\u044C\u043D\u043E\u043C REST-\u043E\u0442\u0432\u0435\u0442\u0435 \u043F\u043E\u043B\u044F \u043F\u0440\u0438\u0445\u043E\u0434\u044F\u0442 **camelCase**, \u0430 \u0432 `select`/`filter`\n\u043E\u043D\u0438 \u0432\u0441\u0435\u0433\u0434\u0430 **UPPER_CASE**. \u0414\u043E\u043F. \u0432\u044B\u0447\u0438\u0441\u043B\u0435\u043D\u0438\u044F \u2014 \u0444\u043B\u0430\u0433\u0430\u043C\u0438 `params{WITH_TIMER_INFO, WITH_RESULT_INFO,\nWITH_PARSED_DESCRIPTION}`.\n\n**\u0421\u0442\u0430\u0442\u0443\u0441\u044B** (`REAL_STATUS` \u2014 \xAB\u043D\u0430\u0441\u0442\u043E\u044F\u0449\u0435\u0435\xBB \u0447\u0438\u0441\u043B\u043E\u0432\u043E\u0435 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435): `1` \u041D\u043E\u0432\u0430\u044F \xB7 `2` \u0416\u0434\u0451\u0442 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \xB7\n`3` \u0412\u044B\u043F\u043E\u043B\u043D\u044F\u0435\u0442\u0441\u044F \xB7 `4` \u0416\u0434\u0451\u0442 \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u044F \xB7 `5` \u0417\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0430 \xB7 `6` \u041E\u0442\u043B\u043E\u0436\u0435\u043D\u0430 \xB7 `7` \u041E\u0442\u043A\u043B\u043E\u043D\u0435\u043D\u0430. \u041F\u043E\u043B\u0435 `STATUS`\n\u043F\u043E\u0432\u0435\u0440\u0445 \u044D\u0442\u043E\u0433\u043E \u043D\u0435\u0441\u0451\u0442 **\u043C\u0435\u0442\u0430-\u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u044F** \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F (\u043F\u043E\u0447\u0442\u0438 \u043F\u0440\u043E\u0441\u0440\u043E\u0447\u0435\u043D\u0430 / \u043D\u0435 \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u043D\u0430 / \u043F\u0440\u043E\u0441\u0440\u043E\u0447\u0435\u043D\u0430),\n\u043F\u043E\u044D\u0442\u043E\u043C\u0443 \xAB\u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442 \u043B\u0438 \u0437\u0430\u0434\u0430\u0447\u0430 \u0441\u0435\u0439\u0447\u0430\u0441\xBB \u0444\u0438\u043B\u044C\u0442\u0440\u0443\u0439 \u043F\u043E **`REAL_STATUS`** (\u043D\u0430\u043F\u0440. `{"REAL_STATUS":3}`) \u{1F4D6}.\n\u0410\u0441\u0438\u043C\u043C\u0435\u0442\u0440\u0438\u044F: \u0432 **`filter`** \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442 `REAL_STATUS`, \u0430 \u0432 **`select`** \u0435\u0433\u043E \u0443\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u0431\u0435\u0441\u043F\u043E\u043B\u0435\u0437\u043D\u043E \u2014 \u043F\u043E\u043B\u0435 \u043C\u043E\u043B\u0447\u0430\n\u043D\u0435 \u0432\u0435\u0440\u043D\u0451\u0442\u0441\u044F; \u0447\u0442\u043E\u0431\u044B \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435, \u043F\u0440\u043E\u0441\u0438 `select:["STATUS"]` \u2192 \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 \u0431\u0443\u0434\u0435\u0442 \u043A\u043B\u044E\u0447 `status` \u0441\u043E\n\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u043C \u043F\u043E \u0442\u043E\u0439 \u0436\u0435 \u0448\u043A\u0430\u043B\u0435 1..7 (\u0443 \u043E\u0431\u0451\u0440\u0442\u043A\u0438 `bitrix_tasks_list` \u043E\u043D \u0443\u0436\u0435 \u0432 \u0434\u0435\u0444\u043E\u043B\u0442\u043D\u043E\u043C `select`).\n\n**\u0424\u0438\u043B\u044C\u0442\u0440 `tasks.task.list`** \u2014 \u043E\u043F\u0435\u0440\u0430\u0442\u043E\u0440 \u0441\u0442\u0430\u0432\u0438\u0442\u0441\u044F \u043F\u0435\u0440\u0435\u0434 \u0438\u043C\u0435\u043D\u0435\u043C \u043F\u043E\u043B\u044F: `!` (\u043D\u0435 \u0440\u0430\u0432\u043D\u043E / \u0438\u0441\u043A\u043B\u044E\u0447\u0438\u0442\u044C),\n`<`, `<=`, `>`, `>=`, `%` (LIKE-\u043F\u043E\u0434\u0441\u0442\u0440\u043E\u043A\u0430). \u041D\u0430\u043F\u0440. `{"!REAL_STATUS":5}` \u2014 \u0432\u0441\u0435 **\u043D\u0435\u0437\u0430\u043A\u0440\u044B\u0442\u044B\u0435**,\n`{">=DEADLINE":"2026-07-01"}`, `{"%TITLE":"\u043A\u0430\u0440\u0442\u0430"}`. \u0424\u0438\u043B\u044C\u0442\u0440\u0443\u0435\u043C\u044B\u0435 \u043F\u043E\u043B\u044F: `ID`, `PARENT_ID`, `GROUP_ID`,\n`CREATED_BY`, `RESPONSIBLE_ID`, `ACCOMPLICE`, `AUDITOR`, `REAL_STATUS`, `STATUS`, `PRIORITY`, `TAG`,\n`STAGE_ID`, `SPRINT_ID`, `BACKLOG_ID`, `DEADLINE`, `*_DATE`, `UF_CRM_TASK`.\n\n> **\xAB\u041C\u043E\u0438 \u0437\u0430\u0434\u0430\u0447\u0438\xBB \u2260 \u0442\u043E\u043B\u044C\u043A\u043E `RESPONSIBLE_ID`.** \u0420\u043E\u043B\u0438 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0430 \u0440\u0430\u0437\u0434\u0435\u043B\u044C\u043D\u044B: \u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043D\u043D\u044B\u0439\n> (`RESPONSIBLE_ID`), \u0441\u043E\u0438\u0441\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C (`ACCOMPLICE`), \u043D\u0430\u0431\u043B\u044E\u0434\u0430\u0442\u0435\u043B\u044C (`AUDITOR`), \u043F\u043E\u0441\u0442\u0430\u043D\u043E\u0432\u0449\u0438\u043A\n> (`CREATED_BY`); \u0435\u0434\u0438\u043D\u043E\u0433\u043E \xAB\u043B\u044E\u0431\u0430\u044F \u0440\u043E\u043B\u044C\xBB \u043F\u043E\u043B\u044F \u0432 `list` \u043D\u0435\u0442 \u2014 \u0447\u0442\u043E\u0431\u044B \u0441\u043E\u0431\u0440\u0430\u0442\u044C **\u0432\u0441\u0435** \u0441\u0432\u043E\u0438 \u0437\u0430\u0434\u0430\u0447\u0438, \u043E\u0431\u044A\u0435\u0434\u0438\u043D\u0438\n> \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u044B \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u0438\u0445 \u0432\u044B\u0437\u043E\u0432\u043E\u0432 (\u043C\u0438\u043D\u0438\u043C\u0443\u043C `RESPONSIBLE_ID` + `ACCOMPLICE`) \u0438 **\u0434\u0435\u0434\u0443\u043F\u043B\u0438\u0446\u0438\u0440\u0443\u0439 \u043F\u043E `id`** \u2014\n> \u043E\u0434\u043D\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u0447\u0430\u0441\u0442\u043E \u043F\u043E\u043F\u0430\u0434\u0430\u0435\u0442 \u0441\u0440\u0430\u0437\u0443 \u0432 \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u043E \u0440\u043E\u043B\u0435\u0439. \u0412 **`filter`** \u0440\u043E\u043B\u0438 \u0432 **\u0435\u0434\u0438\u043D\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u043C** \u0447\u0438\u0441\u043B\u0435\n> (`ACCOMPLICE`/`AUDITOR`), \u0432 **`select`** \u2014 \u0432\u043E **\u043C\u043D\u043E\u0436\u0435\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u043C** (`ACCOMPLICES`/`AUDITORS`).\n\n> **Scrum-\u0437\u0430\u0434\u0430\u0447\u0438 (\u0441\u043F\u0440\u0438\u043D\u0442\u044B).** \u041F\u043E\u043B\u0435 `SPRINT_ID` \u0437\u0430\u0434\u0430\u0447\u0438 \u0438 \u0436\u0451\u0441\u0442\u043A\u0438\u0439 `filter[SPRINT_ID]` \u043C\u043E\u0433\u0443\u0442 \u0440\u0430\u0441\u0445\u043E\u0434\u0438\u0442\u044C\u0441\u044F:\n> \u0437\u0430\u0434\u0430\u0447\u0430 \u0447\u0438\u0441\u043B\u0438\u0442\u0441\u044F \u0437\u0430 \u0441\u043F\u0440\u0438\u043D\u0442\u043E\u043C \u043F\u043E \u0441\u0432\u043E\u0435\u043C\u0443 \u043F\u043E\u043B\u044E, \u043D\u043E \u043D\u0435 \u043F\u043E\u043F\u0430\u0434\u0430\u0435\u0442 \u0432 \u0432\u044B\u0431\u043E\u0440\u043A\u0443 \u043F\u043E \u0444\u0438\u043B\u044C\u0442\u0440\u0443 (\u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0435\u043D\u0430 \u0432 \u0431\u044D\u043A\u043B\u043E\u0433\n> \u0438\u043B\u0438 \u0432 \u0438\u043D\u043E\u0439 stage). \u0415\u0441\u043B\u0438 \u043F\u043E \u0444\u0438\u043B\u044C\u0442\u0440\u0443 \xAB\u043C\u0430\u043B\u043E\u0432\u0430\u0442\u043E\xBB \u2014 \u043F\u0435\u0440\u0435\u043F\u0440\u043E\u0432\u0435\u0440\u044C \u0431\u0435\u0437 \u043D\u0435\u0433\u043E \u0438 \u043E\u0442\u0444\u0438\u043B\u044C\u0442\u0440\u0443\u0439 \u043F\u043E\n> `SPRINT_ID`/`STAGE_ID` \u0443 \u0441\u0435\u0431\u044F. `STAGE_ID` \u2192 \u0438\u043C\u044F \u043A\u043E\u043B\u043E\u043D\u043A\u0438 \u2014 `bitrix_sprint_columns { groupId }` (\xA73).\n\n**\u0413\u0440\u0443\u043F\u043F\u0430/\u043F\u0440\u043E\u0435\u043A\u0442 \u2014 \u0441\u043F\u0438\u0441\u043E\u043A** (`workgroup.list`): `ID`, `NAME`, `DESCRIPTION`, `NUMBER_OF_MEMBERS`,\n`OWNER_ID`, `DATE_CREATE`, `PROJECT` (Y=\u043F\u0440\u043E\u0435\u043A\u0442/N=\u0433\u0440\u0443\u043F\u043F\u0430), `TYPE`; **\u0431\u0435\u0437 `select` \u0432\u0435\u0440\u043D\u0451\u0442\u0441\u044F \u0442\u043E\u043B\u044C\u043A\u043E `ID`**.\n\u{1F4D6} \u0444\u0438\u043B\u044C\u0442\u0440\u0443\u0435\u043C\u044B\u0435: `ID`, `NAME`, `OWNER_ID`, `ACTIVE`, `VISIBLE`, `OPENED`, `CLOSED`, `PROJECT`,\n`SUBJECT_ID`, `SITE_ID`, `DATE_CREATE`, `DATE_UPDATE`, `DATE_ACTIVITY`; \u043E\u043F\u0435\u0440\u0430\u0442\u043E\u0440\u044B \u0444\u0438\u043B\u044C\u0442\u0440\u0430\n`>= > <= < % =% %= !% != !`.\n**\u0413\u0440\u0443\u043F\u043F\u0430 \u2014 \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430** (`workgroup.get`): \u043F\u043B\u044E\u0441 `OWNER_DATA`, `SUBJECT_DATA`, `MEMBERS[]`,\n`MODERATOR_MEMBERS[]`, **`CHAT_ID`**, `DIALOG_ID`, `IMAGE_ID`, UF-\u043F\u043E\u043B\u044F.\n\n**\u041D\u0435\u0434\u0430\u0432\u043D\u0438\u0439 \u0447\u0430\u0442** (`im.recent.list`): `id` (\u044D\u0442\u043E dialogId: \u0447\u0438\u0441\u043B\u043E = \u044E\u0437\u0435\u0440, `"chat"+N` = \u0447\u0430\u0442), `chat_id`,\n`type` (`user`/`chat`), `title`, `message{id,text,file,author_id,date,status}`, `counter` (\u043D\u0435\u043F\u0440\u043E\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u0445),\n`unread`, `last_id`, `pinned`, `date_update`, `date_last_activity`, `user{\u2026}`,\n`chat{\u2026 entity_type, entity_id, owner, \u2026}`; \u0435\u0441\u0442\u044C \u043B\u0438 \u0435\u0449\u0451 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B \u2014 `hasMore`/`hasMorePages` \u{1F4D6}.\n**\u041D\u0435\u0434\u0430\u0432\u043D\u0438\u0435 \u043F\u043E \u0441\u0435\u043A\u0446\u0438\u0438** (`im.v2.Recent.load`): `filter[recentSection]` \u2014 `default` (\u043E\u0431\u044B\u0447\u043D\u044B\u0435 \u0434\u0438\u0430\u043B\u043E\u0433\u0438),\n**`tasksTask` (\u0447\u0430\u0442\u044B \u0437\u0430\u0434\u0430\u0447)**, `collab`/`collabDefault`. \u0412\u0433\u043B\u0443\u0431\u044C \u2014 `im.v2.Recent.tail` \u0441 \u043A\u0443\u0440\u0441\u043E\u0440\u043E\u043C\n`filter[lastMessageDate]` (ISO-\u0434\u0430\u0442\u0430 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0433\u043E \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B).\n\n**\u041A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u044E\u0437\u0435\u0440\u0430** (`im.user.get`): `id`, `name`, `first_name`, `last_name`, `avatar`, `work_position`,\n`gender`, `status`, `online` \u2014 \u0440\u0435\u0437\u043E\u043B\u0432 \u0430\u0432\u0442\u043E\u0440\u0430 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F (`authorId`) \u0432 \u0438\u043C\u044F.\n\n**\u0421\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435** (`im.v2.Chat.Message.*`): `id`, `chatId`, `authorId`, `date`, `text`, `params`, `viewed`;\n\u043E\u0442\u0432\u0435\u0442 \u0442\u0430\u043A\u0436\u0435 \u043D\u0435\u0441\u0451\u0442 `users[]` (\u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438), `additionalMessages[]`, `hasPrevPage`/`hasNextPage`.\n\n---\n\n## 5. \u0421\u0446\u0435\u043D\u0430\u0440\u0438\u0438\n\n```jsonc\n// \u043E\u0442\u043A\u0440\u044B\u0442\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u0433\u043E 55, \u043F\u043E \u0434\u0435\u0434\u043B\u0430\u0439\u043D\u0443, \u0432\u0442\u043E\u0440\u0430\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430\nbitrix_tasks_list { "params": { "filter": {"RESPONSIBLE_ID":55,"REAL_STATUS":2},\n "order": {"DEADLINE":"asc"}, "PAGEN_1": 2 } }\n\n// \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0437\u0430\u0434\u0430\u0447\u0438 \u0441 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u043D\u044B\u043C \u043D\u0430\u0431\u043E\u0440\u043E\u043C \u043F\u043E\u043B\u0435\u0439; v2-\u043F\u043E\u0434\u0441\u0438\u0441\u0442\u0435\u043C\u0430; \u0444\u0430\u0439\u043B\u044B, \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u044B, \u0441\u0432\u044F\u0437\u0438\nbitrix_task_get { "taskId": 4229, "params": { "select": ["ID","TITLE","DESCRIPTION","TAGS"] } }\nbitrix_task_get_v2 { "taskId": 4229 } // \u2192 { "task": { "id": 4229 } }\nbitrix_task_get { "taskId": 4229, "params": { "select": ["ID","UF_TASK_WEBDAV_FILES"] } }\nbitrix_task_files { "ids": [<id \u0438\u0437 UF_TASK_WEBDAV_FILES>] } // \u041D\u0415 id \u0437\u0430\u0434\u0430\u0447\u0438\nbitrix_task_subtasks { "taskId": 4229 }\nbitrix_task_related { "taskId": 4229 }\n\n// \u043F\u0440\u043E\u0435\u043A\u0442\u044B \u043F\u043E \u0434\u0430\u0442\u0435 \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u044F; \u043F\u043E\u043B\u043D\u0430\u044F \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0433\u0440\u0443\u043F\u043F\u044B (\u043E\u0442\u0434\u0430\u0451\u0442 CHAT_ID / DIALOG_ID)\nbitrix_projects_list { "params": { "order": {"DATE_CREATE":"desc"} } }\nbitrix_project_get { "groupId": 15 }\n```\n\n### 5.1. \u041C\u0435\u0441\u0441\u0435\u043D\u0434\u0436\u0435\u0440 (IM): \u043A\u0430\u043A \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C `chatId`\n\n\u0412\u0441\u0451 \u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u2014 **\u0447\u0430\u0442\u044B**: \u043B\u0438\u0447\u043D\u044B\u0435 1-\u043D\u0430-1, \u0433\u0440\u0443\u043F\u043F\u043E\u0432\u044B\u0435 (\u043F\u0440\u043E\u0435\u043A\u0442\u043E\u0432, \u043A\u0430\u043D\u0430\u043B\u043E\u0432) \u0438 **\u0447\u0430\u0442\u044B-\u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u044F \u0437\u0430\u0434\u0430\u0447**.\n\u0427\u0438\u0441\u043B\u043E\u0432\u043E\u0439 **`chatId`** \u2014 \u043A\u043B\u044E\u0447 \u043A\u043E \u0432\u0441\u0435\u043C \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F\u043C \u0441 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F\u043C\u0438 (`bitrix_chat_messages`,\n`bitrix_chat_history`, `bitrix_chat_mark_read`); \u043F\u043E\u0447\u0442\u0438 \u043B\u044E\u0431\u0430\u044F \u043E\u0448\u0438\u0431\u043A\u0430 \u0430\u0433\u0435\u043D\u0442\u0430 \u0437\u0434\u0435\u0441\u044C \u2014 \u043D\u0430 \u0448\u0430\u0433\u0435 \u0435\u0433\u043E \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u044F.\n\n**\u0422\u0440\u0438 \u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u0430 \u043E\u0434\u043D\u043E\u0433\u043E \u0447\u0430\u0442\u0430** (\u0433\u043E\u0434\u044F\u0442\u0441\u044F \u0434\u043B\u044F \u0440\u0430\u0437\u043D\u044B\u0445 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0439):\n\n| \u0418\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 | \u0427\u0442\u043E \u044D\u0442\u043E | \u041F\u0440\u0438\u043C\u0435\u0440 | \u041A\u0443\u0434\u0430 \u043F\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044C |\n|---|---|---|---|\n| `chatId` | \u0447\u0438\u0441\u043B\u043E\u0432\u043E\u0439 id \u0447\u0430\u0442\u0430 | `485` | \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F / \u0438\u0441\u0442\u043E\u0440\u0438\u044F / \u043E\u0442\u043C\u0435\u0442\u043A\u0430 \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u043C |\n| `dialogId` | \u0430\u0434\u0440\u0435\u0441 \u0434\u043B\u044F \u041E\u0422\u041A\u0420\u042B\u0422\u0418\u042F: `userId` (\u043B\u0438\u0447\u043D\u044B\u0439 1-\u043D\u0430-1) **\u0438\u043B\u0438** `"chat"+chatId` (\u0433\u0440\u0443\u043F\u043F\u043E\u0432\u043E\u0439) | `11`, `"chat485"` | `bitrix_chat_load` |\n| `externalId` | \u0432\u043D\u0435\u0448\u043D\u0438\u0439 \u043A\u043B\u044E\u0447 \u0441\u0443\u0449\u043D\u043E\u0441\u0442\u0438 \u2192 \u0440\u0435\u0437\u043E\u043B\u0432\u0438\u0442\u0441\u044F \u0432 `dialogId` | `"sg15"` (\u0441\u043E\u0446\u0433\u0440\u0443\u043F\u043F\u0430 15) | `bitrix_chat_get_dialog_id` |\n\n\u041A\u043B\u044E\u0447\u0435\u0432\u043E\u0435: **\u043B\u0438\u0447\u043D\u044B\u0439 \u0447\u0430\u0442 \u0441 \u0447\u0435\u043B\u043E\u0432\u0435\u043A\u043E\u043C = \u0435\u0433\u043E `userId` \u0432 \u0440\u043E\u043B\u0438 `dialogId`** (\u043E\u0442\u0434\u0435\u043B\u044C\u043D\u043E\u0433\u043E \xABid \u0447\u0430\u0442\u0430\xBB \u0443 1-\u043D\u0430-1\n\u0437\u043D\u0430\u0442\u044C \u043D\u0435 \u043D\u0443\u0436\u043D\u043E). `bitrix_chat_load` \u043F\u0440\u0438\u043D\u0438\u043C\u0430\u0435\u0442 `dialogId` **\u0438\u043B\u0438** `chatId` \u0438 \u0432\u0441\u0435\u0433\u0434\u0430 **\u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\n\u0447\u0438\u0441\u043B\u043E\u0432\u043E\u0439 `chatId`** \u2014 \u0434\u0430\u043B\u044C\u0448\u0435 \u043E\u043F\u0435\u0440\u0438\u0440\u0443\u0435\u0448\u044C \u0438\u043C.\n\n**\u041A\u0430\u043A \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C `chatId` \u2014 \u043F\u043E \u0446\u0435\u043B\u0438:**\n\n| \u0425\u043E\u0447\u0443 \u043E\u0442\u043A\u0440\u044B\u0442\u044C \u0447\u0430\u0442\u2026 | \u0428\u0430\u0433\u0438 |\n|---|---|\n| **\u0441 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u043C \u043F\u043E \u0418\u041C\u0415\u041D\u0418** | `bitrix_entity_search { query:"\u0434\u043C\u0438\u0442\u0440\u0438\u0439" }` \u2192 \u0434\u0438\u0430\u043B\u043E\u0433 \u0441 `dialogId` = \u0435\u0433\u043E userId \u2192 `bitrix_chat_load { dialogId }` |\n| **\u0441 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u043C, id \u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043D** | `bitrix_chat_load { dialogId: <userId> }` (userId \u2014 \u0438\u0437 \u0437\u0430\u0434\u0430\u0447\u0438 `RESPONSIBLE_ID`/`CREATED_BY`, \u0438\u0437 `bitrix_chats_recent`, \u0438\u0437 `bitrix_user_get`) |\n| **\u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435 \u0417\u0410\u0414\u0410\u0427\u0418** | `bitrix_task_get` \u2192 `CHAT_ID` (\xA75.2) |\n| **\u041F\u0420\u041E\u0415\u041A\u0422\u0410/\u0433\u0440\u0443\u043F\u043F\u044B** | `bitrix_task_get`\u2192`GROUP_ID`\u2192`bitrix_project_get`\u2192`CHAT_ID`; \u043B\u0438\u0431\u043E `bitrix_chat_get_dialog_id { externalId:"sg<groupId>" }` |\n| **\u043D\u0435 \u0437\u043D\u0430\u044E \u0442\u043E\u0447\u043D\u043E, \u043A\u0430\u043A\u043E\u0439** | `bitrix_chats_recent` (\u043D\u0435\u0434\u0430\u0432\u043D\u0438\u0435, \u0441\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u044C \u043F\u043E `title`/`user`) \u0438\u043B\u0438 `bitrix_entity_search { query }` |\n\n> \u041F\u043E\u0447\u0435\u043C\u0443 \u043D\u0435 \xAB\u043F\u0440\u043E\u0441\u0442\u043E \u0441\u043F\u0438\u0441\u043E\u043A \u0447\u0430\u0442\u043E\u0432\xBB: `bitrix_chats_recent` (`im.recent.list`) \u043E\u0442\u0434\u0430\u0451\u0442 \u043B\u0438\u0448\u044C \u043D\u0435\u0434\u0430\u0432\u043D\u0438\u0435 \u0438\n> **\u0431\u0435\u0437 \u0447\u0430\u0442\u043E\u0432 \u0437\u0430\u0434\u0430\u0447**. \u0414\u043B\u044F \u043F\u043E\u0438\u0441\u043A\u0430 \u043A\u043E\u043D\u043A\u0440\u0435\u0442\u043D\u043E\u0433\u043E \u0447\u0430\u0442\u0430 \u2014 `bitrix_entity_search`; \u0434\u043B\u044F \u0447\u0430\u0442\u043E\u0432 \u0437\u0430\u0434\u0430\u0447 \u2014\n> `bitrix_recent_load { section:"tasksTask" }`.\n\n**\u0427\u0438\u0442\u0430\u0442\u044C \u0438\u0441\u0442\u043E\u0440\u0438\u044E.** `bitrix_chat_messages` \u043E\u0442\u0434\u0430\u0451\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u044E\u044E \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443; \u0432\u0433\u043B\u0443\u0431\u044C \u043B\u0438\u0441\u0442\u0430\u0435\u0442\n`bitrix_chat_history` \u043F\u043E \u043A\u0443\u0440\u0441\u043E\u0440\u0443 `beforeId` = \u043C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u044B\u0439 id \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u0442\u0435\u043A\u0443\u0449\u0435\u0439 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B (\u043F\u043E\u0432\u0442\u043E\u0440\u044F\u0439,\n\u0443\u043C\u0435\u043D\u044C\u0448\u0430\u044F `beforeId`, \u0434\u043E \u043D\u0430\u0447\u0430\u043B\u0430 \u0438\u0441\u0442\u043E\u0440\u0438\u0438).\n\n```jsonc\nbitrix_chat_load { "dialogId": 11 } // \u043B\u0438\u0447\u043D\u044B\u0439 \u0447\u0430\u0442 \u044E\u0437\u0435\u0440\u0430 11 \u2192 \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 chatId\nbitrix_chat_history { "chatId": 485, "beforeId": 1861279 }\nbitrix_chat_mark_read { "chatId": 40271, "ids": [1884131] } // \u26A0 \u043C\u0443\u0442\u0438\u0440\u0443\u044E\u0449\u0438\u0439; actionUuid \u2014 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u043E\u043C\n```\n\n\u{1F4D6} \u041F\u0443\u0431\u043B\u0438\u0447\u043D\u044B\u0435 \u0430\u043D\u0430\u043B\u043E\u0433\u0438 \u0447\u0442\u0435\u043D\u0438\u044F \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0439: `im.dialog.messages.get` (\u0434\u0435\u0444\u043E\u043B\u0442 20, \u043C\u0430\u043A\u0441 50; \u043B\u0438\u0441\u0442\u0430\u043D\u0438\u0435\n`LAST_ID` \u2014 \u0441\u0442\u0430\u0440\u0435\u0435, `FIRST_ID` \u2014 \u043D\u043E\u0432\u0435\u0435); `imbot.v2 chat.getMessageContext` \u2014 \u043E\u0442\u0432\u0435\u0442 `messages[]`\n(oldest\u2192newest) + `users[]` + `hasPrevPage`/`hasNextPage`, \u043F\u043E \u0444\u043E\u0440\u043C\u0435 **\u0441\u043E\u0432\u043F\u0430\u0434\u0430\u0435\u0442** \u0441 \u0432\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u0438\u043C\u0438\n`im.v2.Chat.Message.*`.\n\n### 5.2. \u041E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435 (\u0447\u0430\u0442) \u043A\u043E\u043D\u043A\u0440\u0435\u0442\u043D\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438\n\n**\u0410. \u041F\u0440\u044F\u043C\u043E\u0439 \u0440\u0435\u0437\u043E\u043B\u0432 \u2014 \u043F\u0440\u0435\u0434\u043F\u043E\u0447\u0442\u0438\u0442\u0435\u043B\u044C\u043D\u043E.** `bitrix_task_get` \u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 `CHAT_ID` \u0447\u0430\u0442\u0430-\u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u044F (\u0432\u0445\u043E\u0434\u0438\u0442\n\u0432 \u0434\u0435\u0444\u043E\u043B\u0442\u043D\u044B\u0439 `select` \u{1F4D6}) \u2014 \u044D\u0442\u043E `taskId \u2192 chatId` \u0431\u0435\u0437 \u043F\u043E\u0438\u0441\u043A\u0430 \u043F\u043E \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044E \u0438 \u0431\u0435\u0437 \u043F\u0440\u043E\u043C\u0430\u0445\u0430 \u043F\u043E \u0442\u0451\u0437\u043A\u0430\u043C:\n\n```jsonc\nbitrix_task_get { "taskId": 28373 } // \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 CHAT_ID\nbitrix_chat_load { "chatId": <CHAT_ID> }\nbitrix_chat_history { "chatId": <CHAT_ID>, "beforeId": <\u043C\u0438\u043D id \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B> }\n```\n\n\u041E\u0431\u0449\u0430\u044F \u0430\u043B\u044C\u0442\u0435\u0440\u043D\u0430\u0442\u0438\u0432\u0430 \u2014 **`bitrix_entity_chat`** (\u043E\u0431\u0451\u0440\u0442\u043A\u0430 \u043D\u0430\u0434 `im.chat.get`): chatId \u043B\u044E\u0431\u043E\u0433\u043E \u0441\u0432\u044F\u0437\u0430\u043D\u043D\u043E\u0433\u043E\n\u043E\u0431\u044A\u0435\u043A\u0442\u0430 \u043F\u043E \u043F\u0430\u0440\u0435 `entityType`/`entityId`; \u043A\u0440\u043E\u043C\u0435 `TASKS_TASK` \u0442\u0430\u043A \u0436\u0435 \u0430\u0434\u0440\u0435\u0441\u0443\u044E\u0442\u0441\u044F `SONET_GROUP`\n(\u0433\u0440\u0443\u043F\u043F\u0430/\u043F\u0440\u043E\u0435\u043A\u0442), `CRM`, `CALENDAR`, `MAIL`, `VIDEOCONF`, `CALL`:\n\n```jsonc\nbitrix_entity_chat { "entityType": "TASKS_TASK", "entityId": 28373 } // \u2192 chatId\n```\n\n**\u0411. \u0427\u0435\u0440\u0435\u0437 \u0441\u043F\u0438\u0441\u043E\u043A \u0447\u0430\u0442\u043E\u0432 \u0437\u0430\u0434\u0430\u0447** (\u0441\u0435\u043A\u0446\u0438\u044F `tasksTask`; \u0432 `bitrix_chats_recent` \u0438\u0445 \u041D\u0415\u0422):\n\n```jsonc\nbitrix_recent_load { "section": "tasksTask" } // \u2192 \u0447\u0430\u0442\u044B \u0437\u0430\u0434\u0430\u0447 \u0441 chatId/dialogId\nbitrix_recent_tail { "section": "tasksTask", "lastMessageDate": "2026-06-29T17:25:38+03:00" }\nbitrix_chat_load { "dialogId": "chat38849" } // \u0438\u043B\u0438 { "chatId": 38849 }\n```\n\n**\u0427\u0430\u0442 \u043F\u0443\u0441\u0442, \u0430 `COMMENTS_COUNT > 0`** \u2014 \u0437\u0430\u0434\u0430\u0447\u0430 \u0441\u0442\u0430\u0440\u0448\u0435 \u0447\u0430\u0442\u043E\u0432 \u0437\u0430\u0434\u0430\u0447: \u0432 \u0447\u0430\u0442\u0435 \u0442\u043E\u043B\u044C\u043A\u043E \u0441\u0438\u0441\u0442\u0435\u043C\u043D\u043E\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435\n\xAB\u0427\u0442\u043E\u0431\u044B \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044C \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0438, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0440\u0430\u043D\u0435\u0435 \u043E\u0441\u0442\u0430\u0432\u0438\u043B\u0438 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u0437\u0430\u0434\u0430\u0447\u0438\u2026\xBB, \u0430 \u0441\u0430\u043C\u043E \u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435 \u043B\u0435\u0436\u0438\u0442 \u0432\n\u0444\u043E\u0440\u0443\u043C\u0435 \u2192 `bitrix_task_comments` (\xA75.6).\n\n**\u0412. \u041F\u043E\u0438\u0441\u043A\u043E\u043C \u043F\u043E \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044E \u0437\u0430\u0434\u0430\u0447\u0438** (\u0437\u0430\u043F\u0430\u0441\u043D\u043E\u0439, \u043C\u0430\u0442\u0447 \u043F\u043E \u0442\u0435\u043A\u0441\u0442\u0443):\n`bitrix_entity_search { "query": "\u0442\u0440\u0435\u043A\u0435\u0440", "section": "tasksTask" }`\n\n**\u0427\u0430\u0442 \u041F\u0420\u041E\u0415\u041A\u0422\u0410 \u0437\u0430\u0434\u0430\u0447\u0438** (\u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435 \u0433\u0440\u0443\u043F\u043F\u044B, \u043D\u0435 \u0441\u0430\u043C\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438) \u2014 \u0447\u0435\u0440\u0435\u0437 `GROUP_ID`:\n\n```jsonc\nbitrix_task_get { "taskId": 4229, "params": { "select": ["ID","GROUP_ID"] } }\nbitrix_project_get { "groupId": 15 } // \u043E\u0442\u0434\u0430\u0451\u0442 CHAT_ID / DIALOG_ID\nbitrix_chat_get_dialog_id { "externalId": "sg15" } // \u043B\u0438\u0431\u043E \u0440\u0435\u0437\u043E\u043B\u0432 dialogId \u0441\u043E\u0446\u0433\u0440\u0443\u043F\u043F\u044B \u043D\u0430\u043F\u0440\u044F\u043C\u0443\u044E\n```\n\n### 5.3. \u041F\u043E\u0438\u0441\u043A \u0447\u0430\u0442\u0430 / \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F\n\n`bitrix_entity_search` (\u043E\u0431\u0451\u0440\u0442\u043A\u0430 \u043D\u0430\u0434 \u0432\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u0438\u043C `ui.entityselector.doSearch`) \u0441\u0430\u043C \u0441\u043E\u0431\u0438\u0440\u0430\u0435\u0442 \u0434\u0438\u0430\u043B\u043E\u0433\n`IM_CHAT_SEARCH` \u0438 `searchQuery` \u0438\u0437 \u0441\u0442\u0440\u043E\u043A\u0438. \u041F\u0443\u0431\u043B\u0438\u0447\u043D\u044B\u0435 \u0430\u043D\u0430\u043B\u043E\u0433\u0438: \u043B\u044E\u0434\u0438 \u2014 `user.get`/`user.search`, \u0447\u0430\u0442\u044B \u2014\n`im.recent.list` + \u0444\u0438\u043B\u044C\u0442\u0440\u0430\u0446\u0438\u044F \u0443 \u0441\u0435\u0431\u044F.\n\n```jsonc\nbitrix_entity_search { "query": "\u0434\u043C\u0438\u0442\u0440\u0438\u0439" } // \u0441\u0440\u0435\u0434\u0438 \u0432\u0441\u0435\u0445 \u0447\u0430\u0442\u043E\u0432/\u0434\u0438\u0430\u043B\u043E\u0433\u043E\u0432\nbitrix_entity_search { "query": "\u0442\u0440\u0435\u043A\u0435\u0440", "section": "tasksTask" } // \u0441\u0440\u0435\u0434\u0438 \u0447\u0430\u0442\u043E\u0432 \u0437\u0430\u0434\u0430\u0447\nbitrix_user_get { "userId": 11 } // \u0440\u0435\u0437\u043E\u043B\u0432 authorId \u2192 \u0438\u043C\u044F\n```\n\n### 5.4. \u0421\u043E\u0437\u0432\u043E\u043D: \u0440\u0435\u0437\u044E\u043C\u0435, \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0430, \u0437\u0430\u043F\u0438\u0441\u044C\n\nAI-\u0430\u043D\u0430\u043B\u0438\u0437 \u0437\u0432\u043E\u043D\u043A\u0430 (BitrixGPT Follow-Up) \u0436\u0438\u0432\u0451\u0442 \u043D\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u043D\u043E \u043E\u0442\u0440\u0435\u043D\u0434\u0435\u0440\u0435\u043D\u043D\u043E\u0439 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0435 `/call/detail/<callId>`\n\u2014 JSON-\u044D\u043D\u0434\u043F\u043E\u0438\u043D\u0442\u0430 \u043F\u043E\u0434 \u043D\u0435\u0439 \u043D\u0435\u0442, \u043F\u0443\u0431\u043B\u0438\u0447\u043D\u043E\u0433\u043E REST \u0434\u043B\u044F \u0432\u0438\u0434\u0435\u043E\u0432\u0441\u0442\u0440\u0435\u0447 \u0442\u043E\u0436\u0435 (\u{1F4D6} \u0442\u043E\u043B\u044C\u043A\u043E \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0438\u044F `voximplant.*`\n\u0438 `crm.activity.call.getTranscript`). \u041C\u043E\u0441\u0442 \u0447\u0438\u0442\u0430\u0435\u0442 \u044D\u0442\u0443 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443 \u0438 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u0442 \u0435\u0451 \u0432 \u043D\u043E\u0440\u043C\u0430\u043B\u0438\u0437\u043E\u0432\u0430\u043D\u043D\u044B\u0439 JSON.\n\n**1) \u041D\u0430\u0439\u0442\u0438 \u0437\u0432\u043E\u043D\u043A\u0438.** \u0421\u0435\u0440\u0432\u0435\u0440\u043D\u043E\u0433\u043E \u043F\u043E\u0438\u0441\u043A\u0430 \u0437\u0432\u043E\u043D\u043A\u043E\u0432 \u043F\u043E \u043F\u043E\u0440\u0442\u0430\u043B\u0443 \u043D\u0435\u0442 \u2014 \u0438\u0449\u0435\u043C \u0432 \u043A\u043E\u043D\u043A\u0440\u0435\u0442\u043D\u043E\u043C \u0447\u0430\u0442\u0435: \u0437\u0432\u043E\u043D\u043E\u043A\n\u043E\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u0442 \u0441\u0438\u0441\u0442\u0435\u043C\u043D\u043E\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u0441 `params.COMPONENT_PARAMS = { messageType: "START", callId }`.\n\n```jsonc\nbitrix_chat_calls { "chatId": 9876 } // \u0447\u0430\u0442 \u043F\u0440\u043E\u0435\u043A\u0442\u0430: bitrix_project_get \u2192 CHAT_ID\nbitrix_chat_calls { "chatId": 9876, "maxPages": 10, "beforeId": 5001 } // \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C \u0432\u0433\u043B\u0443\u0431\u044C (maxPages \u2264 10)\n```\n\n\u041E\u0442\u0432\u0435\u0442: `calls[] { callId, startedAt, startedBy, startMessageId, events[], summaryMessageId }` \u043F\u043B\u044E\u0441\n`scannedPages` / `oldestScannedMessageId` / **`reachedHistoryStart`** \u2014 \u0435\u0441\u043B\u0438 \u043E\u043D `false`, \u0438\u0441\u0442\u043E\u0440\u0438\u044F\n\u0434\u043E\u0447\u0438\u0442\u0430\u043D\u0430 \u041D\u0415 \u0434\u043E \u043A\u043E\u043D\u0446\u0430, \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0430\u0439 \u0441 `beforeId: <oldestScannedMessageId>`.\n\n**2) \u0412\u0437\u044F\u0442\u044C \u0432\u0441\u0451 \u043F\u043E \u0437\u0432\u043E\u043D\u043A\u0443.**\n\n```jsonc\nbitrix_call_detail { "callId": 4242 } // \u0432\u0441\u0451; \u0434\u043B\u0438\u043D\u043D\u0430\u044F \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0430 \u0443\u0435\u0434\u0435\u0442 \u0432 \u0444\u0430\u0439\u043B\nbitrix_call_detail { "callId": 4242, "transcript": "inline" } // \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0430 \u043F\u0440\u044F\u043C\u043E \u0432 \u043E\u0442\u0432\u0435\u0442\u0435\nbitrix_call_detail { "callId": 4242, "transcript": "none" } // \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0430 \u043D\u0435 \u043D\u0443\u0436\u043D\u0430 \u0432\u043E\u0432\u0441\u0435\nbitrix_call_detail { "callId": 4242, "transcript": "file" } // \u0432\u0441\u0435\u0433\u0434\u0430 \u0432 \u0444\u0430\u0439\u043B, \u0434\u0430\u0436\u0435 \u043A\u043E\u0440\u043E\u0442\u043A\u0430\u044F\n```\n\n| \u041F\u043E\u043B\u0435 \u043E\u0442\u0432\u0435\u0442\u0430 | \u0427\u0442\u043E \u0432\u043D\u0443\u0442\u0440\u0438 |\n|---|---|\n| `title`, `agenda`, `meetingType` | \u0442\u0435\u043C\u0430, \u0432\u0441\u0442\u0443\u043F\u043B\u0435\u043D\u0438\u0435, \u0442\u0438\u043F \u0432\u0441\u0442\u0440\u0435\u0447\u0438 (\xAB\u0421\u0442\u0430\u0442\u0443\u0441-\u0432\u0441\u0442\u0440\u0435\u0447\u0430\xBB) |\n| `date`, `interval`, `duration` | \xAB23 \u0438\u044E\u043B\u044F, 15:46\xBB, \xAB15:46 - 16:51\xBB, \xAB1 \u0447 4 \u043C\u0438\u043D\xBB |\n| `efficiency`, `qualityChecklist[]` | \u043E\u0446\u0435\u043D\u043A\u0430 \u0432\u0441\u0442\u0440\u0435\u0447\u0438 \u0432 % \u0438 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 `{ ok, text }` |\n| `participants[]` | `{ id, name, talkTimePercent, talkTime, efficiency, metrics[], insight }` |\n| `overview`, `chapters[]` | \u043E\u0431\u0449\u0435\u0435 \u0440\u0435\u0437\u044E\u043C\u0435 \u0438 \u0433\u043B\u0430\u0432\u044B `{ from, to, title, text }` \u0441 \u0442\u0430\u0439\u043C\u043A\u043E\u0434\u0430\u043C\u0438 |\n| `decisions[]`, `tasks[]` | \xAB\u0447\u0442\u043E \u0440\u0435\u0448\u0438\u043B\u0438\xBB \u0438 \u0437\u0430\u0434\u0430\u0447\u0438 `{ assigneeId, assignee, text }` |\n| `transcript[]`, `transcriptCount` | \u0440\u0435\u043F\u043B\u0438\u043A\u0438 `{ from, to, speakerId, speaker, text }` |\n| `recording` | `{ path, url, trackId }` \u2014 \u0430\u0443\u0434\u0438\u043E\u0437\u0430\u043F\u0438\u0441\u044C, \u043A\u0430\u0447\u0430\u0435\u0442\u0441\u044F `bitrix_call_recording` (\xA75.5) |\n\n**\u0420\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0430 \u0434\u043B\u0438\u043D\u043D\u043E\u0433\u043E \u0437\u0432\u043E\u043D\u043A\u0430 \u043D\u0435 \u043F\u0440\u0438\u0445\u043E\u0434\u0438\u0442 \u0432 \u043E\u0442\u0432\u0435\u0442\u0435.** \u0423 \u0447\u0430\u0441\u043E\u0432\u043E\u0439 \u0432\u0441\u0442\u0440\u0435\u0447\u0438 \u043E\u043D\u0430 \u0434\u0430\u0451\u0442 ~70 \u041A\u0411 \u0438\u0437 80 \u041A\u0411, \u043F\u043E\u044D\u0442\u043E\u043C\u0443\n\u0441\u0432\u044B\u0448\u0435 ~20 \u041A\u0411 (\u0440\u0435\u0436\u0438\u043C `"auto"` = \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u0435) \u043F\u0438\u0448\u0435\u0442\u0441\u044F \u043D\u0430 \u0434\u0438\u0441\u043A, \u0430 \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 \u043E\u0441\u0442\u0430\u044E\u0442\u0441\u044F `transcript: []`,\n`transcriptCount` \u0438 **`files`**: `files.transcript` \u2014 `call-<id>-transcript.txt`, \u0433\u0434\u0435 \u0441\u0442\u0440\u043E\u043A\u0430 = \u0440\u0435\u043F\u043B\u0438\u043A\u0430\n(`[11:10\u201411:24] \u0418\u043C\u044F \u0424\u0430\u043C\u0438\u043B\u0438\u044F: \u2026`), \u0435\u0451 \u0443\u0434\u043E\u0431\u043D\u043E **\u0433\u0440\u0435\u043F\u0430\u0442\u044C** (\u043D\u0430\u0439\u0434\u0435\u043D\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430 \u0441\u0430\u043C\u0430 \u043D\u0435\u0441\u0451\u0442 \u0442\u0430\u0439\u043C\u043A\u043E\u0434 \u0438\n\u0441\u043F\u0438\u043A\u0435\u0440\u0430); `files.json` \u2014 \u043F\u043E\u043B\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442 \u0441 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u043E\u0439. \u041E\u0431\u0430 \u0444\u0430\u0439\u043B\u0430 \u2014 \u043A\u0435\u0448 \u0437\u0432\u043E\u043D\u043A\u0430, \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0438\u0441\u044B\u0432\u0430\u044E\u0442\u0441\u044F.\n\n\u0422\u043E\u043D\u043A\u043E\u0441\u0442\u0438:\n- **`speakerId`** \u0440\u0435\u0437\u043E\u043B\u0432\u0438\u0442\u0441\u044F \u043F\u043E \u0438\u043C\u0435\u043D\u0438 \u0438\u0437 \u0442\u0430\u0431\u043B\u0438\u0446\u044B \u0430\u043D\u0430\u043B\u0438\u0437\u0430; \u043A\u0442\u043E \u0433\u043E\u0432\u043E\u0440\u0438\u043B \u043C\u0430\u043B\u043E \u0438 \u0432 \u043D\u0435\u0451 \u043D\u0435 \u043F\u043E\u043F\u0430\u043B \u2014 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\n `speakerId: null`, \u043D\u043E \u043E\u0441\u0442\u0430\u043D\u0435\u0442\u0441\u044F \u0432 `participants` \u0441 `id: null`.\n- **`assigneeId` \u0437\u0430\u0434\u0430\u0447\u0438** \u2014 \u0443\u043F\u043E\u043C\u044F\u043D\u0443\u0442\u044B\u0439 \u0432 \u0442\u0435\u043A\u0441\u0442\u0435 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C, \u0430 \u041D\u0415 id \u0441\u043C\u043E\u0442\u0440\u044F\u0449\u0435\u0433\u043E.\n- \u041D\u0435\u0442 \u0434\u043E\u0441\u0442\u0443\u043F\u0430 \u043A \u0437\u0432\u043E\u043D\u043A\u0443 / \u043F\u0440\u043E\u0442\u0443\u0445\u043B\u0430 \u0441\u0435\u0441\u0441\u0438\u044F \u2192 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442 \u0432\u0435\u0440\u043D\u0451\u0442 \u0432\u043D\u044F\u0442\u043D\u0443\u044E \u043E\u0448\u0438\u0431\u043A\u0443 (\u043F\u043E\u0440\u0442\u0430\u043B \u043E\u0442\u0434\u0430\u0451\u0442 HTML \u043B\u043E\u0433\u0438\u043D\u0430).\n\n### 5.5. \u0421\u043A\u0430\u0447\u0430\u0442\u044C \u0444\u0430\u0439\u043B (\u0432\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0447\u0430\u0442\u0430, \u0444\u0430\u0439\u043B \u0437\u0430\u0434\u0430\u0447\u0438, \u0437\u0430\u043F\u0438\u0441\u044C \u0437\u0432\u043E\u043D\u043A\u0430)\n\n\u0421\u0441\u044B\u043B\u043A\u0438 \u043F\u043E\u0440\u0442\u0430\u043B \u043C\u0438\u043D\u0442\u0438\u0442 \u0438 \u043F\u043E\u0434\u043F\u0438\u0441\u044B\u0432\u0430\u0435\u0442 \u0441\u0430\u043C, \u043D\u043E \u043F\u043E\u0434\u043F\u0438\u0441\u044C \u041D\u0415 \u0437\u0430\u043C\u0435\u043D\u044F\u0435\u0442 \u0430\u0432\u0442\u043E\u0440\u0438\u0437\u0430\u0446\u0438\u044E \u2014 \u043A\u0430\u0447\u0430\u0435\u0442 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u0435 \u0432\n\u0441\u0435\u0441\u0441\u0438\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F.\n\n```jsonc\n// \u0432\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0447\u0430\u0442\u0430: \u0441\u0441\u044B\u043B\u043A\u0443 \u0431\u0435\u0440\u0451\u043C \u0438\u0437 files[].urlDownload \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 bitrix_chat_load\nbitrix_file_download { "url": "https://<\u043F\u043E\u0440\u0442\u0430\u043B>/bitrix/services/main/ajax.php?action=disk.api.file.download&\u2026" }\nbitrix_call_recording { "callId": 4242 } // \u0430\u0443\u0434\u0438\u043E\u0437\u0430\u043F\u0438\u0441\u044C \u0441\u043E\u0437\u0432\u043E\u043D\u0430 (\u0441\u0441\u044B\u043B\u043A\u0443 \u043D\u0430\u0439\u0434\u0451\u0442 \u0441\u0430\u043C)\nbitrix_file_download { "url": "\u2026", "savePath": "/tmp/photo.png", "overwrite": true }\n```\n\n\u041E\u0442\u0432\u0435\u0442 \u2014 **\u043F\u0443\u0442\u044C, \u0430 \u043D\u0435 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0435**: `{ path, bytes, contentType, fileName }` (\u0433\u0438\u0433\u0430\u0431\u0430\u0439\u0442\u044B \u043D\u0435 \u043F\u043E\u043F\u0430\u0434\u0430\u044E\u0442 \u0432\n\u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442). \u041F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0444\u0430\u0439\u043B \u043B\u043E\u0436\u0438\u0442\u0441\u044F \u0432 `~/.bitrix24-mcp-bridge/downloads/`; `savePath` \u0431\u0435\u0437 \u0432\u0435\u0434\u0443\u0449\u0435\u0433\u043E `/`\n\u0442\u0440\u0430\u043A\u0442\u0443\u0435\u0442\u0441\u044F \u043A\u0430\u043A \u0438\u043C\u044F \u0432\u043D\u0443\u0442\u0440\u0438 \u044D\u0442\u043E\u0439 \u043F\u0430\u043F\u043A\u0438. \u041F\u043E\u0442\u043E\u043B\u043E\u043A \u2014 512 \u041C\u0411.\n\n\u0422\u043E\u043D\u043A\u043E\u0441\u0442\u0438:\n- **\u0422\u043E\u043B\u044C\u043A\u043E \u0441\u0441\u044B\u043B\u043A\u0438 \u043D\u0430 \u0444\u0430\u0439\u043B\u044B** \u0441\u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0433\u043E \u043F\u043E\u0440\u0442\u0430\u043B\u0430: `/bitrix/services/main/ajax.php` \u0441 `action`\n `disk.api.file.download` / `disk.attachedObject.download` / `call.Track.download` \u0438\u043B\u0438\n `/bitrix/tools/disk/uf.php` \u0441 `action` `download` / `show` / `downloadArchiveByEntity`. \u0427\u0443\u0436\u043E\u0439 origin\n \u2192 `not a configured portal`; \u0434\u0440\u0443\u0433\u043E\u0439 \u043F\u0443\u0442\u044C, \u0434\u0440\u0443\u0433\u043E\u0439, \u043F\u043E\u0432\u0442\u043E\u0440\u0451\u043D\u043D\u044B\u0439 \u0438\u043B\u0438 `action[]` \u2192 `not a portal file\n link`. \u0411\u0435\u0440\u0438 \u0441\u0441\u044B\u043B\u043A\u0438 \u0438\u0437 \u043E\u0442\u0432\u0435\u0442\u043E\u0432 \u043C\u043E\u0441\u0442\u0430, \u043D\u0435 \u0441\u043E\u0431\u0438\u0440\u0430\u0439 \u0438\u0445 \u0441\u0430\u043C.\n- **\u0418\u043C\u044F \u0434\u0430\u0451\u0442 \u043F\u043E\u0440\u0442\u0430\u043B** (`Content-Disposition`), \u043F\u043E\u044D\u0442\u043E\u043C\u0443 \u0431\u0435\u0437 `savePath` \u0443\u0433\u0430\u0434\u044B\u0432\u0430\u0442\u044C \u0435\u0433\u043E \u043D\u0435 \u043D\u0443\u0436\u043D\u043E.\n- **\u041F\u043E\u0432\u0442\u043E\u0440\u043D\u043E\u0435 \u0441\u043A\u0430\u0447\u0438\u0432\u0430\u043D\u0438\u0435** \u0442\u043E\u0433\u043E \u0436\u0435 \u0444\u0430\u0439\u043B\u0430 \u043F\u0430\u0434\u0430\u0435\u0442 \u0441 `already exists` \u2014 \u043F\u0435\u0440\u0435\u0434\u0430\u0439 `overwrite: true`.\n\n### 5.6. \u0421\u0442\u0430\u0440\u044B\u0435 \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 (\u0444\u043E\u0440\u0443\u043C)\n\n\u0414\u043E \u043F\u0435\u0440\u0435\u0445\u043E\u0434\u0430 \u043D\u0430 \u0447\u0430\u0442\u044B \u0437\u0430\u0434\u0430\u0447 \u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435 \u0436\u0438\u043B\u043E \u0432 \u0444\u043E\u0440\u0443\u043C\u0435 \u0437\u0430\u0434\u0430\u0447\u0438, \u0438 \u0443 \u0441\u0442\u0430\u0440\u044B\u0445 \u0437\u0430\u0434\u0430\u0447 \u043E\u043D\u043E \u0442\u0430\u043C \u0438 \u043E\u0441\u0442\u0430\u043B\u043E\u0441\u044C: \u0432\n\u0447\u0430\u0442\u0435 (`CHAT_ID`) \u0442\u043E\u043B\u044C\u043A\u043E \u0441\u0438\u0441\u0442\u0435\u043C\u043D\u0430\u044F \u0437\u0430\u0433\u043B\u0443\u0448\u043A\u0430 \u0441\u043E \u0441\u0441\u044B\u043B\u043A\u043E\u0439 `/task/comments/<id>/`. \u041F\u0440\u0438\u0437\u043D\u0430\u043A \u2014 \u0432\n`bitrix_task_get` \u043F\u043E\u043B\u0435 `COMMENTS_COUNT > 0` (\u0447\u0435\u0440\u0435\u0437 `params.select`; `FORUM_TOPIC_ID` \u0442\u043E\u0436\u0435 \u0437\u0430\u043F\u043E\u043B\u043D\u0435\u043D),\n\u0430 \u0447\u0430\u0442 \u043F\u0443\u0441\u0442. JSON-\u043C\u0435\u0442\u043E\u0434\u0430 \u0447\u0442\u0435\u043D\u0438\u044F \u043D\u0435\u0442 \u2014 \u043C\u043E\u0441\u0442 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u0442 HTML-\u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443 \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0435\u0432.\n\n```jsonc\nbitrix_task_comments { "taskId": 1234 } // \u0432\u0441\u0451 \u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435; \u0434\u043B\u0438\u043D\u043D\u043E\u0435 \u0443\u0435\u0434\u0435\u0442 \u0432 \u0444\u0430\u0439\u043B\nbitrix_task_comments { "taskId": 1234, "limit": 10 } // \u0442\u043E\u043B\u044C\u043A\u043E 10 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0445\nbitrix_task_comments { "taskId": 1234, "output": "inline" } // \u0432\u0441\u0435\u0433\u0434\u0430 \u0432 \u043E\u0442\u0432\u0435\u0442\u0435\nbitrix_task_comments { "taskId": 1234, "beforeId": 5678 } // \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C \u0432\u0433\u043B\u0443\u0431\u044C \u043E\u0442 id\n```\n\n\u041E\u0442\u0432\u0435\u0442: `comments[]` \u043F\u043E \u043F\u043E\u0440\u044F\u0434\u043A\u0443 (\u0441\u0442\u0430\u0440\u044B\u0435 \u2192 \u043D\u043E\u0432\u044B\u0435) \u2014 `{ id, authorId, author, date, dateIso, text, isNew,\nsystem, files[] }`, \u043F\u043B\u044E\u0441 `total`, `oldestId`, `scannedPages` \u0438 **`reachedHistoryStart`**: \u0435\u0441\u043B\u0438 \u043E\u043D\n`false` (\u0443\u043F\u0451\u0440\u043B\u0438\u0441\u044C \u0432 `maxPages` \u2014 \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u0435 \u0438 \u043C\u0430\u043A\u0441\u0438\u043C\u0443\u043C 10 \u2014 \u0438\u043B\u0438 \u0432 `limit`), \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0430\u0439 \u0441 `beforeId: <oldestId>`.\n\n- **`system: true`** \u2014 \u0441\u043B\u0443\u0436\u0435\u0431\u043D\u044B\u0435 \u0437\u0430\u043F\u0438\u0441\u0438 (\xAB\u0432\u044B \u043D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u044B \u0438\u0441\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u0435\u043C\xBB, \u0441\u043C\u0435\u043D\u0430 \u0441\u0440\u043E\u043A\u0430, \u043F\u0438\u043D\u0433\u0438), \u043D\u0435 \u0441\u043B\u043E\u0432\u0430 \u043B\u044E\u0434\u0435\u0439.\n- **`date`** \u2014 \u043A\u0430\u043A \u043D\u0430 \u043F\u043E\u0440\u0442\u0430\u043B\u0435 (\xAB9 \u043C\u0430\u0440\u0442\u0430 2024 08:15\xBB), **`dateIso`** \u2014 \u0442\u043E \u0436\u0435 \u0432 `2024-03-09T08:15`\n (\u043C\u0435\u0441\u0442\u043D\u043E\u0435 \u0432\u0440\u0435\u043C\u044F \u043F\u043E\u0440\u0442\u0430\u043B\u0430; \u0434\u043B\u044F \xAB\u0432\u0447\u0435\u0440\u0430, 12:00\xBB \u0438 \u0434\u0430\u0442 \u0431\u0435\u0437 \u0433\u043E\u0434\u0430 \u2014 `null`).\n- **`files[]`** \u2014 `{ attachedId, name, size, url }`; `url` \u0441\u043A\u0430\u0440\u043C\u043B\u0438\u0432\u0430\u0439 `bitrix_file_download` (\xA75.5).\n- **`text`** \u2014 \u0431\u0435\u0437 \u0440\u0430\u0437\u043C\u0435\u0442\u043A\u0438; \u0443 \u0441\u0441\u044B\u043B\u043A\u0438 \u0441 \u043F\u043E\u0434\u043F\u0438\u0441\u044C\u044E \u0430\u0434\u0440\u0435\u0441 \u0434\u043E\u043F\u0438\u0441\u0430\u043D \u0432 \u0441\u043A\u043E\u0431\u043A\u0430\u0445: \xAB\u043C\u0430\u043A\u0435\u0442 (https://\u2026)\xBB.\n- **\u0414\u043B\u0438\u043D\u043D\u043E\u0435 \u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435 \u043D\u0435 \u043F\u0440\u0438\u0445\u043E\u0434\u0438\u0442 \u0432 \u043E\u0442\u0432\u0435\u0442\u0435** (\u043A\u0430\u043A \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0430 \u0437\u0432\u043E\u043D\u043A\u0430, \xA75.4): \u0441\u0432\u044B\u0448\u0435 ~20 \u041A\u0411 (`output:\n "auto"` = \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u0435) \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 `comments: []` \u0438 `files`: `files.text` \u2014 `task-<id>-comments.txt`,\n \u0441\u0442\u0440\u043E\u043A\u0430 = \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0439 (`#5678 [2024-03-09T08:15] \u0418\u043C\u044F (id 101): \u0442\u0435\u043A\u0441\u0442`, \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u044B \u2014 ` \u23CE `), \u0435\u0451 \u0443\u0434\u043E\u0431\u043D\u043E\n \u0433\u0440\u0435\u043F\u0430\u0442\u044C; `files.json` \u2014 \u043F\u043E\u043B\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442. `output: "file"` \u2014 \u0432\u0441\u0435\u0433\u0434\u0430 \u0432 \u0444\u0430\u0439\u043B.\n- **\u041F\u0440\u043E\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u043C \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u043F\u043E\u043C\u0435\u0447\u0430\u0435\u0442\u0441\u044F.** \u041F\u043E\u0440\u0442\u0430\u043B \u043E\u0442\u043C\u0435\u0447\u0430\u0435\u0442 \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0438 \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u044B\u043C \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435\u043C\n `readComment`, \u043A\u043E\u0442\u043E\u0440\u043E\u0435 \u0448\u043B\u0451\u0442 JS \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B \u043F\u0440\u0438 \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0435; \u043C\u043E\u0441\u0442 JS \u043D\u0435 \u0438\u0441\u043F\u043E\u043B\u043D\u044F\u0435\u0442. \u041F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043E:\n `viewedDate` \u0437\u0430\u0434\u0430\u0447\u0438 \u043F\u043E\u0441\u043B\u0435 \u0447\u0442\u0435\u043D\u0438\u044F \u043D\u0435 \u043C\u0435\u043D\u044F\u0435\u0442\u0441\u044F. `isNew: true` \u2014 \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0439 \u043D\u0435 \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u043D \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u043C.\n- \u041D\u0435\u0442 \u0434\u043E\u0441\u0442\u0443\u043F\u0430 \u043A \u0437\u0430\u0434\u0430\u0447\u0435 / \u043F\u0440\u043E\u0442\u0443\u0445\u043B\u0430 \u0441\u0435\u0441\u0441\u0438\u044F \u2192 \u0432\u043D\u044F\u0442\u043D\u0430\u044F \u043E\u0448\u0438\u0431\u043A\u0430 (\u043F\u043E\u0440\u0442\u0430\u043B \u043E\u0442\u0434\u0430\u0451\u0442 HTML \u043B\u043E\u0433\u0438\u043D\u0430).\n\n### 5.7. \u0417\u0430\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443: Definition of Done\n\n\u0412 scrum-\u043F\u0440\u043E\u0435\u043A\u0442\u0435 \u0437\u0430\u0434\u0430\u0447\u0430 \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0435\u0442\u0441\u044F \u0447\u0435\u0440\u0435\u0437 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0433\u043E\u0442\u043E\u0432\u043D\u043E\u0441\u0442\u0438 (DoD), \u043A\u0430\u043A \u0432 \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0435 \u0437\u0430\u0434\u0430\u0447\u0438, \u0438 **\u043C\u043E\u0441\u0442 \u0438\u0445\n\u043D\u0435 \u043E\u0431\u0445\u043E\u0434\u0438\u0442**: \u043E\u0442\u043C\u0435\u0442\u0438\u0442\u044C \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043D\u044B\u043C\u0438 \u043C\u043E\u0436\u0435\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u0432\u0442\u043E\u0440\u043E\u0439 \u0432\u044B\u0437\u043E\u0432 \u2014 \u043F\u043E\u0441\u043B\u0435 \u044F\u0432\u043D\u043E\u0433\u043E \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u044F\n\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F. \u041F\u0435\u0440\u0435\u043D\u043E\u0441 \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u0442\u0438\u043F\u0430 `FINISH` \u0437\u0430\u043A\u0440\u044B\u043B \u0431\u044B \u0437\u0430\u0434\u0430\u0447\u0443 \u043C\u0438\u043C\u043E DoD, \u043F\u043E\u044D\u0442\u043E\u043C\u0443 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u043E\u0441\u043A\u0438 \u0442\u0430\u043A\u0443\u044E\n\u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u043D\u0435 \u043F\u0440\u0438\u043D\u0438\u043C\u0430\u044E\u0442 (\xA73) \u2014 \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0439 \u0442\u043E\u043B\u044C\u043A\u043E \u0442\u0430\u043A.\n\n```jsonc\n// \u0448\u0430\u0433 1\nbitrix_task_close { "taskId": 4229 }\n// \u043D\u0435 scrum-\u043F\u0440\u043E\u0435\u043A\u0442 \u0438\u043B\u0438 DoD \u043D\u0435 \u043D\u0443\u0436\u0435\u043D \u2192 \u0437\u0430\u0434\u0430\u0447\u0430 \u0441\u0440\u0430\u0437\u0443 \u0437\u0430\u043A\u0440\u044B\u0442\u0430: { taskId, status: 5, changed: true }\n// DoD \u043D\u0443\u0436\u0435\u043D \u2192 \u0437\u0430\u0434\u0430\u0447\u0430 \u041D\u0415 \u0437\u0430\u043A\u0440\u044B\u0442\u0430:\n// { taskId, needsConfirmation: true,\n// types: [{ id: 1, name: "\u2026", required: true, items: [{ title: "\u2026", group: "\u2026" }, \u2026] }, \u2026] }\n\n// \u0448\u0430\u0433 2 \u2014 \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u043E\u0441\u043B\u0435 \xAB\u0434\u0430\xBB \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043D\u0430 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E \u0442\u0438\u043F\u0430\nbitrix_task_close { "taskId": 4229, "typeId": 1, "confirmItems": true }\n// \u2192 { taskId, status: 5, changed: true, typeId: 1 }\n```\n\n- `types` \u2014 \u0442\u0438\u043F\u044B \u0437\u0430\u0434\u0430\u0447 \u043F\u0440\u043E\u0435\u043A\u0442\u0430 \u0438 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u043A\u0430\u0436\u0434\u043E\u0433\u043E; `required: true` \u2014 DoD \u0434\u043B\u044F \u0442\u0438\u043F\u0430 \u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u0435\u043D. `group` \u2014\n \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u0433\u0440\u0443\u043F\u043F\u044B \u0447\u0435\u043A-\u043B\u0438\u0441\u0442\u0430, \u0432 \u043A\u043E\u0442\u043E\u0440\u043E\u0439 \u043B\u0435\u0436\u0438\u0442 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0439 (\u0441\u0430\u043C\u0430 \u0433\u0440\u0443\u043F\u043F\u0430 \u0432 `items` \u043D\u0435 \u043F\u043E\u043F\u0430\u0434\u0430\u0435\u0442). \u041F\u043E\u043A\u0430\u0436\u0438\n \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0438 \u043F\u043E\u043B\u0443\u0447\u0438 \u0435\u0433\u043E \u044F\u0432\u043D\u043E\u0435 \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u0435 \u043E\u0442\u043C\u0435\u0442\u0438\u0442\u044C \u0438\u0445 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043D\u044B\u043C\u0438 \u0434\u043B\u044F \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E \u0442\u0438\u043F\u0430. \u0421\u0430\u043C \u0437\u0430\n \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043D\u0435 \u0440\u0435\u0448\u0430\u0439: \u043D\u0435\u0442 \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u044F \u2014 \u0448\u0430\u0433 2 \u043D\u0435 \u0432\u044B\u0437\u044B\u0432\u0430\u0439. **\u0422\u0438\u043F \u0432\u044B\u0431\u0438\u0440\u0430\u0435\u0442 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C**: \u0442\u0438\u043F \u0441\n `required: false` \u0437\u0430\u043A\u0440\u043E\u0435\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 \u0431\u0435\u0437 \u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0445 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0435\u0432 \u2014 \u0435\u0433\u043E \u0442\u043E\u0436\u0435 \u0431\u0435\u0440\u0438 \u0442\u043E\u043B\u044C\u043A\u043E \u0441 \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u044F\n \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F.\n- \u041D\u0430 \u0448\u0430\u0433\u0435 2 \u043E\u0442\u043C\u0435\u0447\u0430\u044E\u0442\u0441\u044F **\u0432\u0441\u0435** \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0442\u0438\u043F\u0430, \u0437\u0430\u0442\u0435\u043C \u0437\u0430\u0434\u0430\u0447\u0430 \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0435\u0442\u0441\u044F \u0438 \u0441\u0442\u0430\u0442\u0443\u0441 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442\u0441\u044F (\u043D\u0435\n \u0437\u0430\u043A\u0440\u044B\u043B\u0430\u0441\u044C \u2014 \u043E\u0448\u0438\u0431\u043A\u0430). `typeId` \u0438 `confirmItems: true` \u043F\u0435\u0440\u0435\u0434\u0430\u044E\u0442\u0441\u044F \u0442\u043E\u043B\u044C\u043A\u043E \u0432\u043C\u0435\u0441\u0442\u0435; \u0437\u0430\u0434\u0430\u0447\u0435 \u043D\u0435 \u0438\u0437\n scrum-\u043F\u0440\u043E\u0435\u043A\u0442\u0430 \u043E\u043D\u0438 \u043D\u0435 \u043D\u0443\u0436\u043D\u044B (\u043E\u0448\u0438\u0431\u043A\u0430 \u2014 \u0437\u0430\u043A\u0440\u043E\u0439 \u0435\u0451 \u0431\u0435\u0437 \u043D\u0438\u0445).\n- \u0423\u0436\u0435 \u0437\u0430\u043A\u0440\u044B\u0442\u0430\u044F \u0437\u0430\u0434\u0430\u0447\u0430 \u043D\u0435 \u0442\u0440\u043E\u0433\u0430\u0435\u0442\u0441\u044F (`changed: false`). \u0417\u0430\u043A\u0440\u044B\u0442\u0438\u0435 \u0432\u0438\u0434\u044F\u0442 \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443; \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438\n \u043F\u043E\u043B\u0443\u0447\u0430\u044E\u0442 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0435. \u0412\u043E\u0437\u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u2014 `bitrix_task_reopen { "taskIds": [4229] }`.\n- \xAB\u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 DoD \u043E\u0442\u043C\u0435\u0447\u0435\u043D\u044B \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043D\u044B\u043C\u0438, \u043D\u043E \u0437\u0430\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C\xBB \u2014 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0443\u0436\u0435 \u043E\u0442\u043C\u0435\u0447\u0435\u043D\u044B, \u0437\u0430\u0434\u0430\u0447\u0430\n \u043E\u0442\u043A\u0440\u044B\u0442\u0430. \xAB\u2026\u2014 \u0437\u0430\u043A\u0440\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0443 \u0432 \u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435\xBB \u2014 \u043C\u043E\u0441\u0442 \u043D\u0435 \u0441\u043C\u043E\u0433 \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044C DoD \u0438\u0437 \u043E\u0442\u0432\u0435\u0442\u0430 Bitrix; \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0438\n \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E \u0437\u0430\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u0432 \u0432\u0435\u0431-\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435.\n\n### 5.8. \u041F\u0440\u0438\u043A\u0440\u0435\u043F\u0438\u0442\u044C \u043B\u043E\u043A\u0430\u043B\u044C\u043D\u044B\u0439 \u0444\u0430\u0439\u043B \u043A \u0437\u0430\u0434\u0430\u0447\u0435\n\n```jsonc\nbitrix_task_file_attach { "taskId": 4229, "path": "/tmp/report.pdf" }\nbitrix_task_file_attach { "taskId": 4229, "path": "/tmp/out.csv", "name": "\u0438\u0442\u043E\u0433\u0438.csv" }\n// \u2192 { taskId, diskFileId, name, size, attachmentId }\n```\n\n- **\u0424\u0430\u0439\u043B \u0443\u0445\u043E\u0434\u0438\u0442 \u0441 \u043C\u0430\u0448\u0438\u043D\u044B**: \u043E\u043D \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044F \u0432 \u043A\u043E\u0440\u0435\u043D\u044C \u0414\u0438\u0441\u043A\u0430 \u0411\u0438\u0442\u0440\u0438\u043A\u044124 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u0438 \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u044F\u0435\u0442\u0441\u044F \u043A\n \u0437\u0430\u0434\u0430\u0447\u0435 \u2014 \u0435\u0433\u043E \u0443\u0432\u0438\u0434\u044F\u0442 \u0438 \u0441\u043C\u043E\u0433\u0443\u0442 \u0441\u043A\u0430\u0447\u0430\u0442\u044C \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443. \u041F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u044F\u0439 \u0442\u043E\u043B\u044C\u043A\u043E \u0442\u043E, \u0447\u0442\u043E \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\n \u044F\u0432\u043D\u043E \u043F\u043E\u043F\u0440\u043E\u0441\u0438\u043B; \u043B\u044E\u0431\u043E\u0439 \u0434\u0440\u0443\u0433\u043E\u0439 \u0444\u0430\u0439\u043B \u2014 \u0441\u043D\u0430\u0447\u0430\u043B\u0430 \u0441\u043F\u0440\u043E\u0441\u0438.\n- `path` \u2014 **\u0430\u0431\u0441\u043E\u043B\u044E\u0442\u043D\u044B\u0439** \u043F\u0443\u0442\u044C \u043A \u043E\u0431\u044B\u0447\u043D\u043E\u043C\u0443 \u043D\u0435\u043F\u0443\u0441\u0442\u043E\u043C\u0443 \u0444\u0430\u0439\u043B\u0443 \u0434\u043E 10 \u041C\u0411: \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F \u0432\u044B\u043F\u043E\u043B\u043D\u044F\u0435\u0442\u0441\u044F \u0432 \u043F\u0440\u043E\u0446\u0435\u0441\u0441\u0435\n daemon, \u0430 \u043D\u0435 \u0432 \u0442\u0432\u043E\u0451\u043C \u0440\u0430\u0431\u043E\u0447\u0435\u043C \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0435. `name` \u2014 \u0438\u043C\u044F \u0432 \u0411\u0438\u0442\u0440\u0438\u043A\u044124 (\u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u2014 \u0438\u0437 `path`, \u0431\u0435\u0437\n \u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B\u0435\u0439 \u043F\u0443\u0442\u0438); \u0435\u0441\u043B\u0438 \u0438\u043C\u044F \u043D\u0430 \u0414\u0438\u0441\u043A\u0435 \u0437\u0430\u043D\u044F\u0442\u043E, \u0411\u0438\u0442\u0440\u0438\u043A\u044124 \u0434\u043E\u0431\u0430\u0432\u0438\u0442 \u0441\u0443\u0444\u0444\u0438\u043A\u0441 \u2014 \u0438\u0442\u043E\u0433\u043E\u0432\u043E\u0435 \u0438\u043C\u044F \u0432 \u043E\u0442\u0432\u0435\u0442\u0435.\n- \u0418\u0437 \u0441\u043B\u0443\u0436\u0435\u0431\u043D\u043E\u0433\u043E \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0430 \u043C\u043E\u0441\u0442\u0430 (`~/.bitrix24-mcp-bridge` \u0438\u043B\u0438 `BITRIX24_MCP_BRIDGE_HOME`; \u0442\u0430\u043C \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0438\n \u0442\u043E\u043A\u0435\u043D) \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u044F\u044E\u0442\u0441\u044F \u0442\u043E\u043B\u044C\u043A\u043E \u0444\u0430\u0439\u043B\u044B, \u0441\u043A\u0430\u0447\u0430\u043D\u043D\u044B\u0435 \u043C\u043E\u0441\u0442\u043E\u043C, \u2014 \u0438\u0437 `downloads/` (\u0438\u0445 \u043C\u043E\u0436\u043D\u043E \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u0438\u0442\u044C \u043A \u0434\u0440\u0443\u0433\u043E\u0439\n \u0437\u0430\u0434\u0430\u0447\u0435). \u0412\u0441\u0451 \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u043E\u0435 \u0432 \u043D\u0451\u043C \u2014 \u043E\u0442\u043A\u0430\u0437, \u0432 \u0442\u043E\u043C \u0447\u0438\u0441\u043B\u0435 \u0447\u0435\u0440\u0435\u0437 \u0441\u0438\u043C\u043B\u0438\u043D\u043A \u0438\u043B\u0438 `..`.\n- \u041D\u0443\u0436\u043D\u043E \u043F\u0440\u0430\u0432\u043E \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u044F\u0442\u044C \u0444\u0430\u0439\u043B\u044B \u043A \u0437\u0430\u0434\u0430\u0447\u0435: \u0442\u043E\u043C\u0443, \u043A\u0442\u043E \u0437\u0430\u0434\u0430\u0447\u0443 \u0442\u043E\u043B\u044C\u043A\u043E \u0432\u0438\u0434\u0438\u0442, Bitrix \u043C\u043E\u0436\u0435\u0442 \u043E\u0442\u043A\u0430\u0437\u0430\u0442\u044C \u0443\u0436\u0435 \u043F\u043E\u0441\u043B\u0435\n \u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0438. \u0415\u0441\u043B\u0438 \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u0438\u0442\u044C \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C, \u0444\u0430\u0439\u043B **\u043E\u0441\u0442\u0430\u0451\u0442\u0441\u044F \u043D\u0430 \u0414\u0438\u0441\u043A\u0435** \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u2014 \u043E\u0448\u0438\u0431\u043A\u0430 \u043D\u0430\u0437\u044B\u0432\u0430\u0435\u0442 \u0435\u0433\u043E (\u0438\u043C\u044F\n \u0438 id); \u0441\u043A\u0430\u0436\u0438 \u043E\u0431 \u044D\u0442\u043E\u043C \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E.\n- \xAB\u0444\u0430\u0439\u043B \u043C\u043E\u0433 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C\u0441\u044F \u043D\u0430 \u0414\u0438\u0441\u043A\xBB \u2014 \u043F\u0440\u043E\u0432\u0435\u0440\u044C \u043A\u043E\u0440\u043D\u0435\u0432\u0443\u044E \u043F\u0430\u043F\u043A\u0443 \u0414\u0438\u0441\u043A\u0430 \u043F\u0435\u0440\u0435\u0434 \u043F\u043E\u0432\u0442\u043E\u0440\u043E\u043C; \xAB\u0432\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u043C\u043E\u0433\u043B\u043E\n \u0441\u043E\u0437\u0434\u0430\u0442\u044C\u0441\u044F\xBB \u2014 \u043F\u0440\u043E\u0432\u0435\u0440\u044C \u0444\u0430\u0439\u043B\u044B \u0437\u0430\u0434\u0430\u0447\u0438 (`bitrix_task_get` \u0441 `select: ["UF_TASK_WEBDAV_FILES"]` \u2192\n `bitrix_task_files`). \u041F\u043E\u0441\u043B\u0435 \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u0435\u043D\u0438\u044F \u0444\u0430\u0439\u043B\u044B \u0437\u0430\u0434\u0430\u0447\u0438 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u044E\u0442\u0441\u044F; \u0432\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u043D\u0435\u0442 \u2014 \u043E\u0448\u0438\u0431\u043A\u0430.\n\n### 5.9. \u041D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F \u0438 \u0441\u0432\u043E\u0438 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u043F\u043E \u0437\u0430\u0434\u0430\u0447\u0435\n\n\u041D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F \u0438 \u0432\u044B\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0439 \u043A\u0430\u0441\u0430\u044E\u0442\u0441\u044F **\u0442\u043E\u043B\u044C\u043A\u043E \u0442\u0435\u043A\u0443\u0449\u0435\u0433\u043E \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F**: \u0434\u0440\u0443\u0433\u0438\u0435 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u0438\u0445 \u043D\u0435\n\u0432\u0438\u0434\u044F\u0442 \u0438 \u043F\u043E\u043B\u0443\u0447\u0430\u044E\u0442 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u043A\u0430\u043A \u043F\u0440\u0435\u0436\u0434\u0435.\n\n```jsonc\nbitrix_task_reminders { "taskId": 4229 }\n// \u2192 { taskId, reminders: [{ id, at, via, remindBy, recipient, userId, mine }] }\nbitrix_task_reminder_set { "taskId": 4229, "at": "2026-12-01T09:00:00+03:00", "via": "notification" } // \u043D\u043E\u0432\u043E\u0435 \u2014 \u0442\u0435\u0431\u0435\nbitrix_task_reminder_set { "taskId": 4229, "reminderId": 61, "at": "2026-12-02T06:00:00Z", "via": "email" }\nbitrix_task_reminder_delete { "taskId": 4229, "reminderId": 61 }\nbitrix_task_mute { "taskId": 4229, "muted": true } // \u0432\u044B\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0441\u0432\u043E\u0438 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u043F\u043E \u0437\u0430\u0434\u0430\u0447\u0435\n```\n\n- \u041C\u0435\u043D\u044F\u0442\u044C \u0438 \u0443\u0434\u0430\u043B\u044F\u0442\u044C \u043C\u043E\u0436\u043D\u043E \u0442\u043E\u043B\u044C\u043A\u043E **\u0441\u0432\u043E\u0438** \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F \u2014 `mine: true` \u0432 `bitrix_task_reminders`; \u0447\u0443\u0436\u043E\u0435 \u0438\u043B\u0438\n \u043D\u0435 \u044D\u0442\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u2014 \u043E\u0448\u0438\u0431\u043A\u0430, \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u043C\u0435\u043D\u044F\u0435\u0442\u0441\u044F.\n- `at` \u2014 \u0430\u0431\u0441\u043E\u043B\u044E\u0442\u043D\u0430\u044F \u0434\u0430\u0442\u0430 **\u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043C** (\u0444\u043E\u0440\u043C\u0430\u0442 \u2014 \xAB\u0414\u0430\u0442\u044B\xBB, \xA73); `via` \u2014 `notification` (\u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0435 \u0432\n \u0411\u0438\u0442\u0440\u0438\u043A\u044124) \u0438\u043B\u0438 `email`. \u041D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 \u043E\u0442\u043D\u043E\u0441\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u0441\u0440\u043E\u043A\u0430 (`remindBy: "deadline"`) \u043F\u043E\u0441\u043B\u0435 \u043F\u0440\u0430\u0432\u043A\u0438 \u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0441\u044F\n \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435\u043C \u043D\u0430 \u0434\u0430\u0442\u0443; \u043F\u043E\u043B\u0443\u0447\u0430\u0442\u0435\u043B\u044C (`recipient`) \u043E\u0441\u0442\u0430\u0451\u0442\u0441\u044F \u043F\u0440\u0435\u0436\u043D\u0438\u043C.\n- \u041F\u043E\u0441\u043B\u0435 \u0437\u0430\u043F\u0438\u0441\u0438 \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 \u0438 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0439 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u044E\u0442\u0441\u044F; \u0435\u0441\u043B\u0438 \u043E\u043D\u0438 \u043D\u0435 \u0442\u0435 \u2014 \u043E\u0448\u0438\u0431\u043A\u0430.\n\n---\n\n\u041D\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0430 \u043F\u043E\u0434 \u043D\u0443\u0436\u043D\u043E\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u2014 \u0441\u043A\u0430\u0436\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E: \u043D\u043E\u0432\u044B\u0435 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u043E\u0431\u0430\u0432\u043B\u044F\u0435\u0442\n\u043C\u0435\u0439\u043D\u0442\u0435\u0439\u043D\u0435\u0440 \u043C\u043E\u0441\u0442\u0430 (\u043F\u0440\u043E\u0446\u0435\u0441\u0441 \u2014 `docs/reconnaissance.md` \u0432 \u0440\u0435\u043F\u043E\u0437\u0438\u0442\u043E\u0440\u0438\u0438 \u043C\u043E\u0441\u0442\u0430).\n' ? '# Bitrix24 API notes (reverse-engineered)\n\n\u041A\u0430\u043A \u0430\u0433\u0435\u043D\u0442\u0443 \u0440\u0430\u0431\u043E\u0442\u0430\u0442\u044C \u0441 Bitrix24 \u0447\u0435\u0440\u0435\u0437 \u044D\u0442\u043E\u0442 \u043C\u043E\u0441\u0442: \u0444\u043E\u0440\u043C\u0430\u0442 `params`, \u0438\u043C\u0435\u043D\u0430 \u043F\u043E\u043B\u0435\u0439, \u0433\u043E\u0442\u043E\u0432\u044B\u0435 \u0446\u0435\u043F\u043E\u0447\u043A\u0438 \u0432\u044B\u0437\u043E\u0432\u043E\u0432.\n\n\u0414\u0432\u0435 \u043F\u043E\u0432\u0435\u0440\u0445\u043D\u043E\u0441\u0442\u0438 API. **\u041F\u0443\u0431\u043B\u0438\u0447\u043D\u044B\u0439 REST** (`tasks.task.*`, `im.recent.list`, `im.user.get`, `im.chat.get`,\n`socialnetwork.api.workgroup.*`) \u2014 \u0435\u0441\u0442\u044C \u043E\u0444\u0438\u0446\u0438\u0430\u043B\u044C\u043D\u044B\u0435 \u0434\u043E\u043A\u0438, \u0441\u0441\u044B\u043B\u043A\u0438 \u043D\u0430 \u043D\u0438\u0445 \u043F\u043E\u043C\u0435\u0447\u0435\u043D\u044B **\u{1F4D6}**\n([`apidocs.bitrix24.com`](https://apidocs.bitrix24.com); \u0430\u0433\u0435\u043D\u0442\u0443 \u0441 MCP context7 \u2014 \u0431\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u0430\n`/bitrix24/b24restdocs`). **\u0412\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u0438\u0435 ajax-\u043A\u043E\u043D\u0442\u0440\u043E\u043B\u043B\u0435\u0440\u044B** (`im.v2.*`, `tasks.v2.*`, `ui.entityselector.*`)\n\u043F\u0443\u0431\u043B\u0438\u0447\u043D\u044B\u0445 \u0434\u043E\u043A\u043E\u0432 \u043D\u0435 \u0438\u043C\u0435\u044E\u0442 \u2014 \u0432\u0441\u0451 \u043D\u0438\u0436\u0435 \u0434\u043E\u0431\u044B\u0442\u043E \u0436\u0438\u0432\u044B\u043C \u0440\u0435\u0432\u0435\u0440\u0441\u043E\u043C; \u043A\u043E\u043D\u0432\u0435\u0440\u0442 \u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u043F\u043E\u043B\u0435\u0439 \u0443 \u043D\u0438\u0445 \u043C\u043E\u0433\u0443\u0442\n\u043E\u0442\u043B\u0438\u0447\u0430\u0442\u044C\u0441\u044F \u043E\u0442 \u{1F4D6}-\u0430\u043D\u0430\u043B\u043E\u0433\u043E\u0432. \u0418\u043C\u0435\u043D\u0430 \u043F\u043E\u043B\u0435\u0439 \u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u044B \u0434\u043B\u044F \u043E\u0431\u043B\u0430\u0447\u043D\u043E\u0433\u043E Bitrix24; \u043D\u0430 \u0434\u0440\u0443\u0433\u043E\u043C \u043F\u043E\u0440\u0442\u0430\u043B\u0435 \u043E\u0442\u0432\u0435\u0442\n\u043C\u043E\u0436\u0435\u0442 \u043E\u0442\u043B\u0438\u0447\u0430\u0442\u044C\u0441\u044F.\n\n---\n\n## 1. \u041A\u0430\u043A \u0432\u044B\u0437\u044B\u0432\u0430\u0442\u044C\n\n- **\u041A\u0430\u0436\u0434\u044B\u0439 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442 `bitrix_*` \u2014 \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u0430\u044F \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F \u043C\u043E\u0441\u0442\u0430** \u0441 \u0442\u0438\u043F\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u043C\u0438 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u0430\u043C\u0438\n (`taskId`, `chatId`, `query`, \u2026) \u0438 \u0440\u0430\u0437\u0443\u043C\u043D\u044B\u043C\u0438 \u0434\u0435\u0444\u043E\u043B\u0442\u0430\u043C\u0438; \u043F\u043E\u043B\u043D\u044B\u0439 \u0441\u043F\u0438\u0441\u043E\u043A \u2014 \xA73 \u0438 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u044F MCP-\u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432.\n \u0412\u044B\u0437\u0432\u0430\u0442\u044C \u043F\u0440\u043E\u0438\u0437\u0432\u043E\u043B\u044C\u043D\u044B\u0439 \u043C\u0435\u0442\u043E\u0434 Bitrix \u043F\u043E \u0438\u043C\u0435\u043D\u0438 \u043D\u0435\u043B\u044C\u0437\u044F \u2014 \u0442\u043E\u043B\u044C\u043A\u043E \u044D\u0442\u0438 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438.\n- **`params`** (\u043D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0439, \u0443 \u0431\u043E\u043B\u044C\u0448\u0438\u043D\u0441\u0442\u0432\u0430 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0439 \u2014 \u043F\u043E\u043C\u0435\u0442\u043A\u0430 \xAB+ `params`\xBB \u0432 \xA73) \u2014 \u043E\u0431\u044A\u0435\u043A\u0442 \u0432\n **\u043D\u0430\u0442\u0438\u0432\u043D\u043E\u043C \u0444\u043E\u0440\u043C\u0430\u0442\u0435 Bitrix** (`select`/`filter`/`order`/\u043F\u0430\u0433\u0438\u043D\u0430\u0446\u0438\u044F, \xA74). \u041E\u043D \u043C\u0435\u0440\u0436\u0438\u0442\u0441\u044F **\u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u043C** \u0438\n \u043F\u0435\u0440\u0435\u043A\u0440\u044B\u0432\u0430\u0435\u0442 \u0434\u0435\u0444\u043E\u043B\u0442\u044B \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438. \u041A\u043B\u044E\u0447\u0438 `action`, `c`, `mode`, `sessid` \u0432 `params` \u0437\u0430\u043F\u0440\u0435\u0449\u0435\u043D\u044B \u2014 \u0438\u0445 \u0437\u0430\u0434\u0430\u0451\u0442\n \u0441\u0430\u043C\u0430 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F; \u0432\u044B\u0437\u043E\u0432 \u0441 \u043D\u0438\u043C\u0438 \u0432\u0435\u0440\u043D\u0451\u0442 \u043E\u0448\u0438\u0431\u043A\u0443 `invalid arguments\u2026`, \u0437\u0430\u043F\u0440\u043E\u0441 \u043D\u0435 \u0443\u0439\u0434\u0451\u0442.\n- **`portal`** (\u043D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0439, \u0443 \u0432\u0441\u0435\u0445) \u2014 alias \u043F\u043E\u0440\u0442\u0430\u043B\u0430; \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u2014 \u043F\u043E\u0440\u0442\u0430\u043B \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0438\u0437 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A.\n- \u0423 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0439 \u0435\u0441\u0442\u044C \u0434\u0435\u0444\u043E\u043B\u0442\u044B (\u043D\u0430\u043F\u0440. `bitrix_tasks_list` \u0441\u043E\u0440\u0442\u0438\u0440\u0443\u0435\u0442 `{"ID":"desc"}`) \u2014 \u0441\u0440\u0430\u0432\u043D\u0438\u0432\u0430\u0435\u0448\u044C \u0432\u044B\u0434\u0430\u0447\u0438\n \u0441 \u0440\u0430\u0437\u043D\u044B\u043C\u0438 `params`, \u0437\u0430\u0434\u0430\u0432\u0430\u0439 `order` \u044F\u0432\u043D\u043E.\n- **\u041C\u0443\u0442\u0438\u0440\u0443\u044E\u0449\u0438\u0435** \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 (\u26A0 \u0432 \xA73, \u043F\u043E\u043B\u043D\u044B\u0439 \u0441\u043F\u0438\u0441\u043E\u043A \u2014 \u043F\u043E\u0441\u043B\u0435 \u0442\u0430\u0431\u043B\u0438\u0446\u044B) \u043C\u0435\u043D\u044F\u044E\u0442 \u0434\u0430\u043D\u043D\u044B\u0435 \u043D\u0430 \u043F\u043E\u0440\u0442\u0430\u043B\u0435 \u043E\u0442 \u0438\u043C\u0435\u043D\u0438\n \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F, \u0441\u0440\u0430\u0437\u0443 \u0438 \u0431\u0435\u0437 \u043E\u0442\u043C\u0435\u043D\u044B. \u041F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u043E\u043D\u0438 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u044B; \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C \u043C\u043E\u0436\u0435\u0442 \u0432\u044B\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0438\u0445\n \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0430\u0442\u0435\u043B\u0435\u043C \u043C\u0443\u0442\u0430\u0446\u0438\u0439 \u2014 \u0442\u043E\u0433\u0434\u0430 \u0432\u044B\u0437\u043E\u0432 \u0432\u0435\u0440\u043D\u0451\u0442 \u043E\u0448\u0438\u0431\u043A\u0443 `operation <\u0438\u043C\u044F> changes data, but mutations are\n disabled\u2026`; \u044D\u0442\u043E \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F, \u043E\u0431\u043E\u0439\u0442\u0438 \u0435\u0451 \u043D\u0435\u043B\u044C\u0437\u044F \u2014 \u0441\u043E\u043E\u0431\u0449\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E. \u0412\u043A\u043B\u044E\u0447\u0435\u043D\u044B \u043B\u0438 \u043E\u043D\u0438 \u0441\u0435\u0439\u0447\u0430\u0441 \u2014\n \u043F\u043E\u043B\u0435 `mutations` \u0432 `bitrix_status`. \u041E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0447\u0442\u0435\u043D\u0438\u044F \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0430\u0442\u0435\u043B\u044C \u043D\u0435 \u0442\u0440\u043E\u0433\u0430\u0435\u0442.\n- \u041E\u0442\u0432\u0435\u0442 `invalid_csrf` / `invalid_authentication` = \u0441\u0435\u0441\u0441\u0438\u044F \u043F\u043E\u0440\u0442\u0430\u043B\u0430 \u043F\u0440\u043E\u0442\u0443\u0445\u043B\u0430 \u2192 \u043F\u0435\u0440\u0435\u043B\u043E\u0433\u0438\u043D\u044C\u0441\u044F \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435\n \u043D\u0430 \u0432\u043A\u043B\u0430\u0434\u043A\u0435 \u043F\u043E\u0440\u0442\u0430\u043B\u0430.\n\n---\n\n## 2. \u0424\u043E\u0440\u043C\u0430\u0442 \u043E\u0442\u0432\u0435\u0442\u0430\n\nAjax-\u043A\u043E\u043D\u0442\u0440\u043E\u043B\u043B\u0435\u0440\u044B (`/bitrix/services/main/ajax.php`) \u043E\u0442\u0432\u0435\u0447\u0430\u044E\u0442 HTTP 200 \u0441 \u043A\u043E\u043D\u0432\u0435\u0440\u0442\u043E\u043C:\n\n```jsonc\n{ "status": "success" | "error",\n "data": { ... },\n "errors": [] } // \u041F\u0423\u0421\u0422\u041E\u0419 \u043C\u0430\u0441\u0441\u0438\u0432 \u043F\u0440\u0438 \u0443\u0441\u043F\u0435\u0445\u0435! (\u0432 JS [] \u2014 truthy)\n```\n\n\u0423\u0441\u043F\u0435\u0445 = `status:"success"` \u0438/\u0438\u043B\u0438 **\u043F\u0443\u0441\u0442\u043E\u0439** `errors`. \u041D\u0435\u043F\u0443\u0441\u0442\u043E\u0439 `errors` / `status:"error"` / top-level\n`error` \u2014 \u0440\u0435\u0430\u043B\u044C\u043D\u0430\u044F \u043E\u0448\u0438\u0431\u043A\u0430 (\u043C\u043E\u0441\u0442 \u043C\u0430\u043F\u043F\u0438\u0442 \u0435\u0451 \u0432 `ok:false`). REST-\u044D\u043D\u0434\u043F\u043E\u0438\u043D\u0442\u044B (`/rest/*.json`) \u043E\u0442\u0432\u0435\u0447\u0430\u044E\u0442\n\u0438\u043D\u0430\u0447\u0435: `{ "result": \u2026, "next", "total", "time" }` \u2014 \u0431\u0435\u0437 `errors`.\n\n---\n\n## 3. \u0418\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u044B: \u0447\u0442\u043E \u0434\u0435\u043B\u0430\u0435\u0442 \u2192 \u043A\u043B\u044E\u0447\u0435\u0432\u044B\u0435 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u044B\n\n`params` \u0432 \u0442\u0430\u0431\u043B\u0438\u0446\u0435 \u043D\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u0435\u0442\u0441\u044F \u2014 \u043E\u043D \u0435\u0441\u0442\u044C \u0443 \u0432\u0441\u0435\u0445 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0439 \u0441 \u043F\u043E\u043C\u0435\u0442\u043A\u043E\u0439 \xAB+ `params`\xBB (\xA71). \u0424\u043E\u0440\u043C\u0430\n`params` \u0440\u0430\u0437\u043B\u0438\u0447\u0430\u0435\u0442\u0441\u044F \u043F\u043E \u043C\u0435\u0442\u043E\u0434\u0443: \u0433\u0434\u0435-\u0442\u043E \u043F\u043B\u043E\u0441\u043A\u043E, \u0433\u0434\u0435-\u0442\u043E \u0432\u043B\u043E\u0436\u0435\u043D\u043D\u043E, \u0433\u0434\u0435-\u0442\u043E \u043E\u0431\u0451\u0440\u043D\u0443\u0442\u043E \u0432 `params[\u2026]` \u2014 \u043A\u043E\u043B\u043E\u043D\u043A\u0430\n\xABparams / \u043F\u0430\u0433\u0438\u043D\u0430\u0446\u0438\u044F\xBB \u043F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0435\u0442 \u0442\u043E\u0447\u043D\u0443\u044E \u0444\u043E\u0440\u043C\u0443 (\u043A\u043E\u0434\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 \u0442\u0435\u043B\u0430 \u043C\u043E\u0441\u0442 \u0431\u0435\u0440\u0451\u0442 \u043D\u0430 \u0441\u0435\u0431\u044F).\n\n| \u0418\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442 | \u0427\u0442\u043E \u0434\u0435\u043B\u0430\u0435\u0442 | \u041A\u043B\u044E\u0447\u0435\u0432\u044B\u0435 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u044B | params / \u043F\u0430\u0433\u0438\u043D\u0430\u0446\u0438\u044F |\n|---|---|---|---|\n| `bitrix_help` | \u044D\u0442\u0430 \u0441\u043F\u0440\u0430\u0432\u043A\u0430 | \u2014 | \u2014 |\n| `bitrix_status` | \u043A\u0430\u043A\u0438\u0435 \u043F\u043E\u0440\u0442\u0430\u043B\u044B \u0441\u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u044B \u0438 \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u044B, \u0432\u0435\u0440\u0441\u0438\u0438 \u043C\u043E\u0441\u0442\u0430 \u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u044F | \u2014 | \u2014 |\n| *\u0417\u0430\u0434\u0430\u0447\u0438* | | | |\n| `bitrix_tasks_list` | \u0441\u043F\u0438\u0441\u043E\u043A \u0437\u0430\u0434\u0430\u0447 | + `params` | \u0432\u0435\u0440\u0445\u043D\u0438\u0439 \u0443\u0440\u043E\u0432\u0435\u043D\u044C: `filter{RESPONSIBLE_ID,REAL_STATUS,GROUP_ID,\u2026}`, `select[]`, `order{}`; **`PAGEN_1`** \u2014 \u043D\u043E\u043C\u0435\u0440 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B (1, 2, 3\u2026), \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430 = 20 \u0437\u0430\u0434\u0430\u0447; `start` **\u043D\u0435 \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442** (\u0432\u0435\u0440\u043D\u0451\u0442 \u0442\u0443 \u0436\u0435 \u043F\u0435\u0440\u0432\u0443\u044E \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443) |\n| `bitrix_task_get` | \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0437\u0430\u0434\u0430\u0447\u0438 (\u0432 \u0442.\u0447. `CHAT_ID`) | `taskId` + `params` | \u0432\u0435\u0440\u0445\u043D\u0438\u0439 \u0443\u0440\u043E\u0432\u0435\u043D\u044C: `select[]` |\n| `bitrix_task_get_v2` | \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0437\u0430\u0434\u0430\u0447\u0438 \u0447\u0435\u0440\u0435\u0437 v2-\u043F\u043E\u0434\u0441\u0438\u0441\u0442\u0435\u043C\u0443 | `taskId` + `params` | \u2014 |\n| `bitrix_task_scrum_info` | \u0441\u043F\u0440\u0438\u043D\u0442 / \u044D\u043F\u0438\u043A / story points \u0437\u0430\u0434\u0430\u0447\u0438 | `taskId` + `params` | \u2014 |\n| `bitrix_task_files` | \u0444\u0430\u0439\u043B\u044B \u0437\u0430\u0434\u0430\u0447\u0438 (\u0441\u0441\u044B\u043B\u043A\u0438 \u0434\u043B\u044F \u0441\u043A\u0430\u0447\u0438\u0432\u0430\u043D\u0438\u044F) | `ids[]` \u2014 id **\u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u0451\u043D\u043D\u044B\u0445 \u043E\u0431\u044A\u0435\u043A\u0442\u043E\u0432** (\xA74), \u043D\u0435 \u0437\u0430\u0434\u0430\u0447 + `params` | `downloadUrl` \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 \u043E\u0442\u043D\u043E\u0441\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0439 \u2014 \u0434\u043E\u043F\u0438\u0448\u0438 origin \u043F\u043E\u0440\u0442\u0430\u043B\u0430 |\n| `bitrix_task_views_count` | \u0441\u043A\u043E\u043B\u044C\u043A\u043E \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u0439 \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u043B\u0438 \u0437\u0430\u0434\u0430\u0447\u0443 | `taskId` + `params` | \u2014 |\n| `bitrix_task_subtasks` / `bitrix_task_related` | \u043F\u043E\u0434\u0437\u0430\u0434\u0430\u0447\u0438 / \u0441\u0432\u044F\u0437\u0430\u043D\u043D\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 | `taskId` + `params` | `navigation{size}` (\u0434\u0435\u0444\u043E\u043B\u0442 10) |\n| `bitrix_task_comments` | \u0441\u0442\u0430\u0440\u044B\u0435 \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 (\u0444\u043E\u0440\u0443\u043C), \xA75.6 | `taskId`, `limit?`, `maxPages?`, `beforeId?`, `output?` | `beforeId` \u2014 \u043A\u0443\u0440\u0441\u043E\u0440 |\n| `bitrix_task_description_set` \u26A0 | **\u0437\u0430\u043C\u0435\u043D\u0438\u0442\u044C** \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0446\u0435\u043B\u0438\u043A\u043E\u043C (`""` \u2014 \u043E\u0447\u0438\u0441\u0442\u0438\u0442\u044C) | `taskId`, `text` (\u2264 100 000) | \u0431\u0435\u0437 `params`; \u0440\u0430\u0437\u043C\u0435\u0442\u043A\u0430 \u2014 BBCode \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u044F (\u043D\u0438\u0436\u0435); \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442\u0441\u044F, \u043E\u0442\u0432\u0435\u0442 `{ taskId, length }` |\n| `bitrix_task_description_append` \u26A0 | **\u0434\u043E\u043F\u0438\u0441\u0430\u0442\u044C** \u0432 \u043A\u043E\u043D\u0435\u0446 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u044F \u0447\u0435\u0440\u0435\u0437 \u043F\u0443\u0441\u0442\u0443\u044E \u0441\u0442\u0440\u043E\u043A\u0443; \u0441\u0442\u0430\u0440\u043E\u0435 (\u0444\u0430\u0439\u043B\u044B `[disk file id=\u2026]`, \u0442\u0430\u0431\u043B\u0438\u0446\u044B) \u043D\u0435 \u0442\u0440\u043E\u0433\u0430\u0435\u0442 | `taskId`, `text` (\u2264 100 000) | \u0431\u0435\u0437 `params`; \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442\u0441\u044F, \u043E\u0442\u0432\u0435\u0442 `{ taskId, length }` |\n| `bitrix_task_description_replace` \u26A0 | **\u0442\u043E\u0447\u0435\u0447\u043D\u0430\u044F \u043F\u0440\u0430\u0432\u043A\u0430** \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u044F: \u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442 `find` \u2192 `replace` (`""` \u2014 \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442), \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u043E\u0435 \u043A\u0430\u043A \u0431\u044B\u043B\u043E | `taskId`, `find`, `replace`, `all?` | \u0431\u0435\u0437 `params`; `find` \u2014 \u0442\u043E\u0447\u043D\u0430\u044F \u043F\u043E\u0434\u0441\u0442\u0440\u043E\u043A\u0430 \u0441\u044B\u0440\u043E\u0433\u043E BBCode (`bitrix_task_get_v2` \u2192 `description`), \u0441 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043E\u043C \u0438 \u043F\u0435\u0440\u0435\u0432\u043E\u0434\u0430\u043C\u0438 \u0441\u0442\u0440\u043E\u043A. \u041D\u0435\u0442 \u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439 \u0438\u043B\u0438 \u0438\u0445 \u0431\u043E\u043B\u044C\u0448\u0435 \u043E\u0434\u043D\u043E\u0433\u043E \u0431\u0435\u0437 `all: true` \u2014 \u043E\u0448\u0438\u0431\u043A\u0430, \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0437\u0430\u043F\u0438\u0441\u0430\u043D\u043E. \u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442\u0441\u044F; \u043E\u0442\u0432\u0435\u0442 `{ taskId, replaced, length }` |\n| `bitrix_task_tags` \u26A0 | \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C / \u0443\u0431\u0440\u0430\u0442\u044C **\u0442\u0435\u0433\u0438** | `taskIds[]` (1\u201350), `add[]?`, `remove[]?` \u2014 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044F, \u0431\u0435\u0437 \u0443\u0447\u0451\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442 (\u043D\u0438\u0436\u0435), \u043F\u043E\u043B\u044F `tags`, `changed` |\n| `bitrix_task_checklist` | **\u0447\u0435\u043A-\u043B\u0438\u0441\u0442** \u0437\u0430\u0434\u0430\u0447\u0438 \u043F\u043B\u043E\u0441\u043A\u0438\u043C \u0441\u043F\u0438\u0441\u043A\u043E\u043C `{ taskId, items: [{ id, parentId, title, done }] }` | `taskId` | \u0431\u0435\u0437 `params`; `parentId: 0` \u2014 \u0433\u0440\u0443\u043F\u043F\u0430, \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u044B\u0435 \u2014 \u043F\u0443\u043D\u043A\u0442\u044B \u0433\u0440\u0443\u043F\u043F\u044B `parentId` |\n| `bitrix_task_checklist_edit` \u26A0 | \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0447\u0435\u043A-\u043B\u0438\u0441\u0442: \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C, \u043F\u0435\u0440\u0435\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u0442\u044C, \u043E\u0442\u043C\u0435\u0442\u0438\u0442\u044C / \u0441\u043D\u044F\u0442\u044C \u043E\u0442\u043C\u0435\u0442\u043A\u0443, \u0443\u0434\u0430\u043B\u0438\u0442\u044C | `taskId`, `add[]?` (\u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044F), `rename[{ itemId, title }]?`, `complete[]?`, `reopen[]?`, `remove[]?` | \u0431\u0435\u0437 `params`; id \u2014 \u0438\u0437 `bitrix_task_checklist`; \u2264 50 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0437\u0430 \u0432\u044B\u0437\u043E\u0432; \u043E\u0442\u0432\u0435\u0442 `{ taskId, added, items }` (\u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u043D) |\n| `bitrix_task_plan` \u26A0 | **\u043F\u043B\u0430\u043D\u0438\u0440\u0443\u0435\u043C\u044B\u0435** \u0434\u0430\u0442\u044B \u043D\u0430\u0447\u0430\u043B\u0430 / \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F | `taskId`, `start?`, `end?` \u2014 \u0434\u0430\u0442\u0430 (\u043D\u0438\u0436\u0435) \u0438\u043B\u0438 `null` (\u043E\u0447\u0438\u0441\u0442\u0438\u0442\u044C) | \u0431\u0435\u0437 `params`; \u0445\u043E\u0442\u044F \u0431\u044B \u043E\u0434\u043D\u0430; \u043D\u0435 \u043F\u0435\u0440\u0435\u0434\u0430\u043D\u043D\u0430\u044F \u043E\u0441\u0442\u0430\u0451\u0442\u0441\u044F \u043A\u0430\u043A \u0435\u0441\u0442\u044C; `start` \u043D\u0435 \u043F\u043E\u0437\u0436\u0435 `end`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, start, end }` |\n| `bitrix_task_priority` \u26A0 | **\u0432\u0430\u0436\u043D\u043E\u0441\u0442\u044C**: `high` \u2014 \xAB\u0412\u0430\u0436\u043D\u0430\u044F \u0437\u0430\u0434\u0430\u0447\u0430\xBB, `average` \u2014 \u043E\u0431\u044B\u0447\u043D\u0430\u044F | `taskIds[]` (1\u201350), `priority` | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u0435 `priority` |\n| `bitrix_task_deadline` \u26A0 | **\u043A\u0440\u0430\u0439\u043D\u0438\u0439 \u0441\u0440\u043E\u043A** | `taskIds[]` (1\u201350), `deadline` \u2014 \u0434\u0430\u0442\u0430 \u0438\u043B\u0438 `null` (\u0443\u0431\u0440\u0430\u0442\u044C), `reason?` (\u043F\u0440\u0438\u0447\u0438\u043D\u0430 \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0430, \u043F\u0440\u043E\u0441\u0442\u043E\u0439 \u0442\u0435\u043A\u0441\u0442 \u2264 1000) | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u0435 `deadline` |\n| `bitrix_task_close` \u26A0 | **\u0437\u0430\u043A\u0440\u044B\u0442\u044C** \u0437\u0430\u0434\u0430\u0447\u0443; Definition of Done \u043D\u0435 \u043E\u0431\u0445\u043E\u0434\u0438\u0442\u0441\u044F \u2014 \u0434\u0432\u0430 \u0448\u0430\u0433\u0430, \xA75.7 | `taskId`; \u0448\u0430\u0433 2 \u2014 \u043F\u043B\u044E\u0441 `typeId`, `confirmItems: true` | \u0431\u0435\u0437 `params`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, status, changed, typeId? }` \u0438\u043B\u0438 `{ taskId, needsConfirmation: true, types }` |\n| `bitrix_task_reopen` \u26A0 | **\u0432\u043E\u0437\u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C** \u0437\u0430\u0432\u0435\u0440\u0448\u0451\u043D\u043D\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 | `taskIds[]` (1\u201350) | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u044F `status`, `changed` |\n| `bitrix_task_result_add` \u26A0 | \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043E\u0434\u0438\u043D \u0438 \u0442\u043E\u0442 \u0436\u0435 **\u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442** \u0437\u0430\u0434\u0430\u0447\u0430\u043C: \u0437\u0430\u043A\u0440\u0435\u043F\u043B\u0451\u043D \u0432 \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0435, \u0430\u043D\u043E\u043D\u0441 \u0432 \u0447\u0430\u0442\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 | `taskIds[]` (1\u201350), `text` (\u2264 20 000) | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442 (\u043D\u0438\u0436\u0435), \u043F\u043E\u043B\u0435 `resultId` |\n| `bitrix_task_file_attach` \u26A0 | \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u0438\u0442\u044C **\u043B\u043E\u043A\u0430\u043B\u044C\u043D\u044B\u0439 \u0444\u0430\u0439\u043B** \u043A \u0437\u0430\u0434\u0430\u0447\u0435, \xA75.8 | `taskId`, `path` (\u0430\u0431\u0441\u043E\u043B\u044E\u0442\u043D\u044B\u0439), `name?` | \u0431\u0435\u0437 `params`; \u0444\u0430\u0439\u043B \u2264 10 \u041C\u0411 \u0443\u0445\u043E\u0434\u0438\u0442 \u043D\u0430 \u0414\u0438\u0441\u043A \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F; \u043E\u0442\u0432\u0435\u0442 `{ taskId, diskFileId, name, size, attachmentId }` |\n| `bitrix_task_mute` \u26A0 | \u0432\u044B\u043A\u043B\u044E\u0447\u0438\u0442\u044C (`true`) / \u0432\u043A\u043B\u044E\u0447\u0438\u0442\u044C (`false`) **\u0441\u0432\u043E\u0438** \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u043F\u043E \u0437\u0430\u0434\u0430\u0447\u0435 | `taskId`, `muted` | \u0431\u0435\u0437 `params`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, muted }` |\n| `bitrix_task_reminders` | \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F \u043F\u043E \u0437\u0430\u0434\u0430\u0447\u0435, \xA75.9 | `taskId` | \u0431\u0435\u0437 `params` |\n| `bitrix_task_reminder_set` \u26A0 | \u043F\u043E\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u043D\u043E\u0432\u043E\u0435 **\u0441\u0432\u043E\u0451** \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 \u0438\u043B\u0438 \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0441\u0432\u043E\u0451 (`reminderId`) | `taskId`, `at` (\u0434\u0430\u0442\u0430 \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043C), `via` (`notification` \\| `email`), `reminderId?` | \u0431\u0435\u0437 `params`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, reminder }` |\n| `bitrix_task_reminder_delete` \u26A0 | \u0443\u0434\u0430\u043B\u0438\u0442\u044C **\u0441\u0432\u043E\u0451** \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 | `taskId`, `reminderId` | \u0431\u0435\u0437 `params`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, reminderId, deleted: true }` |\n| *\u0423\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u0437\u0430\u0434\u0430\u0447* | | | |\n| `bitrix_task_delegate` \u26A0 | **\u0434\u0435\u043B\u0435\u0433\u0438\u0440\u043E\u0432\u0430\u0442\u044C**: `userId` \u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0441\u044F \u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043D\u043D\u044B\u043C | `taskIds[]` (1\u201350), `userId` | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u0435 `responsibleId` (\u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u043D) |\n| `bitrix_task_accomplices` / `bitrix_task_auditors` \u26A0 | \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C / \u0443\u0431\u0440\u0430\u0442\u044C **\u0441\u043E\u0438\u0441\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u0435\u0439** / **\u043D\u0430\u0431\u043B\u044E\u0434\u0430\u0442\u0435\u043B\u0435\u0439** | `taskIds[]` (1\u201350), `add[]?`, `remove[]?` \u2014 userId | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u044F `accomplices` / `auditors` (\u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u043D\u044B), `changed` |\n| `bitrix_user_find` | \u043D\u0430\u0439\u0442\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u0439 \u043F\u043E \u0444\u0430\u043C\u0438\u043B\u0438\u0438 `[{ id, name, lastName, active, workPosition }]` | `lastName` | \u0431\u0435\u0437 `params`; \u0432 \u0432\u044B\u0434\u0430\u0447\u0435 \u0438 **\u043D\u0435\u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0435** (\u0443\u0432\u043E\u043B\u0435\u043D\u043D\u044B\u0435, `active: false`) \u2014 \u043D\u0435 \u043D\u0430\u0437\u043D\u0430\u0447\u0430\u0439 \u0438\u0445 \u043D\u0430 \u0440\u0430\u0431\u043E\u0447\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 |\n| *\u0421\u0432\u044F\u0437\u0438 \u0437\u0430\u0434\u0430\u0447* | | | |\n| `bitrix_task_related_edit` \u26A0 | \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C / \u0443\u0431\u0440\u0430\u0442\u044C **\u0441\u0432\u044F\u0437\u0430\u043D\u043D\u044B\u0435** \u0437\u0430\u0434\u0430\u0447\u0438 (\u0431\u043B\u043E\u043A \xAB\u0421\u0432\u044F\u0437\u0430\u043D\u043D\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438\xBB) | `taskId`, `add[]?`, `remove[]?` \u2014 id \u0437\u0430\u0434\u0430\u0447 | \u0431\u0435\u0437 `params`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, related, changed }`; \u0437\u0430\u0434\u0430\u0447\u0438 \u0441\u043E 100 \u0438 \u0431\u043E\u043B\u0435\u0435 \u0441\u0432\u044F\u0437\u0430\u043D\u043D\u044B\u043C\u0438 \u043D\u0435 \u043F\u0440\u0430\u0432\u044F\u0442\u0441\u044F |\n| `bitrix_task_parent` \u26A0 | \u0441\u0434\u0435\u043B\u0430\u0442\u044C **\u043F\u043E\u0434\u0437\u0430\u0434\u0430\u0447\u0435\u0439** \u0437\u0430\u0434\u0430\u0447\u0438 `parentId`; `null` \u2014 \u043E\u0442\u0432\u044F\u0437\u0430\u0442\u044C \u043E\u0442 \u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044F | `taskId`, `parentId` | \u0431\u0435\u0437 `params`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, parentId, previousParentId, changed }` |\n| `bitrix_task_gantt_link` \u26A0 | \u0441\u0432\u044F\u0437\u044C \u0413\u0430\u043D\u0442\u0430 \xAB\u043E\u043A\u043E\u043D\u0447\u0430\u043D\u0438\u0435 \u2192 \u043D\u0430\u0447\u0430\u043B\u043E\xBB: `dependentId` \u043D\u0430\u0447\u0438\u043D\u0430\u0435\u0442\u0441\u044F \u043F\u043E\u0441\u043B\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F `taskId` | `taskId`, `dependentId`, `remove?`, `type?` (\u0442\u043E\u043B\u044C\u043A\u043E `"finish_start"`, \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u0440\u0438 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u0438) | \u0431\u0435\u0437 `params`; \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u0443\u044E \u0441\u0432\u044F\u0437\u044C \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044C \u043D\u0435\u043B\u044C\u0437\u044F \u2014 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u043F\u043E \u043F\u0440\u0438\u0437\u043D\u0430\u043A\u0443 \xAB\u0443 `dependentId` \u0435\u0441\u0442\u044C \u0441\u0432\u044F\u0437\u0438 \u0413\u0430\u043D\u0442\u0430\xBB: `confirmed: true` \u2014 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u043E, `confirmed: false` + `note` \u2014 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044C \u043D\u0435\u043B\u044C\u0437\u044F (\u0443 \u0437\u0430\u0434\u0430\u0447\u0438 \u0431\u044B\u043B\u0438 / \u043E\u0441\u0442\u0430\u043B\u0438\u0441\u044C \u0434\u0440\u0443\u0433\u0438\u0435 \u0441\u0432\u044F\u0437\u0438); \u043D\u0435\u0442 \u0441\u0432\u044F\u0437\u0435\u0439 \u043F\u043E\u0441\u043B\u0435 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u2014 \u043E\u0448\u0438\u0431\u043A\u0430; \u043E\u0442\u0432\u0435\u0442 `{ taskId, dependentId, linked, confirmed, note? }` |\n| *Scrum* | | | |\n| `bitrix_sprint_columns` | \u043A\u043E\u043B\u043E\u043D\u043A\u0438 \u0434\u043E\u0441\u043A\u0438 **\u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0433\u043E** \u0441\u043F\u0440\u0438\u043D\u0442\u0430 `[{ id, name, type }]` | `groupId` (= `GROUP_ID` \u0437\u0430\u0434\u0430\u0447\u0438) | \u0431\u0435\u0437 `params`; `type` \u2014 `NEW`/`WORK`/`FINISH`, \u0443 \u0441\u0432\u043E\u0438\u0445 \u043A\u043E\u043B\u043E\u043D\u043E\u043A \u043F\u0443\u0441\u0442\u043E\u0439; \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0443 `FINISH` \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 \u043D\u0435 \u0441\u0442\u0430\u0432\u044F\u0442 |\n| `bitrix_task_move` \u26A0 | \u043F\u0435\u0440\u0435\u043D\u0435\u0441\u0442\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u0441\u043F\u0440\u0438\u043D\u0442\u0430 | `taskIds[]` (1\u201350), `column` (id \u0438\u043B\u0438 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435, \u0431\u0435\u0437 \u0443\u0447\u0451\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430) | \u0431\u0435\u0437 `params`; \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u0442\u0438\u043F\u0430 `FINISH` \u0443\u043A\u0430\u0437\u0430\u0442\u044C \u043D\u0435\u043B\u044C\u0437\u044F \u2014 \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0439 \u0447\u0435\u0440\u0435\u0437 `bitrix_task_close`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442 (\u043D\u0438\u0436\u0435), \u043F\u043E\u043B\u044F `stageId`, `column`, `status` \u2014 \u043F\u0435\u0440\u0435\u043D\u043E\u0441 \u043C\u043E\u0436\u0435\u0442 \u043F\u0435\u0440\u0435\u043E\u0442\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u043A\u0440\u044B\u0442\u0443\u044E \u0437\u0430\u0434\u0430\u0447\u0443 |\n| `bitrix_task_to_sprint` \u26A0 | \u043F\u043E\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0438 \u043D\u0430 \u0434\u043E\u0441\u043A\u0443 **\u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0433\u043E** \u0441\u043F\u0440\u0438\u043D\u0442\u0430: \u0438\u0437 \u0431\u044D\u043A\u043B\u043E\u0433\u0430 \u2014 \u0432 \u0441\u043F\u0440\u0438\u043D\u0442 \u0438 \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0443, \u0443\u0436\u0435 \u0441\u0442\u043E\u044F\u0449\u0438\u0435 \u0432 \u043D\u0451\u043C \u2014 \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0443 | `taskIds[]` (1\u201350), `column?` (\u0431\u0435\u0437 \u043D\u0435\u0433\u043E \u2014 \u043A\u043E\u043B\u043E\u043D\u043A\u0430 \u0442\u0438\u043F\u0430 `NEW`) | \u0431\u0435\u0437 `params`; \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u0442\u0438\u043F\u0430 `FINISH` \u0443\u043A\u0430\u0437\u0430\u0442\u044C \u043D\u0435\u043B\u044C\u0437\u044F \u2014 \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0439 \u0447\u0435\u0440\u0435\u0437 `bitrix_task_close`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u044F `sprintId`, `stageId`, `column`, `status`, `fromBacklog`; \u0437\u0430\u0434\u0430\u0447\u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u043F\u0440\u0438\u043D\u0442\u043E\u0432 \u2014 \u043E\u0448\u0438\u0431\u043A\u0430 |\n| `bitrix_task_to_backlog` \u26A0 | \u0432\u0435\u0440\u043D\u0443\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 **\u0431\u044D\u043A\u043B\u043E\u0433** \u043F\u0440\u043E\u0435\u043A\u0442\u0430 | `taskIds[]` (1\u201350) | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u044F `backlogId`, `changed` |\n| `bitrix_task_create` \u26A0 | **\u0441\u043E\u0437\u0434\u0430\u0442\u044C** \u0437\u0430\u0434\u0430\u0447\u0443 \u0441\u0440\u0430\u0437\u0443 \u043D\u0430 \u0434\u043E\u0441\u043A\u0435 \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0433\u043E \u0441\u043F\u0440\u0438\u043D\u0442\u0430, \u043A\u0430\u043A \xAB+\xBB \u043D\u0430 \u0434\u043E\u0441\u043A\u0435 | `groupId`, `title` (\u2264 255, \u043F\u0440\u043E\u0441\u0442\u043E\u0439 \u0442\u0435\u043A\u0441\u0442), `column?` (\u0431\u0435\u0437 \u043D\u0435\u0433\u043E \u2014 \u043A\u043E\u043B\u043E\u043D\u043A\u0430 \u0442\u0438\u043F\u0430 `NEW`) | \u0431\u0435\u0437 `params`; \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u0442\u0438\u043F\u0430 `FINISH` \u0443\u043A\u0430\u0437\u0430\u0442\u044C \u043D\u0435\u043B\u044C\u0437\u044F; \u043E\u0442\u0432\u0435\u0442 `{ taskId, sprintId, stageId, column }`; \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u044B\u0435 \u043F\u043E\u043B\u044F \u2014 \u043F\u043E\u0442\u043E\u043C \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u044B\u043C\u0438 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F\u043C\u0438 |\n| *\u041F\u0440\u043E\u0435\u043A\u0442\u044B* | | | |\n| `bitrix_projects_list` | \u0440\u0430\u0431\u043E\u0447\u0438\u0435 \u0433\u0440\u0443\u043F\u043F\u044B / \u043F\u0440\u043E\u0435\u043A\u0442\u044B | + `params` | \u0432\u0435\u0440\u0445\u043D\u0438\u0439 \u0443\u0440\u043E\u0432\u0435\u043D\u044C: `select[]`, `order{}`, `filter{}`; `start` (\u0448\u0430\u0433 50; `start=(N-1)*50`, `-1` \u2014 \u043E\u0442\u0432\u0435\u0442 \u0431\u0435\u0437 `total`) \u{1F4D6} |\n| `bitrix_project_get` | \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0433\u0440\u0443\u043F\u043F\u044B (\u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438, `CHAT_ID`) | `groupId` + `params` | **\u043E\u0431\u0451\u0440\u043D\u0443\u0442\u043E**: `params[groupId]`, `params[select][]` |\n| *\u0427\u0430\u0442\u044B* | | | |\n| `bitrix_chats_recent` | \u043D\u0435\u0434\u0430\u0432\u043D\u0438\u0435 \u0434\u0438\u0430\u043B\u043E\u0433\u0438 (\u0431\u0435\u0437 \u0447\u0430\u0442\u043E\u0432 \u0437\u0430\u0434\u0430\u0447) | + `params` | \u043F\u043B\u043E\u0441\u043A\u043E: `LIMIT`, `SKIP_OPENLINES`, `UNREAD_ONLY` |\n| `bitrix_recent_load` | \u043D\u0435\u0434\u0430\u0432\u043D\u0438\u0435 \u043F\u043E \u0441\u0435\u043A\u0446\u0438\u0438 (`tasksTask` \u2014 \u0447\u0430\u0442\u044B \u0437\u0430\u0434\u0430\u0447) | `section?`, `limit?`, `unread?`, `parentId?` + `params` | \u0434\u0430\u043B\u044C\u0448\u0435 \u2014 `bitrix_recent_tail` |\n| `bitrix_recent_tail` | \u043B\u0438\u0441\u0442\u0430\u0442\u044C \u043D\u0435\u0434\u0430\u0432\u043D\u0438\u0435 \u0432\u0433\u043B\u0443\u0431\u044C | `lastMessageDate` (\u043A\u0443\u0440\u0441\u043E\u0440), `section?`, `limit?`, `unread?` + `params` | `lastMessageDate` |\n| `bitrix_chat_load` | \u043E\u0442\u043A\u0440\u044B\u0442\u044C \u0447\u0430\u0442, \u043F\u0435\u0440\u0432\u044B\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F, \u0447\u0438\u0441\u043B\u043E\u0432\u043E\u0439 `chatId` | `dialogId` \\| `chatId`, `messageLimit?` + `params` | \u2014 |\n| `bitrix_chat_get_dialog_id` | `externalId` \u2192 `dialogId` (\u043D\u0430\u043F\u0440. `"sg"+groupId`) | `externalId` + `params` | \u2014 |\n| `bitrix_chat_messages` | \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u0447\u0430\u0442\u0430 | `chatId`, `limit?` + `params` | \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u044F\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430 \u2014 \u043D\u0430\u0437\u0430\u0434 **\u043D\u0435 \u043B\u0438\u0441\u0442\u0430\u0435\u0442**, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439 `bitrix_chat_history` |\n| `bitrix_chat_history` | \u043B\u0438\u0441\u0442\u0430\u0442\u044C \u0438\u0441\u0442\u043E\u0440\u0438\u044E \u0447\u0430\u0442\u0430 \u0432\u0433\u043B\u0443\u0431\u044C | `chatId`, `beforeId?`, `limit?` + `params` | `beforeId` (\xA75.1) |\n| `bitrix_chat_mark_read` \u26A0 | \u043F\u043E\u043C\u0435\u0442\u0438\u0442\u044C \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u043C\u0438 | `chatId`, `ids[]`, `actionUuid?` + `params` | \u2014 |\n| `bitrix_chat_read_all` \u26A0 | \u043F\u043E\u043C\u0435\u0442\u0438\u0442\u044C **\u0432\u0441\u0435** \u0447\u0430\u0442\u044B \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u043C\u0438 | + `params` | \u2014 |\n| `bitrix_chat_send` \u26A0 | \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 (\u0432\u0438\u0434\u044F\u0442 \u0432\u0441\u0435 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u0447\u0430\u0442\u0430) | `chatId` \\| `dialogId` (\u0440\u043E\u0432\u043D\u043E \u043E\u0434\u043D\u043E), `text` (\u2264 20 000), `replyTo?` (id \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u044D\u0442\u043E\u0433\u043E \u0447\u0430\u0442\u0430 \u2014 \u043E\u0442\u0432\u0435\u0442 \u043D\u0430 \u043D\u0435\u0433\u043E) | \u0431\u0435\u0437 `params`; \u0440\u0430\u0437\u043C\u0435\u0442\u043A\u0430 \u2014 \u043F\u043E\u0434\u043C\u043D\u043E\u0436\u0435\u0441\u0442\u0432\u043E \u0447\u0430\u0442\u0430 (\u043D\u0438\u0436\u0435); \u043E\u0442\u0432\u0435\u0442 `{ chatId?, dialogId, messageId }` |\n| `bitrix_chat_message_edit` \u26A0 | \u0437\u0430\u043C\u0435\u043D\u0438\u0442\u044C \u0442\u0435\u043A\u0441\u0442 **\u0441\u0432\u043E\u0435\u0433\u043E** \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u0446\u0435\u043B\u0438\u043A\u043E\u043C | `messageId`, `text` (\u2264 20 000, \u043D\u0435 \u043F\u0443\u0441\u0442\u043E\u0439) | \u0431\u0435\u0437 `params`; \u0447\u0443\u0436\u043E\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 Bitrix \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u043D\u0435 \u0434\u0430\u0441\u0442 \u2014 \u043E\u0448\u0438\u0431\u043A\u0430 |\n| `bitrix_chat_reaction` \u26A0 | \u043F\u043E\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0440\u0435\u0430\u043A\u0446\u0438\u044E \u043D\u0430 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 | `messageId`, `reaction` (\u043B\u0430\u0442\u0438\u043D\u0438\u0446\u0430; \u043F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u044B `like` \u{1F44D}, `whiteHeavyCheckMark` \u2705) | \u0431\u0435\u0437 `params`; \u0434\u0440\u0443\u0433\u0438\u0435 \u0438\u043C\u0435\u043D\u0430 \u0443\u0445\u043E\u0434\u044F\u0442 \u043A\u0430\u043A \u0435\u0441\u0442\u044C, \u0431\u0435\u0437 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438 |\n| `bitrix_task_chat_post` \u26A0 | \u043E\u0434\u043D\u043E \u0438 \u0442\u043E \u0436\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u0432 **\u0447\u0430\u0442\u044B \u0437\u0430\u0434\u0430\u0447** (\u0447\u0430\u0442 \u043A\u0430\u0436\u0434\u043E\u0439 \u2014 \u043F\u043E \u0435\u0451 `CHAT_ID`) | `taskIds[]` (1\u201350), `text` (\u2264 20 000) | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u044F `chatId`, `messageId`; \u0437\u0430\u0434\u0430\u0447\u0430 \u0431\u0435\u0437 \u0447\u0430\u0442\u0430 \u2014 \u043E\u0448\u0438\u0431\u043A\u0430 \u044D\u0442\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 |\n| *\u041B\u044E\u0434\u0438 / \u043F\u043E\u0438\u0441\u043A* | | | |\n| `bitrix_user_get` | \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043C\u0435\u0441\u0441\u0435\u043D\u0434\u0436\u0435\u0440\u0430 | `userId` + `params` | \u2014 |\n| `bitrix_entity_search` | \u0442\u0435\u043A\u0441\u0442\u043E\u0432\u044B\u0439 \u043F\u043E\u0438\u0441\u043A \u0447\u0430\u0442\u043E\u0432 / \u043B\u044E\u0434\u0435\u0439 | `query`, `section?`, `dialog?` + `params` | \u2014 |\n| `bitrix_entity_selector` | \u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0430 entityselector \u0441\u043E \u0441\u0432\u043E\u0438\u043C `dialog` | `dialog` + `params` | `{"dialog":{entities,preselectedItems,\u2026}}` |\n| `bitrix_entity_chat` | `chatId` \u0447\u0430\u0442\u0430, \u043F\u0440\u0438\u0432\u044F\u0437\u0430\u043D\u043D\u043E\u0433\u043E \u043A \u043E\u0431\u044A\u0435\u043A\u0442\u0443 | `entityType`, `entityId` + `params` | \u2014 |\n| *\u0421\u043E\u0437\u0432\u043E\u043D\u044B \u0438 \u0444\u0430\u0439\u043B\u044B* | | | |\n| `bitrix_chat_calls` | \u0437\u0432\u043E\u043D\u043A\u0438 \u0432 \u0447\u0430\u0442\u0435 (`callId` + \u0440\u0435\u0437\u044E\u043C\u0435), \xA75.4 | `chatId`, `limit?`, `maxPages?`, `beforeId?` + `params` | `beforeId` \u2014 \u043A\u0443\u0440\u0441\u043E\u0440 |\n| `bitrix_call_detail` | \u0432\u0441\u0451 \u043F\u043E \u0437\u0432\u043E\u043D\u043A\u0443, \xA75.4 | `callId`, `transcript?` + `params` | \u2014 |\n| `bitrix_call_recording` | \u0441\u043A\u0430\u0447\u0430\u0442\u044C \u0430\u0443\u0434\u0438\u043E\u0437\u0430\u043F\u0438\u0441\u044C \u0437\u0432\u043E\u043D\u043A\u0430, \xA75.5 | `callId`, `savePath?`, `overwrite?` | \u2014 |\n| `bitrix_file_download` | \u0441\u043A\u0430\u0447\u0430\u0442\u044C \u0444\u0430\u0439\u043B \u043F\u043E\u0440\u0442\u0430\u043B\u0430 \u043D\u0430 \u0434\u0438\u0441\u043A, \xA75.5 | `url`, `savePath?`, `overwrite?` | \u2014 |\n\n**\u041C\u0443\u0442\u0438\u0440\u0443\u044E\u0449\u0438\u0435 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438** (\u26A0) \u2014 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u044B:\n\n- \u0437\u0430\u0434\u0430\u0447\u0438: `bitrix_task_description_set`, `bitrix_task_description_append`,\n `bitrix_task_description_replace`, `bitrix_task_tags`, `bitrix_task_checklist_edit`, `bitrix_task_plan`,\n `bitrix_task_priority`, `bitrix_task_deadline`, `bitrix_task_close`, `bitrix_task_reopen`,\n `bitrix_task_result_add`, `bitrix_task_file_attach`, `bitrix_task_mute`, `bitrix_task_reminder_set`,\n `bitrix_task_reminder_delete`;\n- \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438: `bitrix_task_delegate`, `bitrix_task_accomplices`, `bitrix_task_auditors`;\n- \u0441\u0432\u044F\u0437\u0438: `bitrix_task_related_edit`, `bitrix_task_parent`, `bitrix_task_gantt_link`;\n- scrum: `bitrix_task_move`, `bitrix_task_to_sprint`, `bitrix_task_to_backlog`, `bitrix_task_create`;\n- \u0447\u0430\u0442\u044B: `bitrix_chat_send`, `bitrix_chat_message_edit`, `bitrix_chat_reaction`, `bitrix_task_chat_post`,\n `bitrix_chat_mark_read`, `bitrix_chat_read_all`.\n\n\u0412\u044B\u043A\u043B\u044E\u0447\u0430\u0435\u0442 \u0438\u0445 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C (\u0430\u0433\u0435\u043D\u0442\u0443 \u044D\u0442\u043E \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u043E): `"mutations": false` \u0432 `config.json` \u043C\u043E\u0441\u0442\u0430, env\n`BITRIX_MCP_MUTATIONS=off` \u0443 \u043F\u0440\u043E\u0446\u0435\u0441\u0441\u0430 daemon (\u043F\u0435\u0440\u0435\u043A\u0440\u044B\u0432\u0430\u0435\u0442 `config.json`) \u0438\u043B\u0438 `setup` \u2192 `[m]`. \u0422\u0435\u043A\u0443\u0449\u0435\u0435\n\u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u2014 `bitrix_status` \u2192 `mutations`; \u0432\u044B\u043A\u043B\u044E\u0447\u0435\u043D\u043D\u0430\u044F \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F \u043E\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u043E\u0448\u0438\u0431\u043A\u043E\u0439 \u0438\u0437 \xA71 \u0438 \u0432 Bitrix24 \u043D\u0435\n\u0443\u0445\u043E\u0434\u0438\u0442. `bitrix_task_comments` \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u043F\u043E\u043C\u0435\u0447\u0430\u0435\u0442 \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u043C \u0438 \u043C\u0443\u0442\u0438\u0440\u0443\u044E\u0449\u0438\u043C \u043D\u0435 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044F.\n\n**\u041A\u0430\u0436\u0434\u0430\u044F \u043C\u0443\u0442\u0430\u0446\u0438\u044F \u2014 \u043E\u0442 \u0438\u043C\u0435\u043D\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F, \u0441\u0440\u0430\u0437\u0443 \u0438 \u0431\u0435\u0437 \u043E\u0442\u043C\u0435\u043D\u044B.** \u0414\u0435\u043B\u0430\u0439 \u0442\u043E\u043B\u044C\u043A\u043E \u0442\u043E, \u043E \u0447\u0451\u043C \u043E\u043D \u043F\u0440\u043E\u0441\u0438\u043B; \u0435\u0441\u043B\u0438\n\u043F\u0440\u043E\u0441\u044C\u0431\u0430 \u0448\u0438\u0440\u0435 \u0438\u043B\u0438 \u043D\u0435\u043E\u0434\u043D\u043E\u0437\u043D\u0430\u0447\u043D\u0430 (\u043A\u043E\u0433\u043E \u043D\u0430\u0437\u043D\u0430\u0447\u0438\u0442\u044C, \u043A\u0430\u043A\u0443\u044E \u0437\u0430\u0434\u0430\u0447\u0443 \u0437\u0430\u043A\u0440\u044B\u0442\u044C, \u043A\u0430\u043A\u043E\u0439 \u0444\u0430\u0439\u043B \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C) \u2014 \u0441\u043D\u0430\u0447\u0430\u043B\u0430\n\u0441\u043F\u0440\u043E\u0441\u0438. \u0423\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0435, \u0443\u0448\u0435\u0434\u0448\u0435\u0435 \u0447\u0435\u043B\u043E\u0432\u0435\u043A\u0443, \u043D\u0435 \u043E\u0442\u0437\u044B\u0432\u0430\u0435\u0442\u0441\u044F.\n\n**\u041F\u0430\u043A\u0435\u0442\u043D\u044B\u0435 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438** (`taskIds[]`, 1\u201350 id \u0431\u0435\u0437 \u043F\u043E\u0432\u0442\u043E\u0440\u043E\u0432: `bitrix_task_tags`, `bitrix_task_priority`,\n`bitrix_task_deadline`, `bitrix_task_reopen`, `bitrix_task_result_add`, `bitrix_task_delegate`,\n`bitrix_task_accomplices`, `bitrix_task_auditors`, `bitrix_task_move`, `bitrix_task_to_sprint`,\n`bitrix_task_to_backlog`, `bitrix_task_chat_post`) \u043E\u0431\u0440\u0430\u0431\u0430\u0442\u044B\u0432\u0430\u044E\u0442 \u0437\u0430\u0434\u0430\u0447\u0438 \u043F\u043E \u043E\u0447\u0435\u0440\u0435\u0434\u0438 \u0438 \u043E\u0442\u0432\u0435\u0447\u0430\u044E\u0442\n`{ results: [{ taskId, ok, error?, \u2026\u043F\u043E\u043B\u044F \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 }] }` \u0432 \u043F\u043E\u0440\u044F\u0434\u043A\u0435 `taskIds`. \u041E\u0448\u0438\u0431\u043A\u0430 \u043E\u0434\u043D\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438\n(`ok: false`, \u0442\u0435\u043A\u0441\u0442 \u0432 `error`) \u043D\u0435 \u043E\u0441\u0442\u0430\u043D\u0430\u0432\u043B\u0438\u0432\u0430\u0435\u0442 \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u044B\u0435 \u2014 \u043F\u0440\u043E\u0432\u0435\u0440\u044F\u0439 `ok` \u0443 \u043A\u0430\u0436\u0434\u043E\u0439. \u0421\u0430\u043C\u0430 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F\n\u043F\u0430\u0434\u0430\u0435\u0442 \u0446\u0435\u043B\u0438\u043A\u043E\u043C \u0442\u043E\u043B\u044C\u043A\u043E \u043D\u0430 \u043D\u0435\u0432\u0435\u0440\u043D\u044B\u0445 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u0430\u0445 (\u0438 \u043D\u0430 \u043A\u043E\u043B\u043E\u043D\u043A\u0435 \u0442\u0438\u043F\u0430 `FINISH` \u0443 `bitrix_task_move` /\n`_to_sprint` \u2014 \u0442\u043E\u0433\u0434\u0430 \u043D\u0435 \u0442\u0440\u043E\u043D\u0443\u0442\u0430 \u043D\u0438 \u043E\u0434\u043D\u0430 \u0437\u0430\u0434\u0430\u0447\u0430). \u0411\u043B\u0438\u0436\u0435 \u043A \u043A\u043E\u043D\u0446\u0443 \u043E\u0442\u0432\u0435\u0434\u0451\u043D\u043D\u043E\u0433\u043E \u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u043F\u0430\u043A\u0435\u0442 \u043F\u0435\u0440\u0435\u0441\u0442\u0430\u0451\u0442\n\u043D\u0430\u0447\u0438\u043D\u0430\u0442\u044C \u043D\u043E\u0432\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438: \u043E\u043D\u0438 \u043F\u0440\u0438\u0445\u043E\u0434\u044F\u0442 \u0441 `ok: false` \u0438 \xAB\u043D\u0435 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043E: \u0438\u0441\u0442\u0435\u043A\u043B\u043E \u0432\u0440\u0435\u043C\u044F \u043F\u0430\u043A\u0435\u0442\u0430\u2026\xBB \u2014 \u043F\u043E\u0432\u0442\u043E\u0440\u0438\n\u0442\u043E\u043B\u044C\u043A\u043E \u0438\u0445, \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0432 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435. \u0420\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u044B \u0438 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u043D\u0435\u0438\u0434\u0435\u043C\u043F\u043E\u0442\u0435\u043D\u0442\u043D\u044B: \u043F\u043E\u0432\u0442\u043E\u0440 \u0441\u043E\u0437\u0434\u0430\u0441\u0442 \u0434\u0443\u0431\u043B\u044C.\n\n**\u041E\u0448\u0438\u0431\u043A\u0430 \u043F\u043E\u0441\u043B\u0435 \u0437\u0430\u043F\u0438\u0441\u0438 \u2014 \u043D\u0435 \u043F\u043E\u0432\u043E\u0434 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u0442\u044C \u0432\u0441\u043B\u0435\u043F\u0443\u044E.** \u0411\u043E\u043B\u044C\u0448\u0438\u043D\u0441\u0442\u0432\u043E \u043C\u0443\u0442\u0430\u0446\u0438\u0439 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u044E\u0442 \u0442\u043E, \u0447\u0442\u043E\n\u0437\u0430\u043F\u0438\u0441\u0430\u043B\u0438, \u0438 \u043F\u043E \u0442\u0435\u043A\u0441\u0442\u0443 \u043E\u0448\u0438\u0431\u043A\u0438 \u0432\u0438\u0434\u043D\u043E, \u0447\u0442\u043E \u0441\u043B\u0443\u0447\u0438\u043B\u043E\u0441\u044C:\n\n- \xAB\u2026\u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043E / \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0437\u0430\u043F\u0438\u0441\u0430\u043D\u043E / \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0443\u0434\u0430\u043B\u0435\u043D\u043E\xBB, \u043E\u0448\u0438\u0431\u043A\u0438 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u043E\u0432\n (`invalid arguments\u2026`) \u2014 \u0437\u0430\u043F\u0440\u043E\u0441\u0430 \u043D\u0430 \u0437\u0430\u043F\u0438\u0441\u044C \u043D\u0435 \u0431\u044B\u043B\u043E; \u043F\u043E\u043F\u0440\u0430\u0432\u044C \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u044B \u0438 \u0432\u044B\u0437\u044B\u0432\u0430\u0439 \u0441\u043D\u043E\u0432\u0430.\n- \xAB\u0437\u0430\u043F\u0438\u0441\u044C \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0430, \u043D\u043E \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0442\u044C \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C (\u043F\u0440\u043E\u0432\u0435\u0440\u044C \u0447\u0435\u0440\u0435\u0437 \u2026)\xBB \u0438 \u0435\u0433\u043E \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u044B (\xAB\u043F\u0435\u0440\u0435\u043D\u043E\u0441 /\n \u0434\u0435\u043B\u0435\u0433\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 / \u0437\u0430\u043A\u0440\u044B\u0442\u0438\u0435 / \u0432\u043E\u0437\u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u043E, \u043D\u043E \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C\xBB) \u2014 \u0437\u0430\u043F\u0438\u0441\u044C \u0443\u0448\u043B\u0430,\n \u0430 \u0438\u0442\u043E\u0433 \u043D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043D: \u043F\u0440\u043E\u0432\u0435\u0440\u044C \u043D\u0430\u0437\u0432\u0430\u043D\u043D\u044B\u043C \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u043C, \u043D\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u0439.\n- \xAB\u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u043C\u043E\u0433\u043B\u043E \u0443\u0439\u0442\u0438\xBB, \xAB\u0437\u0430\u0434\u0430\u0447\u0430 \u043C\u043E\u0433\u043B\u0430 \u0441\u043E\u0437\u0434\u0430\u0442\u044C\u0441\u044F\xBB, \xAB\u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442 \u043C\u043E\u0433 \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C\u0441\u044F\xBB, \xAB\u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u043C\u043E\u0433\u043B\u043E\n \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C\u0441\u044F\xBB, \xAB\u0444\u0430\u0439\u043B \u043C\u043E\u0433 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C\u0441\u044F \u043D\u0430 \u0414\u0438\u0441\u043A\xBB, \xAB\u0432\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u043C\u043E\u0433\u043B\u043E \u0441\u043E\u0437\u0434\u0430\u0442\u044C\u0441\u044F\xBB, \xAB\u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 \u043C\u043E\u0433\u043B\u043E \u0441\u043E\u0437\u0434\u0430\u0442\u044C\u0441\u044F\xBB \u2014\n \u043F\u043E\u0440\u0442\u0430\u043B \u043C\u043E\u0433 \u0432\u0441\u0451 \u0441\u0434\u0435\u043B\u0430\u0442\u044C, \u043D\u043E \u043E\u0442\u0432\u0435\u0442\u0430 \u043D\u0435 \u0434\u0430\u043B (\u0442\u0430\u0439\u043C\u0430\u0443\u0442, \u043D\u0435\u043E\u0436\u0438\u0434\u0430\u043D\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442): \u0441\u043D\u0430\u0447\u0430\u043B\u0430 \u043F\u0440\u043E\u0432\u0435\u0440\u044C (\u0447\u0430\u0442, \u0434\u043E\u0441\u043A\u0430\n \u0441\u043F\u0440\u0438\u043D\u0442\u0430, \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0437\u0430\u0434\u0430\u0447\u0438, `bitrix_task_get_v2`, \u0414\u0438\u0441\u043A, \u0444\u0430\u0439\u043B\u044B \u0437\u0430\u0434\u0430\u0447\u0438, `bitrix_task_reminders`), \u043F\u043E\u0432\u0442\u043E\u0440 \u0431\u0435\u0437\n \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438 \u0441\u043E\u0437\u0434\u0430\u0441\u0442 \u0434\u0443\u0431\u043B\u044C (\u0430 `bitrix_task_description_append` \u0434\u043E\u043F\u0438\u0448\u0435\u0442 \u0442\u0435\u043A\u0441\u0442 \u0432\u0442\u043E\u0440\u043E\u0439 \u0440\u0430\u0437).\n- \xABBitrix \u043E\u0442\u0432\u0435\u0442\u0438\u043B \u0443\u0441\u043F\u0435\u0445\u043E\u043C, \u043D\u043E \u2026\xBB, \xABBitrix \u043D\u0435 \u043F\u0440\u0438\u043C\u0435\u043D\u0438\u043B: \u2026\xBB \u2014 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u043D\u043D\u043E\u0435 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u043D\u0435 \u0442\u043E, \u0447\u0442\u043E \u043F\u0440\u043E\u0441\u0438\u043B\u0438; \u0432\n \u043E\u0448\u0438\u0431\u043A\u0435 \u2014 \u043A\u0430\u043A \u0441\u0435\u0439\u0447\u0430\u0441. \u041D\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u0439 \u0442\u043E\u0442 \u0436\u0435 \u0432\u044B\u0437\u043E\u0432 \u0432\u0441\u043B\u0435\u043F\u0443\u044E \u2014 \u0441\u043A\u0430\u0436\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E.\n- \u041C\u043D\u043E\u0433\u043E\u0448\u0430\u0433\u043E\u0432\u044B\u0435 \u043F\u0440\u0430\u0432\u043A\u0438 \u043D\u0430\u0437\u044B\u0432\u0430\u044E\u0442, \u0447\u0442\u043E \u0443\u0436\u0435 \u0441\u0434\u0435\u043B\u0430\u043D\u043E: `bitrix_task_checklist_edit` \u2014 \xAB\u0434\u043E \u044D\u0442\u043E\u0433\u043E \u0441\u0434\u0435\u043B\u0430\u043D\u043E: \u2026\xBB,\n `bitrix_task_parent` \u2014 \u043F\u0440\u0435\u0436\u043D\u0435\u0433\u043E \u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044F \u0438 \u0432\u044B\u0437\u043E\u0432, \u043A\u043E\u0442\u043E\u0440\u044B\u043C \u0435\u0433\u043E \u0432\u0435\u0440\u043D\u0443\u0442\u044C, `bitrix_task_to_sprint` \u2014 \xAB\u0432\u0435\u0440\u043D\u0438\n \u0435\u0451 \u0432 \u0431\u044D\u043A\u043B\u043E\u0433 (`bitrix_task_to_backlog`) \u0438 \u043F\u043E\u0432\u0442\u043E\u0440\u0438\xBB.\n\n**\u0421\u043F\u0438\u0441\u043A\u0438 \u0446\u0435\u043B\u0438\u043A\u043E\u043C.** \u0421\u043E\u0438\u0441\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u0435\u0439, \u043D\u0430\u0431\u043B\u044E\u0434\u0430\u0442\u0435\u043B\u0435\u0439, \u0442\u0435\u0433\u0438 \u0438 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 Bitrix \u0445\u0440\u0430\u043D\u0438\u0442 \u0438 \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0438\u0441\u044B\u0432\u0430\u0435\u0442\n\u0446\u0435\u043B\u0438\u043A\u043E\u043C, \u043F\u043E\u044D\u0442\u043E\u043C\u0443 `bitrix_task_accomplices`, `bitrix_task_auditors`, `bitrix_task_tags`,\n`bitrix_task_description_append` / `_replace` \u0441\u0430\u043C\u0438 \u0447\u0438\u0442\u0430\u044E\u0442 \u0442\u0435\u043A\u0443\u0449\u0435\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 **\u043A\u0430\u0436\u0434\u043E\u0439** \u0437\u0430\u0434\u0430\u0447\u0438, \u043C\u0435\u043D\u044F\u044E\u0442 \u0432 \u043D\u0451\u043C\n\u0442\u043E\u043B\u044C\u043A\u043E \u043D\u0430\u0437\u0432\u0430\u043D\u043D\u043E\u0435 \u0438 \u0437\u0430\u043F\u0438\u0441\u044B\u0432\u0430\u044E\u0442 \u043E\u0431\u0440\u0430\u0442\u043D\u043E; \u0435\u0441\u043B\u0438 \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044C \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u2014 \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u043F\u0438\u0448\u0443\u0442. \u041F\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0439 \u0442\u043E\u043B\u044C\u043A\u043E\n`add` / `remove` (\u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442, \u0434\u043E\u043F\u0438\u0441\u043A\u0443), \u0430 \u043D\u0435 \u0432\u0435\u0441\u044C \u0441\u043F\u0438\u0441\u043E\u043A; \u0435\u0441\u043B\u0438 \u043C\u0435\u043D\u044F\u0442\u044C \u043D\u0435\u0447\u0435\u0433\u043E \u2014 `changed: false`, \u0437\u0430\u043F\u0438\u0441\u0438 \u043D\u0435\u0442.\n\u0422\u0430\u043A \u0436\u0435 `bitrix_task_related_edit` \u0434\u043E\u0431\u0430\u0432\u043B\u044F\u0435\u0442 \u0438 \u0443\u0431\u0438\u0440\u0430\u0435\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u043D\u0430\u0437\u0432\u0430\u043D\u043D\u044B\u0435 \u0441\u0432\u044F\u0437\u0438, \u0430 `bitrix_task_plan`\n\u0441\u043E\u0445\u0440\u0430\u043D\u044F\u0435\u0442 \u043D\u0435\u043F\u0435\u0440\u0435\u0434\u0430\u043D\u043D\u0443\u044E \u0434\u0430\u0442\u0443. `bitrix_task_description_set` \u2014 \u0435\u0434\u0438\u043D\u0441\u0442\u0432\u0435\u043D\u043D\u0430\u044F, \u0447\u0442\u043E \u0437\u0430\u043C\u0435\u043D\u044F\u0435\u0442 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u0446\u0435\u043B\u0438\u043A\u043E\u043C.\n\n**\u041A\u0442\u043E \u044D\u0442\u043E \u0443\u0432\u0438\u0434\u0438\u0442 \u0438 \u043A\u043E\u0433\u043E \u0443\u0432\u0435\u0434\u043E\u043C\u044F\u0442.**\n\n| \u041E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 | \u0412\u0438\u0434\u044F\u0442 | \u0423\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0435 |\n|---|---|---|\n| `bitrix_chat_send`, `bitrix_task_chat_post` | \u0432\u0441\u0435 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u0447\u0430\u0442\u0430 | \u0443\u043F\u043E\u043C\u044F\u043D\u0443\u0442\u044B\u043C `[user=ID]\u0418\u043C\u044F[/user]` |\n| `bitrix_chat_message_edit`, `bitrix_chat_reaction` | \u0432\u0441\u0435 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u0447\u0430\u0442\u0430 | \u043D\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043E (\u043D\u043E\u0432\u043E\u0435 \u0443\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 \u043F\u0440\u0438 \u043F\u0440\u0430\u0432\u043A\u0435; \u0430\u0432\u0442\u043E\u0440\u0443 \u2014 \u043E \u0440\u0435\u0430\u043A\u0446\u0438\u0438) |\n| `bitrix_task_delegate` | \u0438\u0441\u0442\u043E\u0440\u0438\u044F \u0437\u0430\u0434\u0430\u0447\u0438 | \u043D\u043E\u0432\u043E\u043C\u0443 \u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u043C\u0443 |\n| `bitrix_task_accomplices`, `bitrix_task_auditors` | \u0438\u0441\u0442\u043E\u0440\u0438\u044F \u0437\u0430\u0434\u0430\u0447\u0438 | \u043A\u0430\u0436\u0434\u043E\u043C\u0443 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u043D\u043E\u043C\u0443 |\n| `bitrix_task_close`, `bitrix_task_reopen` | \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 | \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0430\u043C \u0437\u0430\u0434\u0430\u0447\u0438 |\n| `bitrix_task_result_add` | \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0437\u0430\u0434\u0430\u0447\u0438; \u0430\u043D\u043E\u043D\u0441 \u0432 \u0435\u0451 \u0447\u0430\u0442\u0435 \u0432\u0438\u0434\u044F\u0442 \u0432\u0441\u0435 \u0435\u0433\u043E \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 | \u2014 |\n| \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435, \u0442\u0435\u0433\u0438, \u0432\u0430\u0436\u043D\u043E\u0441\u0442\u044C, \u0441\u0440\u043E\u043A, \u043F\u043B\u0430\u043D\u0438\u0440\u0443\u0435\u043C\u044B\u0435 \u0434\u0430\u0442\u044B | \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443; \u0438\u0441\u0442\u043E\u0440\u0438\u044F \u0437\u0430\u0434\u0430\u0447\u0438 | \u2014 |\n| `bitrix_task_checklist_edit`, \u0441\u0432\u044F\u0437\u0438, \u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044C, \u0441\u0432\u044F\u0437\u044C \u0413\u0430\u043D\u0442\u0430 | \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 | \u2014 |\n| `bitrix_task_file_attach` | \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 (\u0438 \u043C\u043E\u0433\u0443\u0442 \u0441\u043A\u0430\u0447\u0430\u0442\u044C) | \u2014 |\n| `bitrix_task_create`, `bitrix_task_move`, `_to_sprint`, `_to_backlog` | \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u043F\u0440\u043E\u0435\u043A\u0442\u0430 \u043D\u0430 scrum-\u0434\u043E\u0441\u043A\u0435 | \u2014 |\n| `bitrix_task_mute`, \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F | **\u0442\u043E\u043B\u044C\u043A\u043E \u0442\u044B** | \u0442\u043E\u043B\u044C\u043A\u043E \u0442\u0435\u0431\u0435 (\u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F) |\n\n\xAB\u2014\xBB \u2014 \u043D\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043E: \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F \u043E\u0431 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F\u0445 \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442, \u043D\u043E Bitrix \u043C\u043E\u0436\u0435\u0442 \u0441\u0430\u043C \u0441\u043B\u0430\u0442\u044C\n\u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0430\u043C \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u043E\u0431 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438. \u0427\u0430\u0442 \u0437\u0430\u0434\u0430\u0447\u0438 \u2014 `CHAT_ID` \u0438\u0437 `bitrix_task_get` (\u0438\u043B\u0438\n`bitrix_entity_chat { entityType:"TASKS_TASK" }`). userId \u0434\u043B\u044F \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u043E\u0432 \u2014 `bitrix_user_find` (\u043F\u043E\n\u0444\u0430\u043C\u0438\u043B\u0438\u0438) \u0438\u043B\u0438 \u043F\u043E\u043B\u044F \u0437\u0430\u0434\u0430\u0447\u0438; \u043B\u044E\u0434\u0435\u0439 \u0438\u0437 \u0432\u044B\u0434\u0430\u0447\u0438 `bitrix_user_find` \u0441 `active: false` \u043D\u0430 \u0440\u0430\u0431\u043E\u0447\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043D\u0435\n\u043D\u0430\u0437\u043D\u0430\u0447\u0430\u0439.\n\n**`bitrix_task_move`** \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u0434\u043B\u044F \u0437\u0430\u0434\u0430\u0447\u0438, \u043A\u043E\u0442\u043E\u0440\u0430\u044F \u0443\u0436\u0435 \u043D\u0430 \u0434\u043E\u0441\u043A\u0435 \u0441\u043F\u0440\u0438\u043D\u0442\u0430 (\u043D\u0435 \u0432 \u0431\u044D\u043A\u043B\u043E\u0433\u0435):\n`task.stages.movetask` \u043E\u0442\u0432\u0435\u0447\u0430\u0435\u0442 `true`, \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0441\u0434\u0435\u043B\u0430\u0432, \u2014 \u043C\u043E\u0441\u0442 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 \u0438 \u0432 \u044D\u0442\u043E\u043C \u0441\u043B\u0443\u0447\u0430\u0435\n\u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043E\u0448\u0438\u0431\u043A\u0443 \u043F\u043E \u044D\u0442\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0435. \u0417\u0430\u0434\u0430\u0447\u0443 \u0438\u0437 \u0431\u044D\u043A\u043B\u043E\u0433\u0430 \u0441\u0442\u0430\u0432\u0438\u0442 \u043D\u0430 \u0434\u043E\u0441\u043A\u0443 `bitrix_task_to_sprint` (\u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0438\u0442 \u0432\n\u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0439 \u0441\u043F\u0440\u0438\u043D\u0442, \u0441\u0442\u0430\u0432\u0438\u0442 \u043D\u0430 \u0434\u043E\u0441\u043A\u0443, \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442 \u0441\u043F\u0440\u0438\u043D\u0442 \u0438 \u043A\u043E\u043B\u043E\u043D\u043A\u0443); \u0437\u0430\u0434\u0430\u0447\u0438 \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0445 \u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0451\u043D\u043D\u044B\u0445\n\u0441\u043F\u0440\u0438\u043D\u0442\u043E\u0432 \u043E\u043D \u043D\u0435 \u0442\u0440\u043E\u0433\u0430\u0435\u0442. \u0415\u0441\u043B\u0438 \u043F\u0435\u0440\u0435\u043D\u043E\u0441 \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D, \u0430 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C, \u043E\u0448\u0438\u0431\u043A\u0430 \u0442\u0430\u043A \u0438 \u0433\u043E\u0432\u043E\u0440\u0438\u0442 \u2014\n\u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u0442\u043E\u0433\u0434\u0430 \u043F\u0440\u043E\u0432\u0435\u0440\u044C \u0447\u0435\u0440\u0435\u0437 `bitrix_task_get`. `task.stages.get` \u043E\u0442\u0434\u0430\u0451\u0442 \u0441\u0442\u0430\u0440\u044B\u0439 \u043A\u0430\u043D\u0431\u0430\u043D \u0433\u0440\u0443\u043F\u043F\u044B, \u0430 \u043D\u0435\n\u043A\u043E\u043B\u043E\u043D\u043A\u0438 \u0441\u043F\u0440\u0438\u043D\u0442\u0430. \u041F\u0435\u0440\u0435\u043D\u043E\u0441 \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u043C\u043E\u0436\u0435\u0442 \u043F\u0435\u0440\u0435\u043E\u0442\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u043A\u0440\u044B\u0442\u0443\u044E \u0437\u0430\u0434\u0430\u0447\u0443 \u2014 \u0441\u043C\u043E\u0442\u0440\u0438 `status` \u0432 \u043E\u0442\u0432\u0435\u0442\u0435.\n\n**\u041A\u043E\u043B\u043E\u043D\u043A\u0430 \u0442\u0438\u043F\u0430 `FINISH`** (\u043E\u0431\u044B\u0447\u043D\u043E \xAB\u0413\u043E\u0442\u043E\u0432\u043E\xBB, \u0441\u043C. `type` \u0432 `bitrix_sprint_columns`) \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442 \u0437\u0430\u0434\u0430\u0447\u0443,\n\u0430 Definition of Done \u0441\u043F\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u0432\u0441\u043F\u043B\u044B\u0432\u0430\u044E\u0449\u0435\u0435 \u043E\u043A\u043D\u043E \u0432\u0435\u0431-\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430. \u041F\u043E\u044D\u0442\u043E\u043C\u0443 `bitrix_task_move`,\n`bitrix_task_to_sprint` \u0438 `bitrix_task_create` \u0442\u0430\u043A\u0443\u044E \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u043D\u0435 \u043F\u0440\u0438\u043D\u0438\u043C\u0430\u044E\u0442 \u2014 \u043D\u0438 \u043F\u043E \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044E, \u043D\u0438 \u043F\u043E id:\n\xAB\u043A\u043E\u043B\u043E\u043D\u043A\u0430 \xAB\u2026\xBB \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 \u2014 \u0437\u0430\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u043C\u043E\u0436\u043D\u043E \u0442\u043E\u043B\u044C\u043A\u043E \u0447\u0435\u0440\u0435\u0437 `bitrix_task_close` \u2026; \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435\n\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043E\xBB. \u0423 \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0445 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0439 \u043E\u0442\u043A\u0430\u0437 \u2014 \u043D\u0430 \u0432\u0435\u0441\u044C \u0432\u044B\u0437\u043E\u0432: \u0441\u043D\u0430\u0447\u0430\u043B\u0430 \u0447\u0438\u0442\u0430\u044E\u0442\u0441\u044F \u0432\u0441\u0435 \u0437\u0430\u0434\u0430\u0447\u0438, \u0438 \u0435\u0441\u043B\u0438 \u043A\u043E\u043B\u043E\u043D\u043A\u0430\n\u0445\u043E\u0442\u044C \u0443 \u043E\u0434\u043D\u043E\u0439 \u0438\u0437 \u043D\u0438\u0445 (\u0432 \u0435\u0451 \u043F\u0440\u043E\u0435\u043A\u0442\u0435) \u2014 `FINISH`, \u043D\u0435 \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0438\u0442\u0441\u044F \u043D\u0438 \u043E\u0434\u043D\u0430. \u0417\u0430\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u2014\n`bitrix_task_close` (\xA75.7).\n\n**\u0414\u0430\u0442\u044B** (`bitrix_task_plan`, `bitrix_task_deadline`, `bitrix_task_reminder_set`) \u2014 ISO 8601 **\u0441\u043E\n\u0441\u043C\u0435\u0449\u0435\u043D\u0438\u0435\u043C**: `"2026-12-01T09:00:00+03:00"` \u0438\u043B\u0438 `"\u2026Z"`; \u0431\u0435\u0437 \u0441\u043C\u0435\u0449\u0435\u043D\u0438\u044F \u2014 \u043E\u0448\u0438\u0431\u043A\u0430 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u043E\u0432. \u0412 \u043E\u0442\u0432\u0435\u0442\u0435 \u0434\u0430\u0442\u044B \u0432\nUTC. Bitrix \u0445\u0440\u0430\u043D\u0438\u0442 \u0432\u0440\u0435\u043C\u044F \u0437\u0430\u0434\u0430\u0447 \u0441 \u0442\u043E\u0447\u043D\u043E\u0441\u0442\u044C\u044E \u0434\u043E \u043C\u0438\u043D\u0443\u0442\u044B: \u0441\u0435\u043A\u0443\u043D\u0434\u044B \u043D\u0435 \u0441\u0447\u0438\u0442\u0430\u044E\u0442\u0441\u044F \u0440\u0430\u0441\u0445\u043E\u0436\u0434\u0435\u043D\u0438\u0435\u043C.\n\n**\u0420\u0430\u0437\u043C\u0435\u0442\u043A\u0430 \u0442\u0435\u043A\u0441\u0442\u0430.**\n\n- **\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438** (`bitrix_task_description_*`) \u0438 **\u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442** (`bitrix_task_result_add`) \u2014 \u043F\u043E\u043B\u043D\u044B\u0439\n BBCode: `[b] [i] [u] [s]`, `[url=\u2026]\u2026[/url]`, `[user=ID]\u0418\u043C\u044F[/user]`, \u0441\u043F\u0438\u0441\u043A\u0438 `[list]` / `[list=1]` \u0441\n \u043F\u0443\u043D\u043A\u0442\u0430\u043C\u0438 `[*]`, `[quote]`, `[code]`, `[spoiler=\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A]\u2026[/spoiler]`, \u0442\u0430\u0431\u043B\u0438\u0446\u044B `[table][tr][th]/[td]`.\n \u0422\u0435\u0433\u0438 `[disk file id=\u2026]` \u2014 \u044D\u0442\u043E \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u0451\u043D\u043D\u044B\u0435 \u0444\u0430\u0439\u043B\u044B, \u0441\u043E\u0445\u0440\u0430\u043D\u044F\u0439 \u0438\u0445. \u041A\u0430\u043A BBCode \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0430 \u0432\u044B\u0433\u043B\u044F\u0434\u0438\u0442 \u0432 \u0435\u0433\u043E\n \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0435 \u0432 \u0447\u0430\u0442\u0435, \u043D\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043E.\n- **\u0421\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u0432 \u0447\u0430\u0442** (`bitrix_chat_send`, `bitrix_chat_message_edit`, `bitrix_task_chat_post`) \u2014 \u0442\u043E\u043B\u044C\u043A\u043E\n \u0442\u043E, \u0447\u0442\u043E \u0440\u0435\u043D\u0434\u0435\u0440\u044F\u0442 \u0438 \u0432\u0435\u0431, \u0438 \u043C\u043E\u0431\u0438\u043B\u044C\u043D\u043E\u0435 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435: `[b] [i] [u] [s]`, `[url=\u2026]\u2026[/url]`,\n `[user=ID]\u0418\u043C\u044F[/user]`, `[code]`, `[color=#hex]\u2026[/color]`, `[br]`. \u0426\u0438\u0442\u0430\u0442\u0430 \u2014 \u0441\u0442\u0440\u043E\u043A\u0430, \u043D\u0430\u0447\u0438\u043D\u0430\u044E\u0449\u0430\u044F\u0441\u044F \u0441 `>>`,\n \u0438\u043B\u0438 \u0431\u043B\u043E\u043A \u043C\u0435\u0436\u0434\u0443 \u0434\u0432\u0443\u043C\u044F \u0441\u0442\u0440\u043E\u043A\u0430\u043C\u0438 \u0438\u0437 \u0434\u0435\u0444\u0438\u0441\u043E\u0432; \u0441\u043F\u0438\u0441\u043E\u043A \u2014 \u0441\u0442\u0440\u043E\u043A\u0438, \u043D\u0430\u0447\u0438\u043D\u0430\u044E\u0449\u0438\u0435\u0441\u044F \u0441 `\u2022`. `[quote]`, `[list]`,\n `[spoiler]`, \u0442\u0430\u0431\u043B\u0438\u0446\u044B \u0438 Markdown \u0432 \u0447\u0430\u0442\u0435 **\u043D\u0435 \u0440\u0435\u043D\u0434\u0435\u0440\u044F\u0442\u0441\u044F**. \u0414\u043B\u0438\u043D\u043D\u0435\u0435 20 000 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 Bitrix \u043C\u043E\u043B\u0447\u0430 \u043E\u0431\u0440\u0435\u0436\u0435\u0442 \u2014\n \u043C\u043E\u0441\u0442 \u0442\u0430\u043A\u043E\u0435 \u043D\u0435 \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442.\n- **\u041F\u0440\u043E\u0441\u0442\u043E\u0439 \u0442\u0435\u043A\u0441\u0442:** \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 (`bitrix_task_create` \u2014 BBCode \u0432 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0438 \u043D\u0435 \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442), \u0442\u0435\u0433\u0438, \u043F\u0440\u0438\u0447\u0438\u043D\u0430\n \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0430 \u0441\u0440\u043E\u043A\u0430. \u041D\u0430\u0437\u0432\u0430\u043D\u0438\u044F \u043F\u0443\u043D\u043A\u0442\u043E\u0432 \u0447\u0435\u043A-\u043B\u0438\u0441\u0442\u0430 \u2014 \u0442\u043E\u0436\u0435 \u043F\u0440\u043E\u0441\u0442\u043E\u0439 \u0442\u0435\u043A\u0441\u0442 (\u043A\u0430\u043A \u0432 \u043D\u0438\u0445 \u0440\u0435\u043D\u0434\u0435\u0440\u0438\u0442\u0441\u044F BBCode, \u043D\u0435\n \u043F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043E).\n- Markdown \u043D\u0435 \u0440\u0435\u043D\u0434\u0435\u0440\u0438\u0442\u0441\u044F \u043D\u0438\u0433\u0434\u0435.\n\n---\n\n## 4. \u0421\u043F\u0440\u0430\u0432\u043E\u0447\u043D\u0438\u043A \u043F\u043E\u043B\u0435\u0439\n\n**\u0417\u0430\u0434\u0430\u0447\u0430** (`tasks.task.*`) \u2014 \u043F\u043E\u043B\u044F \u0434\u043B\u044F `select`/`filter` \u0432 UPPER_CASE: `ID`, `TITLE`, `DESCRIPTION`,\n`STATUS`, `REAL_STATUS`, `RESPONSIBLE_ID`, `CREATED_BY`, `CREATED_DATE`, `CHANGED_DATE`, `DEADLINE`,\n`CLOSED_DATE`, `PRIORITY`, `GROUP_ID`, `TAGS`, `TIME_ESTIMATE`, **`CHAT_ID`** (id \u0447\u0430\u0442\u0430-\u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u044F\n\u0437\u0430\u0434\u0430\u0447\u0438 \u2014 \u043F\u0440\u044F\u043C\u043E\u0439 \u0440\u0435\u0437\u043E\u043B\u0432\u0435\u0440 `taskId \u2192 chatId`, \xA75.2), `COMMENTS_COUNT` (\xA75.6), **`UF_TASK_WEBDAV_FILES`**\n(id **\u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u0451\u043D\u043D\u044B\u0445 \u043E\u0431\u044A\u0435\u043A\u0442\u043E\u0432** \u2014 \u0438\u043C\u0435\u043D\u043D\u043E \u0438\u0445 \u0436\u0434\u0451\u0442 `bitrix_task_files`; \u0441 id \u0437\u0430\u0434\u0430\u0447\u0438 \u043E\u043D \u0432\u0435\u0440\u043D\u0451\u0442 \u043F\u0443\u0441\u0442\u043E\u0439\n\u0441\u043F\u0438\u0441\u043E\u043A \u0431\u0435\u0437 \u043E\u0448\u0438\u0431\u043A\u0438), `UF_*`. \u041E\u0442\u0432\u0435\u0442 \u043F\u043E\u0434\u043A\u043B\u0430\u0434\u044B\u0432\u0430\u0435\u0442 \u043E\u0431\u044A\u0435\u043A\u0442\u044B `group`,\n`responsible`, `creator`, `action`.\n\u{1F4D6} (`tasks.task.get`/`list`) \u2014 \u0441\u0432\u0435\u0440\u0445 \u044D\u0442\u043E\u0433\u043E: `parentId`, `stageId`, `sprintId`, `backlogId`,\n`commentsCount`, `timeSpentInLogs`, `favorite`, `flowId`, `mark`, `accomplices[]`, `auditors[]`,\n`checklist{}`, `subStatus`; \u0432 \u043E\u0444\u0438\u0446\u0438\u0430\u043B\u044C\u043D\u043E\u043C REST-\u043E\u0442\u0432\u0435\u0442\u0435 \u043F\u043E\u043B\u044F \u043F\u0440\u0438\u0445\u043E\u0434\u044F\u0442 **camelCase**, \u0430 \u0432 `select`/`filter`\n\u043E\u043D\u0438 \u0432\u0441\u0435\u0433\u0434\u0430 **UPPER_CASE**. \u0414\u043E\u043F. \u0432\u044B\u0447\u0438\u0441\u043B\u0435\u043D\u0438\u044F \u2014 \u0444\u043B\u0430\u0433\u0430\u043C\u0438 `params{WITH_TIMER_INFO, WITH_RESULT_INFO,\nWITH_PARSED_DESCRIPTION}`.\n\n**\u0421\u0442\u0430\u0442\u0443\u0441\u044B** (`REAL_STATUS` \u2014 \xAB\u043D\u0430\u0441\u0442\u043E\u044F\u0449\u0435\u0435\xBB \u0447\u0438\u0441\u043B\u043E\u0432\u043E\u0435 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435): `1` \u041D\u043E\u0432\u0430\u044F \xB7 `2` \u0416\u0434\u0451\u0442 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \xB7\n`3` \u0412\u044B\u043F\u043E\u043B\u043D\u044F\u0435\u0442\u0441\u044F \xB7 `4` \u0416\u0434\u0451\u0442 \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u044F \xB7 `5` \u0417\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0430 \xB7 `6` \u041E\u0442\u043B\u043E\u0436\u0435\u043D\u0430 \xB7 `7` \u041E\u0442\u043A\u043B\u043E\u043D\u0435\u043D\u0430. \u041F\u043E\u043B\u0435 `STATUS`\n\u043F\u043E\u0432\u0435\u0440\u0445 \u044D\u0442\u043E\u0433\u043E \u043D\u0435\u0441\u0451\u0442 **\u043C\u0435\u0442\u0430-\u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u044F** \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F (\u043F\u043E\u0447\u0442\u0438 \u043F\u0440\u043E\u0441\u0440\u043E\u0447\u0435\u043D\u0430 / \u043D\u0435 \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u043D\u0430 / \u043F\u0440\u043E\u0441\u0440\u043E\u0447\u0435\u043D\u0430),\n\u043F\u043E\u044D\u0442\u043E\u043C\u0443 \xAB\u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442 \u043B\u0438 \u0437\u0430\u0434\u0430\u0447\u0430 \u0441\u0435\u0439\u0447\u0430\u0441\xBB \u0444\u0438\u043B\u044C\u0442\u0440\u0443\u0439 \u043F\u043E **`REAL_STATUS`** (\u043D\u0430\u043F\u0440. `{"REAL_STATUS":3}`) \u{1F4D6}.\n\u0410\u0441\u0438\u043C\u043C\u0435\u0442\u0440\u0438\u044F: \u0432 **`filter`** \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442 `REAL_STATUS`, \u0430 \u0432 **`select`** \u0435\u0433\u043E \u0443\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u0431\u0435\u0441\u043F\u043E\u043B\u0435\u0437\u043D\u043E \u2014 \u043F\u043E\u043B\u0435 \u043C\u043E\u043B\u0447\u0430\n\u043D\u0435 \u0432\u0435\u0440\u043D\u0451\u0442\u0441\u044F; \u0447\u0442\u043E\u0431\u044B \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435, \u043F\u0440\u043E\u0441\u0438 `select:["STATUS"]` \u2192 \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 \u0431\u0443\u0434\u0435\u0442 \u043A\u043B\u044E\u0447 `status` \u0441\u043E\n\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u043C \u043F\u043E \u0442\u043E\u0439 \u0436\u0435 \u0448\u043A\u0430\u043B\u0435 1..7 (\u0443 \u043E\u0431\u0451\u0440\u0442\u043A\u0438 `bitrix_tasks_list` \u043E\u043D \u0443\u0436\u0435 \u0432 \u0434\u0435\u0444\u043E\u043B\u0442\u043D\u043E\u043C `select`).\n\n**\u0424\u0438\u043B\u044C\u0442\u0440 `tasks.task.list`** \u2014 \u043E\u043F\u0435\u0440\u0430\u0442\u043E\u0440 \u0441\u0442\u0430\u0432\u0438\u0442\u0441\u044F \u043F\u0435\u0440\u0435\u0434 \u0438\u043C\u0435\u043D\u0435\u043C \u043F\u043E\u043B\u044F: `!` (\u043D\u0435 \u0440\u0430\u0432\u043D\u043E / \u0438\u0441\u043A\u043B\u044E\u0447\u0438\u0442\u044C),\n`<`, `<=`, `>`, `>=`, `%` (LIKE-\u043F\u043E\u0434\u0441\u0442\u0440\u043E\u043A\u0430). \u041D\u0430\u043F\u0440. `{"!REAL_STATUS":5}` \u2014 \u0432\u0441\u0435 **\u043D\u0435\u0437\u0430\u043A\u0440\u044B\u0442\u044B\u0435**,\n`{">=DEADLINE":"2026-07-01"}`, `{"%TITLE":"\u043A\u0430\u0440\u0442\u0430"}`. \u0424\u0438\u043B\u044C\u0442\u0440\u0443\u0435\u043C\u044B\u0435 \u043F\u043E\u043B\u044F: `ID`, `PARENT_ID`, `GROUP_ID`,\n`CREATED_BY`, `RESPONSIBLE_ID`, `ACCOMPLICE`, `AUDITOR`, `REAL_STATUS`, `STATUS`, `PRIORITY`, `TAG`,\n`STAGE_ID`, `SPRINT_ID`, `BACKLOG_ID`, `DEADLINE`, `*_DATE`, `UF_CRM_TASK`.\n\n> **\xAB\u041C\u043E\u0438 \u0437\u0430\u0434\u0430\u0447\u0438\xBB \u2260 \u0442\u043E\u043B\u044C\u043A\u043E `RESPONSIBLE_ID`.** \u0420\u043E\u043B\u0438 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0430 \u0440\u0430\u0437\u0434\u0435\u043B\u044C\u043D\u044B: \u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043D\u043D\u044B\u0439\n> (`RESPONSIBLE_ID`), \u0441\u043E\u0438\u0441\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C (`ACCOMPLICE`), \u043D\u0430\u0431\u043B\u044E\u0434\u0430\u0442\u0435\u043B\u044C (`AUDITOR`), \u043F\u043E\u0441\u0442\u0430\u043D\u043E\u0432\u0449\u0438\u043A\n> (`CREATED_BY`); \u0435\u0434\u0438\u043D\u043E\u0433\u043E \xAB\u043B\u044E\u0431\u0430\u044F \u0440\u043E\u043B\u044C\xBB \u043F\u043E\u043B\u044F \u0432 `list` \u043D\u0435\u0442 \u2014 \u0447\u0442\u043E\u0431\u044B \u0441\u043E\u0431\u0440\u0430\u0442\u044C **\u0432\u0441\u0435** \u0441\u0432\u043E\u0438 \u0437\u0430\u0434\u0430\u0447\u0438, \u043E\u0431\u044A\u0435\u0434\u0438\u043D\u0438\n> \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u044B \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u0438\u0445 \u0432\u044B\u0437\u043E\u0432\u043E\u0432 (\u043C\u0438\u043D\u0438\u043C\u0443\u043C `RESPONSIBLE_ID` + `ACCOMPLICE`) \u0438 **\u0434\u0435\u0434\u0443\u043F\u043B\u0438\u0446\u0438\u0440\u0443\u0439 \u043F\u043E `id`** \u2014\n> \u043E\u0434\u043D\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u0447\u0430\u0441\u0442\u043E \u043F\u043E\u043F\u0430\u0434\u0430\u0435\u0442 \u0441\u0440\u0430\u0437\u0443 \u0432 \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u043E \u0440\u043E\u043B\u0435\u0439. \u0412 **`filter`** \u0440\u043E\u043B\u0438 \u0432 **\u0435\u0434\u0438\u043D\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u043C** \u0447\u0438\u0441\u043B\u0435\n> (`ACCOMPLICE`/`AUDITOR`), \u0432 **`select`** \u2014 \u0432\u043E **\u043C\u043D\u043E\u0436\u0435\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u043C** (`ACCOMPLICES`/`AUDITORS`).\n\n> **Scrum-\u0437\u0430\u0434\u0430\u0447\u0438 (\u0441\u043F\u0440\u0438\u043D\u0442\u044B).** \u041F\u043E\u043B\u0435 `SPRINT_ID` \u0437\u0430\u0434\u0430\u0447\u0438 \u0438 \u0436\u0451\u0441\u0442\u043A\u0438\u0439 `filter[SPRINT_ID]` \u043C\u043E\u0433\u0443\u0442 \u0440\u0430\u0441\u0445\u043E\u0434\u0438\u0442\u044C\u0441\u044F:\n> \u0437\u0430\u0434\u0430\u0447\u0430 \u0447\u0438\u0441\u043B\u0438\u0442\u0441\u044F \u0437\u0430 \u0441\u043F\u0440\u0438\u043D\u0442\u043E\u043C \u043F\u043E \u0441\u0432\u043E\u0435\u043C\u0443 \u043F\u043E\u043B\u044E, \u043D\u043E \u043D\u0435 \u043F\u043E\u043F\u0430\u0434\u0430\u0435\u0442 \u0432 \u0432\u044B\u0431\u043E\u0440\u043A\u0443 \u043F\u043E \u0444\u0438\u043B\u044C\u0442\u0440\u0443 (\u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0435\u043D\u0430 \u0432 \u0431\u044D\u043A\u043B\u043E\u0433\n> \u0438\u043B\u0438 \u0432 \u0438\u043D\u043E\u0439 stage). \u0415\u0441\u043B\u0438 \u043F\u043E \u0444\u0438\u043B\u044C\u0442\u0440\u0443 \xAB\u043C\u0430\u043B\u043E\u0432\u0430\u0442\u043E\xBB \u2014 \u043F\u0435\u0440\u0435\u043F\u0440\u043E\u0432\u0435\u0440\u044C \u0431\u0435\u0437 \u043D\u0435\u0433\u043E \u0438 \u043E\u0442\u0444\u0438\u043B\u044C\u0442\u0440\u0443\u0439 \u043F\u043E\n> `SPRINT_ID`/`STAGE_ID` \u0443 \u0441\u0435\u0431\u044F. `STAGE_ID` \u2192 \u0438\u043C\u044F \u043A\u043E\u043B\u043E\u043D\u043A\u0438 \u2014 `bitrix_sprint_columns { groupId }` (\xA73).\n\n**\u0413\u0440\u0443\u043F\u043F\u0430/\u043F\u0440\u043E\u0435\u043A\u0442 \u2014 \u0441\u043F\u0438\u0441\u043E\u043A** (`workgroup.list`): `ID`, `NAME`, `DESCRIPTION`, `NUMBER_OF_MEMBERS`,\n`OWNER_ID`, `DATE_CREATE`, `PROJECT` (Y=\u043F\u0440\u043E\u0435\u043A\u0442/N=\u0433\u0440\u0443\u043F\u043F\u0430), `TYPE`; **\u0431\u0435\u0437 `select` \u0432\u0435\u0440\u043D\u0451\u0442\u0441\u044F \u0442\u043E\u043B\u044C\u043A\u043E `ID`**.\n\u{1F4D6} \u0444\u0438\u043B\u044C\u0442\u0440\u0443\u0435\u043C\u044B\u0435: `ID`, `NAME`, `OWNER_ID`, `ACTIVE`, `VISIBLE`, `OPENED`, `CLOSED`, `PROJECT`,\n`SUBJECT_ID`, `SITE_ID`, `DATE_CREATE`, `DATE_UPDATE`, `DATE_ACTIVITY`; \u043E\u043F\u0435\u0440\u0430\u0442\u043E\u0440\u044B \u0444\u0438\u043B\u044C\u0442\u0440\u0430\n`>= > <= < % =% %= !% != !`.\n**\u0413\u0440\u0443\u043F\u043F\u0430 \u2014 \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430** (`workgroup.get`): \u043F\u043B\u044E\u0441 `OWNER_DATA`, `SUBJECT_DATA`, `MEMBERS[]`,\n`MODERATOR_MEMBERS[]`, **`CHAT_ID`**, `DIALOG_ID`, `IMAGE_ID`, UF-\u043F\u043E\u043B\u044F.\n\n**\u041D\u0435\u0434\u0430\u0432\u043D\u0438\u0439 \u0447\u0430\u0442** (`im.recent.list`): `id` (\u044D\u0442\u043E dialogId: \u0447\u0438\u0441\u043B\u043E = \u044E\u0437\u0435\u0440, `"chat"+N` = \u0447\u0430\u0442), `chat_id`,\n`type` (`user`/`chat`), `title`, `message{id,text,file,author_id,date,status}`, `counter` (\u043D\u0435\u043F\u0440\u043E\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u0445),\n`unread`, `last_id`, `pinned`, `date_update`, `date_last_activity`, `user{\u2026}`,\n`chat{\u2026 entity_type, entity_id, owner, \u2026}`; \u0435\u0441\u0442\u044C \u043B\u0438 \u0435\u0449\u0451 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B \u2014 `hasMore`/`hasMorePages` \u{1F4D6}.\n**\u041D\u0435\u0434\u0430\u0432\u043D\u0438\u0435 \u043F\u043E \u0441\u0435\u043A\u0446\u0438\u0438** (`im.v2.Recent.load`): `filter[recentSection]` \u2014 `default` (\u043E\u0431\u044B\u0447\u043D\u044B\u0435 \u0434\u0438\u0430\u043B\u043E\u0433\u0438),\n**`tasksTask` (\u0447\u0430\u0442\u044B \u0437\u0430\u0434\u0430\u0447)**, `collab`/`collabDefault`. \u0412\u0433\u043B\u0443\u0431\u044C \u2014 `im.v2.Recent.tail` \u0441 \u043A\u0443\u0440\u0441\u043E\u0440\u043E\u043C\n`filter[lastMessageDate]` (ISO-\u0434\u0430\u0442\u0430 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0433\u043E \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B).\n\n**\u041A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u044E\u0437\u0435\u0440\u0430** (`im.user.get`): `id`, `name`, `first_name`, `last_name`, `avatar`, `work_position`,\n`gender`, `status`, `online` \u2014 \u0440\u0435\u0437\u043E\u043B\u0432 \u0430\u0432\u0442\u043E\u0440\u0430 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F (`authorId`) \u0432 \u0438\u043C\u044F.\n\n**\u0421\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435** (`im.v2.Chat.Message.*`): `id`, `chatId`, `authorId`, `date`, `text`, `params`, `viewed`;\n\u043E\u0442\u0432\u0435\u0442 \u0442\u0430\u043A\u0436\u0435 \u043D\u0435\u0441\u0451\u0442 `users[]` (\u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438), `additionalMessages[]`, `hasPrevPage`/`hasNextPage`.\n\n---\n\n## 5. \u0421\u0446\u0435\u043D\u0430\u0440\u0438\u0438\n\n```jsonc\n// \u043E\u0442\u043A\u0440\u044B\u0442\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u0433\u043E 55, \u043F\u043E \u0434\u0435\u0434\u043B\u0430\u0439\u043D\u0443, \u0432\u0442\u043E\u0440\u0430\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430\nbitrix_tasks_list { "params": { "filter": {"RESPONSIBLE_ID":55,"REAL_STATUS":2},\n "order": {"DEADLINE":"asc"}, "PAGEN_1": 2 } }\n\n// \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0437\u0430\u0434\u0430\u0447\u0438 \u0441 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u043D\u044B\u043C \u043D\u0430\u0431\u043E\u0440\u043E\u043C \u043F\u043E\u043B\u0435\u0439; v2-\u043F\u043E\u0434\u0441\u0438\u0441\u0442\u0435\u043C\u0430; \u0444\u0430\u0439\u043B\u044B, \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u044B, \u0441\u0432\u044F\u0437\u0438\nbitrix_task_get { "taskId": 4229, "params": { "select": ["ID","TITLE","DESCRIPTION","TAGS"] } }\nbitrix_task_get_v2 { "taskId": 4229 } // \u2192 { "task": { "id": 4229 } }\nbitrix_task_get { "taskId": 4229, "params": { "select": ["ID","UF_TASK_WEBDAV_FILES"] } }\nbitrix_task_files { "ids": [<id \u0438\u0437 UF_TASK_WEBDAV_FILES>] } // \u041D\u0415 id \u0437\u0430\u0434\u0430\u0447\u0438\nbitrix_task_subtasks { "taskId": 4229 }\nbitrix_task_related { "taskId": 4229 }\n\n// \u043F\u0440\u043E\u0435\u043A\u0442\u044B \u043F\u043E \u0434\u0430\u0442\u0435 \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u044F; \u043F\u043E\u043B\u043D\u0430\u044F \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0433\u0440\u0443\u043F\u043F\u044B (\u043E\u0442\u0434\u0430\u0451\u0442 CHAT_ID / DIALOG_ID)\nbitrix_projects_list { "params": { "order": {"DATE_CREATE":"desc"} } }\nbitrix_project_get { "groupId": 15 }\n```\n\n### 5.1. \u041C\u0435\u0441\u0441\u0435\u043D\u0434\u0436\u0435\u0440 (IM): \u043A\u0430\u043A \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C `chatId`\n\n\u0412\u0441\u0451 \u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u2014 **\u0447\u0430\u0442\u044B**: \u043B\u0438\u0447\u043D\u044B\u0435 1-\u043D\u0430-1, \u0433\u0440\u0443\u043F\u043F\u043E\u0432\u044B\u0435 (\u043F\u0440\u043E\u0435\u043A\u0442\u043E\u0432, \u043A\u0430\u043D\u0430\u043B\u043E\u0432) \u0438 **\u0447\u0430\u0442\u044B-\u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u044F \u0437\u0430\u0434\u0430\u0447**.\n\u0427\u0438\u0441\u043B\u043E\u0432\u043E\u0439 **`chatId`** \u2014 \u043A\u043B\u044E\u0447 \u043A\u043E \u0432\u0441\u0435\u043C \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F\u043C \u0441 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F\u043C\u0438 (`bitrix_chat_messages`,\n`bitrix_chat_history`, `bitrix_chat_mark_read`); \u043F\u043E\u0447\u0442\u0438 \u043B\u044E\u0431\u0430\u044F \u043E\u0448\u0438\u0431\u043A\u0430 \u0430\u0433\u0435\u043D\u0442\u0430 \u0437\u0434\u0435\u0441\u044C \u2014 \u043D\u0430 \u0448\u0430\u0433\u0435 \u0435\u0433\u043E \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u044F.\n\n**\u0422\u0440\u0438 \u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u0430 \u043E\u0434\u043D\u043E\u0433\u043E \u0447\u0430\u0442\u0430** (\u0433\u043E\u0434\u044F\u0442\u0441\u044F \u0434\u043B\u044F \u0440\u0430\u0437\u043D\u044B\u0445 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0439):\n\n| \u0418\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 | \u0427\u0442\u043E \u044D\u0442\u043E | \u041F\u0440\u0438\u043C\u0435\u0440 | \u041A\u0443\u0434\u0430 \u043F\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044C |\n|---|---|---|---|\n| `chatId` | \u0447\u0438\u0441\u043B\u043E\u0432\u043E\u0439 id \u0447\u0430\u0442\u0430 | `485` | \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F / \u0438\u0441\u0442\u043E\u0440\u0438\u044F / \u043E\u0442\u043C\u0435\u0442\u043A\u0430 \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u043C |\n| `dialogId` | \u0430\u0434\u0440\u0435\u0441 \u0434\u043B\u044F \u041E\u0422\u041A\u0420\u042B\u0422\u0418\u042F: `userId` (\u043B\u0438\u0447\u043D\u044B\u0439 1-\u043D\u0430-1) **\u0438\u043B\u0438** `"chat"+chatId` (\u0433\u0440\u0443\u043F\u043F\u043E\u0432\u043E\u0439) | `11`, `"chat485"` | `bitrix_chat_load` |\n| `externalId` | \u0432\u043D\u0435\u0448\u043D\u0438\u0439 \u043A\u043B\u044E\u0447 \u0441\u0443\u0449\u043D\u043E\u0441\u0442\u0438 \u2192 \u0440\u0435\u0437\u043E\u043B\u0432\u0438\u0442\u0441\u044F \u0432 `dialogId` | `"sg15"` (\u0441\u043E\u0446\u0433\u0440\u0443\u043F\u043F\u0430 15) | `bitrix_chat_get_dialog_id` |\n\n\u041A\u043B\u044E\u0447\u0435\u0432\u043E\u0435: **\u043B\u0438\u0447\u043D\u044B\u0439 \u0447\u0430\u0442 \u0441 \u0447\u0435\u043B\u043E\u0432\u0435\u043A\u043E\u043C = \u0435\u0433\u043E `userId` \u0432 \u0440\u043E\u043B\u0438 `dialogId`** (\u043E\u0442\u0434\u0435\u043B\u044C\u043D\u043E\u0433\u043E \xABid \u0447\u0430\u0442\u0430\xBB \u0443 1-\u043D\u0430-1\n\u0437\u043D\u0430\u0442\u044C \u043D\u0435 \u043D\u0443\u0436\u043D\u043E). `bitrix_chat_load` \u043F\u0440\u0438\u043D\u0438\u043C\u0430\u0435\u0442 `dialogId` **\u0438\u043B\u0438** `chatId` \u0438 \u0432\u0441\u0435\u0433\u0434\u0430 **\u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\n\u0447\u0438\u0441\u043B\u043E\u0432\u043E\u0439 `chatId`** \u2014 \u0434\u0430\u043B\u044C\u0448\u0435 \u043E\u043F\u0435\u0440\u0438\u0440\u0443\u0435\u0448\u044C \u0438\u043C.\n\n**\u041A\u0430\u043A \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C `chatId` \u2014 \u043F\u043E \u0446\u0435\u043B\u0438:**\n\n| \u0425\u043E\u0447\u0443 \u043E\u0442\u043A\u0440\u044B\u0442\u044C \u0447\u0430\u0442\u2026 | \u0428\u0430\u0433\u0438 |\n|---|---|\n| **\u0441 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u043C \u043F\u043E \u0418\u041C\u0415\u041D\u0418** | `bitrix_entity_search { query:"\u0434\u043C\u0438\u0442\u0440\u0438\u0439" }` \u2192 \u0434\u0438\u0430\u043B\u043E\u0433 \u0441 `dialogId` = \u0435\u0433\u043E userId \u2192 `bitrix_chat_load { dialogId }` |\n| **\u0441 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u043C, id \u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043D** | `bitrix_chat_load { dialogId: <userId> }` (userId \u2014 \u0438\u0437 \u0437\u0430\u0434\u0430\u0447\u0438 `RESPONSIBLE_ID`/`CREATED_BY`, \u0438\u0437 `bitrix_chats_recent`, \u0438\u0437 `bitrix_user_get`) |\n| **\u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435 \u0417\u0410\u0414\u0410\u0427\u0418** | `bitrix_task_get` \u2192 `CHAT_ID` (\xA75.2) |\n| **\u041F\u0420\u041E\u0415\u041A\u0422\u0410/\u0433\u0440\u0443\u043F\u043F\u044B** | `bitrix_task_get`\u2192`GROUP_ID`\u2192`bitrix_project_get`\u2192`CHAT_ID`; \u043B\u0438\u0431\u043E `bitrix_chat_get_dialog_id { externalId:"sg<groupId>" }` |\n| **\u043D\u0435 \u0437\u043D\u0430\u044E \u0442\u043E\u0447\u043D\u043E, \u043A\u0430\u043A\u043E\u0439** | `bitrix_chats_recent` (\u043D\u0435\u0434\u0430\u0432\u043D\u0438\u0435, \u0441\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u044C \u043F\u043E `title`/`user`) \u0438\u043B\u0438 `bitrix_entity_search { query }` |\n\n> \u041F\u043E\u0447\u0435\u043C\u0443 \u043D\u0435 \xAB\u043F\u0440\u043E\u0441\u0442\u043E \u0441\u043F\u0438\u0441\u043E\u043A \u0447\u0430\u0442\u043E\u0432\xBB: `bitrix_chats_recent` (`im.recent.list`) \u043E\u0442\u0434\u0430\u0451\u0442 \u043B\u0438\u0448\u044C \u043D\u0435\u0434\u0430\u0432\u043D\u0438\u0435 \u0438\n> **\u0431\u0435\u0437 \u0447\u0430\u0442\u043E\u0432 \u0437\u0430\u0434\u0430\u0447**. \u0414\u043B\u044F \u043F\u043E\u0438\u0441\u043A\u0430 \u043A\u043E\u043D\u043A\u0440\u0435\u0442\u043D\u043E\u0433\u043E \u0447\u0430\u0442\u0430 \u2014 `bitrix_entity_search`; \u0434\u043B\u044F \u0447\u0430\u0442\u043E\u0432 \u0437\u0430\u0434\u0430\u0447 \u2014\n> `bitrix_recent_load { section:"tasksTask" }`.\n\n**\u0427\u0438\u0442\u0430\u0442\u044C \u0438\u0441\u0442\u043E\u0440\u0438\u044E.** `bitrix_chat_messages` \u043E\u0442\u0434\u0430\u0451\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u044E\u044E \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443; \u0432\u0433\u043B\u0443\u0431\u044C \u043B\u0438\u0441\u0442\u0430\u0435\u0442\n`bitrix_chat_history` \u043F\u043E \u043A\u0443\u0440\u0441\u043E\u0440\u0443 `beforeId` = \u043C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u044B\u0439 id \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u0442\u0435\u043A\u0443\u0449\u0435\u0439 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B (\u043F\u043E\u0432\u0442\u043E\u0440\u044F\u0439,\n\u0443\u043C\u0435\u043D\u044C\u0448\u0430\u044F `beforeId`, \u0434\u043E \u043D\u0430\u0447\u0430\u043B\u0430 \u0438\u0441\u0442\u043E\u0440\u0438\u0438).\n\n```jsonc\nbitrix_chat_load { "dialogId": 11 } // \u043B\u0438\u0447\u043D\u044B\u0439 \u0447\u0430\u0442 \u044E\u0437\u0435\u0440\u0430 11 \u2192 \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 chatId\nbitrix_chat_history { "chatId": 485, "beforeId": 1861279 }\nbitrix_chat_mark_read { "chatId": 40271, "ids": [1884131] } // \u26A0 \u043C\u0443\u0442\u0438\u0440\u0443\u044E\u0449\u0438\u0439; actionUuid \u2014 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u043E\u043C\n```\n\n\u{1F4D6} \u041F\u0443\u0431\u043B\u0438\u0447\u043D\u044B\u0435 \u0430\u043D\u0430\u043B\u043E\u0433\u0438 \u0447\u0442\u0435\u043D\u0438\u044F \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0439: `im.dialog.messages.get` (\u0434\u0435\u0444\u043E\u043B\u0442 20, \u043C\u0430\u043A\u0441 50; \u043B\u0438\u0441\u0442\u0430\u043D\u0438\u0435\n`LAST_ID` \u2014 \u0441\u0442\u0430\u0440\u0435\u0435, `FIRST_ID` \u2014 \u043D\u043E\u0432\u0435\u0435); `imbot.v2 chat.getMessageContext` \u2014 \u043E\u0442\u0432\u0435\u0442 `messages[]`\n(oldest\u2192newest) + `users[]` + `hasPrevPage`/`hasNextPage`, \u043F\u043E \u0444\u043E\u0440\u043C\u0435 **\u0441\u043E\u0432\u043F\u0430\u0434\u0430\u0435\u0442** \u0441 \u0432\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u0438\u043C\u0438\n`im.v2.Chat.Message.*`.\n\n### 5.2. \u041E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435 (\u0447\u0430\u0442) \u043A\u043E\u043D\u043A\u0440\u0435\u0442\u043D\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438\n\n**\u0410. \u041F\u0440\u044F\u043C\u043E\u0439 \u0440\u0435\u0437\u043E\u043B\u0432 \u2014 \u043F\u0440\u0435\u0434\u043F\u043E\u0447\u0442\u0438\u0442\u0435\u043B\u044C\u043D\u043E.** `bitrix_task_get` \u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 `CHAT_ID` \u0447\u0430\u0442\u0430-\u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u044F (\u0432\u0445\u043E\u0434\u0438\u0442\n\u0432 \u0434\u0435\u0444\u043E\u043B\u0442\u043D\u044B\u0439 `select` \u{1F4D6}) \u2014 \u044D\u0442\u043E `taskId \u2192 chatId` \u0431\u0435\u0437 \u043F\u043E\u0438\u0441\u043A\u0430 \u043F\u043E \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044E \u0438 \u0431\u0435\u0437 \u043F\u0440\u043E\u043C\u0430\u0445\u0430 \u043F\u043E \u0442\u0451\u0437\u043A\u0430\u043C:\n\n```jsonc\nbitrix_task_get { "taskId": 28373 } // \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 CHAT_ID\nbitrix_chat_load { "chatId": <CHAT_ID> }\nbitrix_chat_history { "chatId": <CHAT_ID>, "beforeId": <\u043C\u0438\u043D id \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B> }\n```\n\n\u041E\u0431\u0449\u0430\u044F \u0430\u043B\u044C\u0442\u0435\u0440\u043D\u0430\u0442\u0438\u0432\u0430 \u2014 **`bitrix_entity_chat`** (\u043E\u0431\u0451\u0440\u0442\u043A\u0430 \u043D\u0430\u0434 `im.chat.get`): chatId \u043B\u044E\u0431\u043E\u0433\u043E \u0441\u0432\u044F\u0437\u0430\u043D\u043D\u043E\u0433\u043E\n\u043E\u0431\u044A\u0435\u043A\u0442\u0430 \u043F\u043E \u043F\u0430\u0440\u0435 `entityType`/`entityId`; \u043A\u0440\u043E\u043C\u0435 `TASKS_TASK` \u0442\u0430\u043A \u0436\u0435 \u0430\u0434\u0440\u0435\u0441\u0443\u044E\u0442\u0441\u044F `SONET_GROUP`\n(\u0433\u0440\u0443\u043F\u043F\u0430/\u043F\u0440\u043E\u0435\u043A\u0442), `CRM`, `CALENDAR`, `MAIL`, `VIDEOCONF`, `CALL`:\n\n```jsonc\nbitrix_entity_chat { "entityType": "TASKS_TASK", "entityId": 28373 } // \u2192 chatId\n```\n\n**\u0411. \u0427\u0435\u0440\u0435\u0437 \u0441\u043F\u0438\u0441\u043E\u043A \u0447\u0430\u0442\u043E\u0432 \u0437\u0430\u0434\u0430\u0447** (\u0441\u0435\u043A\u0446\u0438\u044F `tasksTask`; \u0432 `bitrix_chats_recent` \u0438\u0445 \u041D\u0415\u0422):\n\n```jsonc\nbitrix_recent_load { "section": "tasksTask" } // \u2192 \u0447\u0430\u0442\u044B \u0437\u0430\u0434\u0430\u0447 \u0441 chatId/dialogId\nbitrix_recent_tail { "section": "tasksTask", "lastMessageDate": "2026-06-29T17:25:38+03:00" }\nbitrix_chat_load { "dialogId": "chat38849" } // \u0438\u043B\u0438 { "chatId": 38849 }\n```\n\n**\u0427\u0430\u0442 \u043F\u0443\u0441\u0442, \u0430 `COMMENTS_COUNT > 0`** \u2014 \u0437\u0430\u0434\u0430\u0447\u0430 \u0441\u0442\u0430\u0440\u0448\u0435 \u0447\u0430\u0442\u043E\u0432 \u0437\u0430\u0434\u0430\u0447: \u0432 \u0447\u0430\u0442\u0435 \u0442\u043E\u043B\u044C\u043A\u043E \u0441\u0438\u0441\u0442\u0435\u043C\u043D\u043E\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435\n\xAB\u0427\u0442\u043E\u0431\u044B \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044C \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0438, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0440\u0430\u043D\u0435\u0435 \u043E\u0441\u0442\u0430\u0432\u0438\u043B\u0438 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u0437\u0430\u0434\u0430\u0447\u0438\u2026\xBB, \u0430 \u0441\u0430\u043C\u043E \u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435 \u043B\u0435\u0436\u0438\u0442 \u0432\n\u0444\u043E\u0440\u0443\u043C\u0435 \u2192 `bitrix_task_comments` (\xA75.6).\n\n**\u0412. \u041F\u043E\u0438\u0441\u043A\u043E\u043C \u043F\u043E \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044E \u0437\u0430\u0434\u0430\u0447\u0438** (\u0437\u0430\u043F\u0430\u0441\u043D\u043E\u0439, \u043C\u0430\u0442\u0447 \u043F\u043E \u0442\u0435\u043A\u0441\u0442\u0443):\n`bitrix_entity_search { "query": "\u0442\u0440\u0435\u043A\u0435\u0440", "section": "tasksTask" }`\n\n**\u0427\u0430\u0442 \u041F\u0420\u041E\u0415\u041A\u0422\u0410 \u0437\u0430\u0434\u0430\u0447\u0438** (\u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435 \u0433\u0440\u0443\u043F\u043F\u044B, \u043D\u0435 \u0441\u0430\u043C\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438) \u2014 \u0447\u0435\u0440\u0435\u0437 `GROUP_ID`:\n\n```jsonc\nbitrix_task_get { "taskId": 4229, "params": { "select": ["ID","GROUP_ID"] } }\nbitrix_project_get { "groupId": 15 } // \u043E\u0442\u0434\u0430\u0451\u0442 CHAT_ID / DIALOG_ID\nbitrix_chat_get_dialog_id { "externalId": "sg15" } // \u043B\u0438\u0431\u043E \u0440\u0435\u0437\u043E\u043B\u0432 dialogId \u0441\u043E\u0446\u0433\u0440\u0443\u043F\u043F\u044B \u043D\u0430\u043F\u0440\u044F\u043C\u0443\u044E\n```\n\n### 5.3. \u041F\u043E\u0438\u0441\u043A \u0447\u0430\u0442\u0430 / \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F\n\n`bitrix_entity_search` (\u043E\u0431\u0451\u0440\u0442\u043A\u0430 \u043D\u0430\u0434 \u0432\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u0438\u043C `ui.entityselector.doSearch`) \u0441\u0430\u043C \u0441\u043E\u0431\u0438\u0440\u0430\u0435\u0442 \u0434\u0438\u0430\u043B\u043E\u0433\n`IM_CHAT_SEARCH` \u0438 `searchQuery` \u0438\u0437 \u0441\u0442\u0440\u043E\u043A\u0438. \u041F\u0443\u0431\u043B\u0438\u0447\u043D\u044B\u0435 \u0430\u043D\u0430\u043B\u043E\u0433\u0438: \u043B\u044E\u0434\u0438 \u2014 `user.get`/`user.search`, \u0447\u0430\u0442\u044B \u2014\n`im.recent.list` + \u0444\u0438\u043B\u044C\u0442\u0440\u0430\u0446\u0438\u044F \u0443 \u0441\u0435\u0431\u044F.\n\n```jsonc\nbitrix_entity_search { "query": "\u0434\u043C\u0438\u0442\u0440\u0438\u0439" } // \u0441\u0440\u0435\u0434\u0438 \u0432\u0441\u0435\u0445 \u0447\u0430\u0442\u043E\u0432/\u0434\u0438\u0430\u043B\u043E\u0433\u043E\u0432\nbitrix_entity_search { "query": "\u0442\u0440\u0435\u043A\u0435\u0440", "section": "tasksTask" } // \u0441\u0440\u0435\u0434\u0438 \u0447\u0430\u0442\u043E\u0432 \u0437\u0430\u0434\u0430\u0447\nbitrix_user_get { "userId": 11 } // \u0440\u0435\u0437\u043E\u043B\u0432 authorId \u2192 \u0438\u043C\u044F\n```\n\n### 5.4. \u0421\u043E\u0437\u0432\u043E\u043D: \u0440\u0435\u0437\u044E\u043C\u0435, \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0430, \u0437\u0430\u043F\u0438\u0441\u044C\n\nAI-\u0430\u043D\u0430\u043B\u0438\u0437 \u0437\u0432\u043E\u043D\u043A\u0430 (BitrixGPT Follow-Up) \u0436\u0438\u0432\u0451\u0442 \u043D\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u043D\u043E \u043E\u0442\u0440\u0435\u043D\u0434\u0435\u0440\u0435\u043D\u043D\u043E\u0439 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0435 `/call/detail/<callId>`\n\u2014 JSON-\u044D\u043D\u0434\u043F\u043E\u0438\u043D\u0442\u0430 \u043F\u043E\u0434 \u043D\u0435\u0439 \u043D\u0435\u0442, \u043F\u0443\u0431\u043B\u0438\u0447\u043D\u043E\u0433\u043E REST \u0434\u043B\u044F \u0432\u0438\u0434\u0435\u043E\u0432\u0441\u0442\u0440\u0435\u0447 \u0442\u043E\u0436\u0435 (\u{1F4D6} \u0442\u043E\u043B\u044C\u043A\u043E \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0438\u044F `voximplant.*`\n\u0438 `crm.activity.call.getTranscript`). \u041C\u043E\u0441\u0442 \u0447\u0438\u0442\u0430\u0435\u0442 \u044D\u0442\u0443 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443 \u0438 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u0442 \u0435\u0451 \u0432 \u043D\u043E\u0440\u043C\u0430\u043B\u0438\u0437\u043E\u0432\u0430\u043D\u043D\u044B\u0439 JSON.\n\n**1) \u041D\u0430\u0439\u0442\u0438 \u0437\u0432\u043E\u043D\u043A\u0438.** \u0421\u0435\u0440\u0432\u0435\u0440\u043D\u043E\u0433\u043E \u043F\u043E\u0438\u0441\u043A\u0430 \u0437\u0432\u043E\u043D\u043A\u043E\u0432 \u043F\u043E \u043F\u043E\u0440\u0442\u0430\u043B\u0443 \u043D\u0435\u0442 \u2014 \u0438\u0449\u0435\u043C \u0432 \u043A\u043E\u043D\u043A\u0440\u0435\u0442\u043D\u043E\u043C \u0447\u0430\u0442\u0435: \u0437\u0432\u043E\u043D\u043E\u043A\n\u043E\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u0442 \u0441\u0438\u0441\u0442\u0435\u043C\u043D\u043E\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u0441 `params.COMPONENT_PARAMS = { messageType: "START", callId }`.\n\n```jsonc\nbitrix_chat_calls { "chatId": 9876 } // \u0447\u0430\u0442 \u043F\u0440\u043E\u0435\u043A\u0442\u0430: bitrix_project_get \u2192 CHAT_ID\nbitrix_chat_calls { "chatId": 9876, "maxPages": 10, "beforeId": 5001 } // \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C \u0432\u0433\u043B\u0443\u0431\u044C (maxPages \u2264 10)\n```\n\n\u041E\u0442\u0432\u0435\u0442: `calls[] { callId, startedAt, startedBy, startMessageId, events[], summaryMessageId }` \u043F\u043B\u044E\u0441\n`scannedPages` / `oldestScannedMessageId` / **`reachedHistoryStart`** \u2014 \u0435\u0441\u043B\u0438 \u043E\u043D `false`, \u0438\u0441\u0442\u043E\u0440\u0438\u044F\n\u0434\u043E\u0447\u0438\u0442\u0430\u043D\u0430 \u041D\u0415 \u0434\u043E \u043A\u043E\u043D\u0446\u0430, \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0430\u0439 \u0441 `beforeId: <oldestScannedMessageId>`.\n\n**2) \u0412\u0437\u044F\u0442\u044C \u0432\u0441\u0451 \u043F\u043E \u0437\u0432\u043E\u043D\u043A\u0443.**\n\n```jsonc\nbitrix_call_detail { "callId": 4242 } // \u0432\u0441\u0451; \u0434\u043B\u0438\u043D\u043D\u0430\u044F \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0430 \u0443\u0435\u0434\u0435\u0442 \u0432 \u0444\u0430\u0439\u043B\nbitrix_call_detail { "callId": 4242, "transcript": "inline" } // \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0430 \u043F\u0440\u044F\u043C\u043E \u0432 \u043E\u0442\u0432\u0435\u0442\u0435\nbitrix_call_detail { "callId": 4242, "transcript": "none" } // \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0430 \u043D\u0435 \u043D\u0443\u0436\u043D\u0430 \u0432\u043E\u0432\u0441\u0435\nbitrix_call_detail { "callId": 4242, "transcript": "file" } // \u0432\u0441\u0435\u0433\u0434\u0430 \u0432 \u0444\u0430\u0439\u043B, \u0434\u0430\u0436\u0435 \u043A\u043E\u0440\u043E\u0442\u043A\u0430\u044F\n```\n\n| \u041F\u043E\u043B\u0435 \u043E\u0442\u0432\u0435\u0442\u0430 | \u0427\u0442\u043E \u0432\u043D\u0443\u0442\u0440\u0438 |\n|---|---|\n| `title`, `agenda`, `meetingType` | \u0442\u0435\u043C\u0430, \u0432\u0441\u0442\u0443\u043F\u043B\u0435\u043D\u0438\u0435, \u0442\u0438\u043F \u0432\u0441\u0442\u0440\u0435\u0447\u0438 (\xAB\u0421\u0442\u0430\u0442\u0443\u0441-\u0432\u0441\u0442\u0440\u0435\u0447\u0430\xBB) |\n| `date`, `interval`, `duration` | \xAB23 \u0438\u044E\u043B\u044F, 15:46\xBB, \xAB15:46 - 16:51\xBB, \xAB1 \u0447 4 \u043C\u0438\u043D\xBB |\n| `efficiency`, `qualityChecklist[]` | \u043E\u0446\u0435\u043D\u043A\u0430 \u0432\u0441\u0442\u0440\u0435\u0447\u0438 \u0432 % \u0438 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 `{ ok, text }` |\n| `participants[]` | `{ id, name, talkTimePercent, talkTime, efficiency, metrics[], insight }` |\n| `overview`, `chapters[]` | \u043E\u0431\u0449\u0435\u0435 \u0440\u0435\u0437\u044E\u043C\u0435 \u0438 \u0433\u043B\u0430\u0432\u044B `{ from, to, title, text }` \u0441 \u0442\u0430\u0439\u043C\u043A\u043E\u0434\u0430\u043C\u0438 |\n| `decisions[]`, `tasks[]` | \xAB\u0447\u0442\u043E \u0440\u0435\u0448\u0438\u043B\u0438\xBB \u0438 \u0437\u0430\u0434\u0430\u0447\u0438 `{ assigneeId, assignee, text }` |\n| `transcript[]`, `transcriptCount` | \u0440\u0435\u043F\u043B\u0438\u043A\u0438 `{ from, to, speakerId, speaker, text }` |\n| `recording` | `{ path, url, trackId }` \u2014 \u0430\u0443\u0434\u0438\u043E\u0437\u0430\u043F\u0438\u0441\u044C, \u043A\u0430\u0447\u0430\u0435\u0442\u0441\u044F `bitrix_call_recording` (\xA75.5) |\n\n**\u0420\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0430 \u0434\u043B\u0438\u043D\u043D\u043E\u0433\u043E \u0437\u0432\u043E\u043D\u043A\u0430 \u043D\u0435 \u043F\u0440\u0438\u0445\u043E\u0434\u0438\u0442 \u0432 \u043E\u0442\u0432\u0435\u0442\u0435.** \u0423 \u0447\u0430\u0441\u043E\u0432\u043E\u0439 \u0432\u0441\u0442\u0440\u0435\u0447\u0438 \u043E\u043D\u0430 \u0434\u0430\u0451\u0442 ~70 \u041A\u0411 \u0438\u0437 80 \u041A\u0411, \u043F\u043E\u044D\u0442\u043E\u043C\u0443\n\u0441\u0432\u044B\u0448\u0435 ~20 \u041A\u0411 (\u0440\u0435\u0436\u0438\u043C `"auto"` = \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u0435) \u043F\u0438\u0448\u0435\u0442\u0441\u044F \u043D\u0430 \u0434\u0438\u0441\u043A, \u0430 \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 \u043E\u0441\u0442\u0430\u044E\u0442\u0441\u044F `transcript: []`,\n`transcriptCount` \u0438 **`files`**: `files.transcript` \u2014 `call-<id>-transcript.txt`, \u0433\u0434\u0435 \u0441\u0442\u0440\u043E\u043A\u0430 = \u0440\u0435\u043F\u043B\u0438\u043A\u0430\n(`[11:10\u201411:24] \u0418\u043C\u044F \u0424\u0430\u043C\u0438\u043B\u0438\u044F: \u2026`), \u0435\u0451 \u0443\u0434\u043E\u0431\u043D\u043E **\u0433\u0440\u0435\u043F\u0430\u0442\u044C** (\u043D\u0430\u0439\u0434\u0435\u043D\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430 \u0441\u0430\u043C\u0430 \u043D\u0435\u0441\u0451\u0442 \u0442\u0430\u0439\u043C\u043A\u043E\u0434 \u0438\n\u0441\u043F\u0438\u043A\u0435\u0440\u0430); `files.json` \u2014 \u043F\u043E\u043B\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442 \u0441 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u043E\u0439. \u041E\u0431\u0430 \u0444\u0430\u0439\u043B\u0430 \u2014 \u043A\u0435\u0448 \u0437\u0432\u043E\u043D\u043A\u0430, \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0438\u0441\u044B\u0432\u0430\u044E\u0442\u0441\u044F.\n\n\u0422\u043E\u043D\u043A\u043E\u0441\u0442\u0438:\n- **`speakerId`** \u0440\u0435\u0437\u043E\u043B\u0432\u0438\u0442\u0441\u044F \u043F\u043E \u0438\u043C\u0435\u043D\u0438 \u0438\u0437 \u0442\u0430\u0431\u043B\u0438\u0446\u044B \u0430\u043D\u0430\u043B\u0438\u0437\u0430; \u043A\u0442\u043E \u0433\u043E\u0432\u043E\u0440\u0438\u043B \u043C\u0430\u043B\u043E \u0438 \u0432 \u043D\u0435\u0451 \u043D\u0435 \u043F\u043E\u043F\u0430\u043B \u2014 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\n `speakerId: null`, \u043D\u043E \u043E\u0441\u0442\u0430\u043D\u0435\u0442\u0441\u044F \u0432 `participants` \u0441 `id: null`.\n- **`assigneeId` \u0437\u0430\u0434\u0430\u0447\u0438** \u2014 \u0443\u043F\u043E\u043C\u044F\u043D\u0443\u0442\u044B\u0439 \u0432 \u0442\u0435\u043A\u0441\u0442\u0435 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C, \u0430 \u041D\u0415 id \u0441\u043C\u043E\u0442\u0440\u044F\u0449\u0435\u0433\u043E.\n- \u041D\u0435\u0442 \u0434\u043E\u0441\u0442\u0443\u043F\u0430 \u043A \u0437\u0432\u043E\u043D\u043A\u0443 / \u043F\u0440\u043E\u0442\u0443\u0445\u043B\u0430 \u0441\u0435\u0441\u0441\u0438\u044F \u2192 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442 \u0432\u0435\u0440\u043D\u0451\u0442 \u0432\u043D\u044F\u0442\u043D\u0443\u044E \u043E\u0448\u0438\u0431\u043A\u0443 (\u043F\u043E\u0440\u0442\u0430\u043B \u043E\u0442\u0434\u0430\u0451\u0442 HTML \u043B\u043E\u0433\u0438\u043D\u0430).\n\n### 5.5. \u0421\u043A\u0430\u0447\u0430\u0442\u044C \u0444\u0430\u0439\u043B (\u0432\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0447\u0430\u0442\u0430, \u0444\u0430\u0439\u043B \u0437\u0430\u0434\u0430\u0447\u0438, \u0437\u0430\u043F\u0438\u0441\u044C \u0437\u0432\u043E\u043D\u043A\u0430)\n\n\u0421\u0441\u044B\u043B\u043A\u0438 \u043F\u043E\u0440\u0442\u0430\u043B \u043C\u0438\u043D\u0442\u0438\u0442 \u0438 \u043F\u043E\u0434\u043F\u0438\u0441\u044B\u0432\u0430\u0435\u0442 \u0441\u0430\u043C, \u043D\u043E \u043F\u043E\u0434\u043F\u0438\u0441\u044C \u041D\u0415 \u0437\u0430\u043C\u0435\u043D\u044F\u0435\u0442 \u0430\u0432\u0442\u043E\u0440\u0438\u0437\u0430\u0446\u0438\u044E \u2014 \u043A\u0430\u0447\u0430\u0435\u0442 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u0435 \u0432\n\u0441\u0435\u0441\u0441\u0438\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F.\n\n```jsonc\n// \u0432\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0447\u0430\u0442\u0430: \u0441\u0441\u044B\u043B\u043A\u0443 \u0431\u0435\u0440\u0451\u043C \u0438\u0437 files[].urlDownload \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 bitrix_chat_load\nbitrix_file_download { "url": "https://<\u043F\u043E\u0440\u0442\u0430\u043B>/bitrix/services/main/ajax.php?action=disk.api.file.download&\u2026" }\nbitrix_call_recording { "callId": 4242 } // \u0430\u0443\u0434\u0438\u043E\u0437\u0430\u043F\u0438\u0441\u044C \u0441\u043E\u0437\u0432\u043E\u043D\u0430 (\u0441\u0441\u044B\u043B\u043A\u0443 \u043D\u0430\u0439\u0434\u0451\u0442 \u0441\u0430\u043C)\nbitrix_file_download { "url": "\u2026", "savePath": "/tmp/photo.png", "overwrite": true }\n```\n\n\u041E\u0442\u0432\u0435\u0442 \u2014 **\u043F\u0443\u0442\u044C, \u0430 \u043D\u0435 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0435**: `{ path, bytes, contentType, fileName }` (\u0433\u0438\u0433\u0430\u0431\u0430\u0439\u0442\u044B \u043D\u0435 \u043F\u043E\u043F\u0430\u0434\u0430\u044E\u0442 \u0432\n\u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442). \u041F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0444\u0430\u0439\u043B \u043B\u043E\u0436\u0438\u0442\u0441\u044F \u0432 `~/.bitrix24-mcp-bridge/downloads/`; `savePath` \u0431\u0435\u0437 \u0432\u0435\u0434\u0443\u0449\u0435\u0433\u043E `/`\n\u0442\u0440\u0430\u043A\u0442\u0443\u0435\u0442\u0441\u044F \u043A\u0430\u043A \u0438\u043C\u044F \u0432\u043D\u0443\u0442\u0440\u0438 \u044D\u0442\u043E\u0439 \u043F\u0430\u043F\u043A\u0438. \u041F\u043E\u0442\u043E\u043B\u043E\u043A \u2014 512 \u041C\u0411.\n\n\u0422\u043E\u043D\u043A\u043E\u0441\u0442\u0438:\n- **\u0422\u043E\u043B\u044C\u043A\u043E \u0441\u0441\u044B\u043B\u043A\u0438 \u043D\u0430 \u0444\u0430\u0439\u043B\u044B** \u0441\u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0433\u043E \u043F\u043E\u0440\u0442\u0430\u043B\u0430: `/bitrix/services/main/ajax.php` \u0441 `action`\n `disk.api.file.download` / `disk.attachedObject.download` / `call.Track.download` \u0438\u043B\u0438\n `/bitrix/tools/disk/uf.php` \u0441 `action` `download` / `show` / `downloadArchiveByEntity`. \u0427\u0443\u0436\u043E\u0439 origin\n \u2192 `not a configured portal`; \u0434\u0440\u0443\u0433\u043E\u0439 \u043F\u0443\u0442\u044C, \u0434\u0440\u0443\u0433\u043E\u0439, \u043F\u043E\u0432\u0442\u043E\u0440\u0451\u043D\u043D\u044B\u0439 \u0438\u043B\u0438 `action[]` \u2192 `not a portal file\n link`. \u0411\u0435\u0440\u0438 \u0441\u0441\u044B\u043B\u043A\u0438 \u0438\u0437 \u043E\u0442\u0432\u0435\u0442\u043E\u0432 \u043C\u043E\u0441\u0442\u0430, \u043D\u0435 \u0441\u043E\u0431\u0438\u0440\u0430\u0439 \u0438\u0445 \u0441\u0430\u043C.\n- **\u0418\u043C\u044F \u0434\u0430\u0451\u0442 \u043F\u043E\u0440\u0442\u0430\u043B** (`Content-Disposition`), \u043F\u043E\u044D\u0442\u043E\u043C\u0443 \u0431\u0435\u0437 `savePath` \u0443\u0433\u0430\u0434\u044B\u0432\u0430\u0442\u044C \u0435\u0433\u043E \u043D\u0435 \u043D\u0443\u0436\u043D\u043E.\n- **\u041F\u043E\u0432\u0442\u043E\u0440\u043D\u043E\u0435 \u0441\u043A\u0430\u0447\u0438\u0432\u0430\u043D\u0438\u0435** \u0442\u043E\u0433\u043E \u0436\u0435 \u0444\u0430\u0439\u043B\u0430 \u043F\u0430\u0434\u0430\u0435\u0442 \u0441 `already exists` \u2014 \u043F\u0435\u0440\u0435\u0434\u0430\u0439 `overwrite: true`.\n\n### 5.6. \u0421\u0442\u0430\u0440\u044B\u0435 \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 (\u0444\u043E\u0440\u0443\u043C)\n\n\u0414\u043E \u043F\u0435\u0440\u0435\u0445\u043E\u0434\u0430 \u043D\u0430 \u0447\u0430\u0442\u044B \u0437\u0430\u0434\u0430\u0447 \u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435 \u0436\u0438\u043B\u043E \u0432 \u0444\u043E\u0440\u0443\u043C\u0435 \u0437\u0430\u0434\u0430\u0447\u0438, \u0438 \u0443 \u0441\u0442\u0430\u0440\u044B\u0445 \u0437\u0430\u0434\u0430\u0447 \u043E\u043D\u043E \u0442\u0430\u043C \u0438 \u043E\u0441\u0442\u0430\u043B\u043E\u0441\u044C: \u0432\n\u0447\u0430\u0442\u0435 (`CHAT_ID`) \u0442\u043E\u043B\u044C\u043A\u043E \u0441\u0438\u0441\u0442\u0435\u043C\u043D\u0430\u044F \u0437\u0430\u0433\u043B\u0443\u0448\u043A\u0430 \u0441\u043E \u0441\u0441\u044B\u043B\u043A\u043E\u0439 `/task/comments/<id>/`. \u041F\u0440\u0438\u0437\u043D\u0430\u043A \u2014 \u0432\n`bitrix_task_get` \u043F\u043E\u043B\u0435 `COMMENTS_COUNT > 0` (\u0447\u0435\u0440\u0435\u0437 `params.select`; `FORUM_TOPIC_ID` \u0442\u043E\u0436\u0435 \u0437\u0430\u043F\u043E\u043B\u043D\u0435\u043D),\n\u0430 \u0447\u0430\u0442 \u043F\u0443\u0441\u0442. JSON-\u043C\u0435\u0442\u043E\u0434\u0430 \u0447\u0442\u0435\u043D\u0438\u044F \u043D\u0435\u0442 \u2014 \u043C\u043E\u0441\u0442 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u0442 HTML-\u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443 \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0435\u0432.\n\n```jsonc\nbitrix_task_comments { "taskId": 1234 } // \u0432\u0441\u0451 \u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435; \u0434\u043B\u0438\u043D\u043D\u043E\u0435 \u0443\u0435\u0434\u0435\u0442 \u0432 \u0444\u0430\u0439\u043B\nbitrix_task_comments { "taskId": 1234, "limit": 10 } // \u0442\u043E\u043B\u044C\u043A\u043E 10 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0445\nbitrix_task_comments { "taskId": 1234, "output": "inline" } // \u0432\u0441\u0435\u0433\u0434\u0430 \u0432 \u043E\u0442\u0432\u0435\u0442\u0435\nbitrix_task_comments { "taskId": 1234, "beforeId": 5678 } // \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C \u0432\u0433\u043B\u0443\u0431\u044C \u043E\u0442 id\n```\n\n\u041E\u0442\u0432\u0435\u0442: `comments[]` \u043F\u043E \u043F\u043E\u0440\u044F\u0434\u043A\u0443 (\u0441\u0442\u0430\u0440\u044B\u0435 \u2192 \u043D\u043E\u0432\u044B\u0435) \u2014 `{ id, authorId, author, date, dateIso, text, isNew,\nsystem, files[] }`, \u043F\u043B\u044E\u0441 `total`, `oldestId`, `scannedPages` \u0438 **`reachedHistoryStart`**: \u0435\u0441\u043B\u0438 \u043E\u043D\n`false` (\u0443\u043F\u0451\u0440\u043B\u0438\u0441\u044C \u0432 `maxPages` \u2014 \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u0435 \u0438 \u043C\u0430\u043A\u0441\u0438\u043C\u0443\u043C 10 \u2014 \u0438\u043B\u0438 \u0432 `limit`), \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0430\u0439 \u0441 `beforeId: <oldestId>`.\n\n- **`system: true`** \u2014 \u0441\u043B\u0443\u0436\u0435\u0431\u043D\u044B\u0435 \u0437\u0430\u043F\u0438\u0441\u0438 (\xAB\u0432\u044B \u043D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u044B \u0438\u0441\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u0435\u043C\xBB, \u0441\u043C\u0435\u043D\u0430 \u0441\u0440\u043E\u043A\u0430, \u043F\u0438\u043D\u0433\u0438), \u043D\u0435 \u0441\u043B\u043E\u0432\u0430 \u043B\u044E\u0434\u0435\u0439.\n- **`date`** \u2014 \u043A\u0430\u043A \u043D\u0430 \u043F\u043E\u0440\u0442\u0430\u043B\u0435 (\xAB9 \u043C\u0430\u0440\u0442\u0430 2024 08:15\xBB), **`dateIso`** \u2014 \u0442\u043E \u0436\u0435 \u0432 `2024-03-09T08:15`\n (\u043C\u0435\u0441\u0442\u043D\u043E\u0435 \u0432\u0440\u0435\u043C\u044F \u043F\u043E\u0440\u0442\u0430\u043B\u0430; \u0434\u043B\u044F \xAB\u0432\u0447\u0435\u0440\u0430, 12:00\xBB \u0438 \u0434\u0430\u0442 \u0431\u0435\u0437 \u0433\u043E\u0434\u0430 \u2014 `null`).\n- **`files[]`** \u2014 `{ attachedId, name, size, url }`; `url` \u0441\u043A\u0430\u0440\u043C\u043B\u0438\u0432\u0430\u0439 `bitrix_file_download` (\xA75.5).\n- **`text`** \u2014 \u0431\u0435\u0437 \u0440\u0430\u0437\u043C\u0435\u0442\u043A\u0438; \u0443 \u0441\u0441\u044B\u043B\u043A\u0438 \u0441 \u043F\u043E\u0434\u043F\u0438\u0441\u044C\u044E \u0430\u0434\u0440\u0435\u0441 \u0434\u043E\u043F\u0438\u0441\u0430\u043D \u0432 \u0441\u043A\u043E\u0431\u043A\u0430\u0445: \xAB\u043C\u0430\u043A\u0435\u0442 (https://\u2026)\xBB.\n- **\u0414\u043B\u0438\u043D\u043D\u043E\u0435 \u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435 \u043D\u0435 \u043F\u0440\u0438\u0445\u043E\u0434\u0438\u0442 \u0432 \u043E\u0442\u0432\u0435\u0442\u0435** (\u043A\u0430\u043A \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0430 \u0437\u0432\u043E\u043D\u043A\u0430, \xA75.4): \u0441\u0432\u044B\u0448\u0435 ~20 \u041A\u0411 (`output:\n "auto"` = \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u0435) \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 `comments: []` \u0438 `files`: `files.text` \u2014 `task-<id>-comments.txt`,\n \u0441\u0442\u0440\u043E\u043A\u0430 = \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0439 (`#5678 [2024-03-09T08:15] \u0418\u043C\u044F (id 101): \u0442\u0435\u043A\u0441\u0442`, \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u044B \u2014 ` \u23CE `), \u0435\u0451 \u0443\u0434\u043E\u0431\u043D\u043E\n \u0433\u0440\u0435\u043F\u0430\u0442\u044C; `files.json` \u2014 \u043F\u043E\u043B\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442. `output: "file"` \u2014 \u0432\u0441\u0435\u0433\u0434\u0430 \u0432 \u0444\u0430\u0439\u043B.\n- **\u041F\u0440\u043E\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u043C \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u043F\u043E\u043C\u0435\u0447\u0430\u0435\u0442\u0441\u044F.** \u041F\u043E\u0440\u0442\u0430\u043B \u043E\u0442\u043C\u0435\u0447\u0430\u0435\u0442 \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0438 \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u044B\u043C \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435\u043C\n `readComment`, \u043A\u043E\u0442\u043E\u0440\u043E\u0435 \u0448\u043B\u0451\u0442 JS \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B \u043F\u0440\u0438 \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0435; \u043C\u043E\u0441\u0442 JS \u043D\u0435 \u0438\u0441\u043F\u043E\u043B\u043D\u044F\u0435\u0442. \u041F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043E:\n `viewedDate` \u0437\u0430\u0434\u0430\u0447\u0438 \u043F\u043E\u0441\u043B\u0435 \u0447\u0442\u0435\u043D\u0438\u044F \u043D\u0435 \u043C\u0435\u043D\u044F\u0435\u0442\u0441\u044F. `isNew: true` \u2014 \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0439 \u043D\u0435 \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u043D \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u043C.\n- \u041D\u0435\u0442 \u0434\u043E\u0441\u0442\u0443\u043F\u0430 \u043A \u0437\u0430\u0434\u0430\u0447\u0435 / \u043F\u0440\u043E\u0442\u0443\u0445\u043B\u0430 \u0441\u0435\u0441\u0441\u0438\u044F \u2192 \u0432\u043D\u044F\u0442\u043D\u0430\u044F \u043E\u0448\u0438\u0431\u043A\u0430 (\u043F\u043E\u0440\u0442\u0430\u043B \u043E\u0442\u0434\u0430\u0451\u0442 HTML \u043B\u043E\u0433\u0438\u043D\u0430).\n\n### 5.7. \u0417\u0430\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443: Definition of Done\n\n\u0412 scrum-\u043F\u0440\u043E\u0435\u043A\u0442\u0435 \u0437\u0430\u0434\u0430\u0447\u0430 \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0435\u0442\u0441\u044F \u0447\u0435\u0440\u0435\u0437 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0433\u043E\u0442\u043E\u0432\u043D\u043E\u0441\u0442\u0438 (DoD), \u043A\u0430\u043A \u0432 \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0435 \u0437\u0430\u0434\u0430\u0447\u0438, \u0438 **\u043C\u043E\u0441\u0442 \u0438\u0445\n\u043D\u0435 \u043E\u0431\u0445\u043E\u0434\u0438\u0442**: \u043E\u0442\u043C\u0435\u0442\u0438\u0442\u044C \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043D\u044B\u043C\u0438 \u043C\u043E\u0436\u0435\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u0432\u0442\u043E\u0440\u043E\u0439 \u0432\u044B\u0437\u043E\u0432 \u2014 \u043F\u043E\u0441\u043B\u0435 \u044F\u0432\u043D\u043E\u0433\u043E \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u044F\n\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F. \u041F\u0435\u0440\u0435\u043D\u043E\u0441 \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u0442\u0438\u043F\u0430 `FINISH` \u0437\u0430\u043A\u0440\u044B\u043B \u0431\u044B \u0437\u0430\u0434\u0430\u0447\u0443 \u043C\u0438\u043C\u043E DoD, \u043F\u043E\u044D\u0442\u043E\u043C\u0443 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u043E\u0441\u043A\u0438 \u0442\u0430\u043A\u0443\u044E\n\u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u043D\u0435 \u043F\u0440\u0438\u043D\u0438\u043C\u0430\u044E\u0442 (\xA73) \u2014 \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0439 \u0442\u043E\u043B\u044C\u043A\u043E \u0442\u0430\u043A.\n\n```jsonc\n// \u0448\u0430\u0433 1\nbitrix_task_close { "taskId": 4229 }\n// \u043D\u0435 scrum-\u043F\u0440\u043E\u0435\u043A\u0442 \u0438\u043B\u0438 DoD \u043D\u0435 \u043D\u0443\u0436\u0435\u043D \u2192 \u0437\u0430\u0434\u0430\u0447\u0430 \u0441\u0440\u0430\u0437\u0443 \u0437\u0430\u043A\u0440\u044B\u0442\u0430: { taskId, status: 5, changed: true }\n// DoD \u043D\u0443\u0436\u0435\u043D \u2192 \u0437\u0430\u0434\u0430\u0447\u0430 \u041D\u0415 \u0437\u0430\u043A\u0440\u044B\u0442\u0430:\n// { taskId, needsConfirmation: true,\n// types: [{ id: 1, name: "\u2026", required: true, items: [{ title: "\u2026", group: "\u2026" }, \u2026] }, \u2026] }\n\n// \u0448\u0430\u0433 2 \u2014 \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u043E\u0441\u043B\u0435 \xAB\u0434\u0430\xBB \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043D\u0430 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E \u0442\u0438\u043F\u0430\nbitrix_task_close { "taskId": 4229, "typeId": 1, "confirmItems": true }\n// \u2192 { taskId, status: 5, changed: true, typeId: 1 }\n```\n\n- `types` \u2014 \u0442\u0438\u043F\u044B \u0437\u0430\u0434\u0430\u0447 \u043F\u0440\u043E\u0435\u043A\u0442\u0430 \u0438 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u043A\u0430\u0436\u0434\u043E\u0433\u043E; `required: true` \u2014 DoD \u0434\u043B\u044F \u0442\u0438\u043F\u0430 \u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u0435\u043D. `group` \u2014\n \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u0433\u0440\u0443\u043F\u043F\u044B \u0447\u0435\u043A-\u043B\u0438\u0441\u0442\u0430, \u0432 \u043A\u043E\u0442\u043E\u0440\u043E\u0439 \u043B\u0435\u0436\u0438\u0442 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0439 (\u0441\u0430\u043C\u0430 \u0433\u0440\u0443\u043F\u043F\u0430 \u0432 `items` \u043D\u0435 \u043F\u043E\u043F\u0430\u0434\u0430\u0435\u0442). \u041F\u043E\u043A\u0430\u0436\u0438\n \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0438 \u043F\u043E\u043B\u0443\u0447\u0438 \u0435\u0433\u043E \u044F\u0432\u043D\u043E\u0435 \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u0435 \u043E\u0442\u043C\u0435\u0442\u0438\u0442\u044C \u0438\u0445 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043D\u044B\u043C\u0438 \u0434\u043B\u044F \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E \u0442\u0438\u043F\u0430. \u0421\u0430\u043C \u0437\u0430\n \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043D\u0435 \u0440\u0435\u0448\u0430\u0439: \u043D\u0435\u0442 \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u044F \u2014 \u0448\u0430\u0433 2 \u043D\u0435 \u0432\u044B\u0437\u044B\u0432\u0430\u0439. **\u0422\u0438\u043F \u0432\u044B\u0431\u0438\u0440\u0430\u0435\u0442 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C**: \u0442\u0438\u043F \u0441\n `required: false` \u0437\u0430\u043A\u0440\u043E\u0435\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 \u0431\u0435\u0437 \u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0445 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0435\u0432 \u2014 \u0435\u0433\u043E \u0442\u043E\u0436\u0435 \u0431\u0435\u0440\u0438 \u0442\u043E\u043B\u044C\u043A\u043E \u0441 \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u044F\n \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F.\n- \u041D\u0430 \u0448\u0430\u0433\u0435 2 \u043E\u0442\u043C\u0435\u0447\u0430\u044E\u0442\u0441\u044F **\u0432\u0441\u0435** \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0442\u0438\u043F\u0430, \u0437\u0430\u0442\u0435\u043C \u0437\u0430\u0434\u0430\u0447\u0430 \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0435\u0442\u0441\u044F \u0438 \u0441\u0442\u0430\u0442\u0443\u0441 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442\u0441\u044F (\u043D\u0435\n \u0437\u0430\u043A\u0440\u044B\u043B\u0430\u0441\u044C \u2014 \u043E\u0448\u0438\u0431\u043A\u0430). `typeId` \u0438 `confirmItems: true` \u043F\u0435\u0440\u0435\u0434\u0430\u044E\u0442\u0441\u044F \u0442\u043E\u043B\u044C\u043A\u043E \u0432\u043C\u0435\u0441\u0442\u0435; \u0437\u0430\u0434\u0430\u0447\u0435 \u043D\u0435 \u0438\u0437\n scrum-\u043F\u0440\u043E\u0435\u043A\u0442\u0430 \u043E\u043D\u0438 \u043D\u0435 \u043D\u0443\u0436\u043D\u044B (\u043E\u0448\u0438\u0431\u043A\u0430 \u2014 \u0437\u0430\u043A\u0440\u043E\u0439 \u0435\u0451 \u0431\u0435\u0437 \u043D\u0438\u0445).\n- \u0423\u0436\u0435 \u0437\u0430\u043A\u0440\u044B\u0442\u0430\u044F \u0437\u0430\u0434\u0430\u0447\u0430 \u043D\u0435 \u0442\u0440\u043E\u0433\u0430\u0435\u0442\u0441\u044F (`changed: false`). \u0417\u0430\u043A\u0440\u044B\u0442\u0438\u0435 \u0432\u0438\u0434\u044F\u0442 \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443; \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438\n \u043F\u043E\u043B\u0443\u0447\u0430\u044E\u0442 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0435. \u0412\u043E\u0437\u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u2014 `bitrix_task_reopen { "taskIds": [4229] }`.\n- \xAB\u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 DoD \u043E\u0442\u043C\u0435\u0447\u0435\u043D\u044B \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043D\u044B\u043C\u0438, \u043D\u043E \u0437\u0430\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C\xBB \u2014 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0443\u0436\u0435 \u043E\u0442\u043C\u0435\u0447\u0435\u043D\u044B, \u0437\u0430\u0434\u0430\u0447\u0430\n \u043E\u0442\u043A\u0440\u044B\u0442\u0430. \xAB\u2026\u2014 \u0437\u0430\u043A\u0440\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0443 \u0432 \u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435\xBB \u2014 \u043C\u043E\u0441\u0442 \u043D\u0435 \u0441\u043C\u043E\u0433 \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044C DoD \u0438\u0437 \u043E\u0442\u0432\u0435\u0442\u0430 Bitrix; \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0438\n \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E \u0437\u0430\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u0432 \u0432\u0435\u0431-\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435.\n\n### 5.8. \u041F\u0440\u0438\u043A\u0440\u0435\u043F\u0438\u0442\u044C \u043B\u043E\u043A\u0430\u043B\u044C\u043D\u044B\u0439 \u0444\u0430\u0439\u043B \u043A \u0437\u0430\u0434\u0430\u0447\u0435\n\n```jsonc\nbitrix_task_file_attach { "taskId": 4229, "path": "/tmp/report.pdf" }\nbitrix_task_file_attach { "taskId": 4229, "path": "/tmp/out.csv", "name": "\u0438\u0442\u043E\u0433\u0438.csv" }\n// \u2192 { taskId, diskFileId, name, size, attachmentId }\n```\n\n- **\u0424\u0430\u0439\u043B \u0443\u0445\u043E\u0434\u0438\u0442 \u0441 \u043C\u0430\u0448\u0438\u043D\u044B**: \u043E\u043D \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044F \u0432 \u043A\u043E\u0440\u0435\u043D\u044C \u0414\u0438\u0441\u043A\u0430 \u0411\u0438\u0442\u0440\u0438\u043A\u044124 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u0438 \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u044F\u0435\u0442\u0441\u044F \u043A\n \u0437\u0430\u0434\u0430\u0447\u0435 \u2014 \u0435\u0433\u043E \u0443\u0432\u0438\u0434\u044F\u0442 \u0438 \u0441\u043C\u043E\u0433\u0443\u0442 \u0441\u043A\u0430\u0447\u0430\u0442\u044C \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443. \u041F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u044F\u0439 \u0442\u043E\u043B\u044C\u043A\u043E \u0442\u043E, \u0447\u0442\u043E \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\n \u044F\u0432\u043D\u043E \u043F\u043E\u043F\u0440\u043E\u0441\u0438\u043B; \u043B\u044E\u0431\u043E\u0439 \u0434\u0440\u0443\u0433\u043E\u0439 \u0444\u0430\u0439\u043B \u2014 \u0441\u043D\u0430\u0447\u0430\u043B\u0430 \u0441\u043F\u0440\u043E\u0441\u0438.\n- `path` \u2014 **\u0430\u0431\u0441\u043E\u043B\u044E\u0442\u043D\u044B\u0439** \u043F\u0443\u0442\u044C \u043A \u043E\u0431\u044B\u0447\u043D\u043E\u043C\u0443 \u043D\u0435\u043F\u0443\u0441\u0442\u043E\u043C\u0443 \u0444\u0430\u0439\u043B\u0443 \u0434\u043E 10 \u041C\u0411: \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F \u0432\u044B\u043F\u043E\u043B\u043D\u044F\u0435\u0442\u0441\u044F \u0432 \u043F\u0440\u043E\u0446\u0435\u0441\u0441\u0435\n daemon, \u0430 \u043D\u0435 \u0432 \u0442\u0432\u043E\u0451\u043C \u0440\u0430\u0431\u043E\u0447\u0435\u043C \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0435. `name` \u2014 \u0438\u043C\u044F \u0432 \u0411\u0438\u0442\u0440\u0438\u043A\u044124 (\u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u2014 \u0438\u0437 `path`, \u0431\u0435\u0437\n \u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B\u0435\u0439 \u043F\u0443\u0442\u0438); \u0435\u0441\u043B\u0438 \u0438\u043C\u044F \u043D\u0430 \u0414\u0438\u0441\u043A\u0435 \u0437\u0430\u043D\u044F\u0442\u043E, \u0411\u0438\u0442\u0440\u0438\u043A\u044124 \u0434\u043E\u0431\u0430\u0432\u0438\u0442 \u0441\u0443\u0444\u0444\u0438\u043A\u0441 \u2014 \u0438\u0442\u043E\u0433\u043E\u0432\u043E\u0435 \u0438\u043C\u044F \u0432 \u043E\u0442\u0432\u0435\u0442\u0435.\n- \u0418\u0437 \u0441\u043B\u0443\u0436\u0435\u0431\u043D\u043E\u0433\u043E \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0430 \u043C\u043E\u0441\u0442\u0430 (`~/.bitrix24-mcp-bridge` \u0438\u043B\u0438 `BITRIX24_MCP_BRIDGE_HOME`; \u0442\u0430\u043C \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0438\n \u0442\u043E\u043A\u0435\u043D) \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u044F\u044E\u0442\u0441\u044F \u0442\u043E\u043B\u044C\u043A\u043E \u0444\u0430\u0439\u043B\u044B, \u0441\u043A\u0430\u0447\u0430\u043D\u043D\u044B\u0435 \u043C\u043E\u0441\u0442\u043E\u043C, \u2014 \u0438\u0437 `downloads/` (\u0438\u0445 \u043C\u043E\u0436\u043D\u043E \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u0438\u0442\u044C \u043A \u0434\u0440\u0443\u0433\u043E\u0439\n \u0437\u0430\u0434\u0430\u0447\u0435). \u0412\u0441\u0451 \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u043E\u0435 \u0432 \u043D\u0451\u043C \u2014 \u043E\u0442\u043A\u0430\u0437, \u0432 \u0442\u043E\u043C \u0447\u0438\u0441\u043B\u0435 \u0447\u0435\u0440\u0435\u0437 \u0441\u0438\u043C\u043B\u0438\u043D\u043A \u0438\u043B\u0438 `..`.\n- \u041D\u0443\u0436\u043D\u043E \u043F\u0440\u0430\u0432\u043E \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u044F\u0442\u044C \u0444\u0430\u0439\u043B\u044B \u043A \u0437\u0430\u0434\u0430\u0447\u0435: \u0442\u043E\u043C\u0443, \u043A\u0442\u043E \u0437\u0430\u0434\u0430\u0447\u0443 \u0442\u043E\u043B\u044C\u043A\u043E \u0432\u0438\u0434\u0438\u0442, Bitrix \u043C\u043E\u0436\u0435\u0442 \u043E\u0442\u043A\u0430\u0437\u0430\u0442\u044C \u0443\u0436\u0435 \u043F\u043E\u0441\u043B\u0435\n \u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0438. \u0415\u0441\u043B\u0438 \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u0438\u0442\u044C \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C, \u0444\u0430\u0439\u043B **\u043E\u0441\u0442\u0430\u0451\u0442\u0441\u044F \u043D\u0430 \u0414\u0438\u0441\u043A\u0435** \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u2014 \u043E\u0448\u0438\u0431\u043A\u0430 \u043D\u0430\u0437\u044B\u0432\u0430\u0435\u0442 \u0435\u0433\u043E (\u0438\u043C\u044F\n \u0438 id); \u0441\u043A\u0430\u0436\u0438 \u043E\u0431 \u044D\u0442\u043E\u043C \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E.\n- \xAB\u0444\u0430\u0439\u043B \u043C\u043E\u0433 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C\u0441\u044F \u043D\u0430 \u0414\u0438\u0441\u043A\xBB \u2014 \u043F\u0440\u043E\u0432\u0435\u0440\u044C \u043A\u043E\u0440\u043D\u0435\u0432\u0443\u044E \u043F\u0430\u043F\u043A\u0443 \u0414\u0438\u0441\u043A\u0430 \u043F\u0435\u0440\u0435\u0434 \u043F\u043E\u0432\u0442\u043E\u0440\u043E\u043C; \xAB\u0432\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u043C\u043E\u0433\u043B\u043E\n \u0441\u043E\u0437\u0434\u0430\u0442\u044C\u0441\u044F\xBB \u2014 \u043F\u0440\u043E\u0432\u0435\u0440\u044C \u0444\u0430\u0439\u043B\u044B \u0437\u0430\u0434\u0430\u0447\u0438 (`bitrix_task_get` \u0441 `select: ["UF_TASK_WEBDAV_FILES"]` \u2192\n `bitrix_task_files`). \u041F\u043E\u0441\u043B\u0435 \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u0435\u043D\u0438\u044F \u0444\u0430\u0439\u043B\u044B \u0437\u0430\u0434\u0430\u0447\u0438 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u044E\u0442\u0441\u044F; \u0432\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u043D\u0435\u0442 \u2014 \u043E\u0448\u0438\u0431\u043A\u0430.\n\n### 5.9. \u041D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F \u0438 \u0441\u0432\u043E\u0438 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u043F\u043E \u0437\u0430\u0434\u0430\u0447\u0435\n\n\u041D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F \u0438 \u0432\u044B\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0439 \u043A\u0430\u0441\u0430\u044E\u0442\u0441\u044F **\u0442\u043E\u043B\u044C\u043A\u043E \u0442\u0435\u043A\u0443\u0449\u0435\u0433\u043E \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F**: \u0434\u0440\u0443\u0433\u0438\u0435 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u0438\u0445 \u043D\u0435\n\u0432\u0438\u0434\u044F\u0442 \u0438 \u043F\u043E\u043B\u0443\u0447\u0430\u044E\u0442 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u043A\u0430\u043A \u043F\u0440\u0435\u0436\u0434\u0435.\n\n```jsonc\nbitrix_task_reminders { "taskId": 4229 }\n// \u2192 { taskId, reminders: [{ id, at, via, remindBy, recipient, userId, mine }] }\nbitrix_task_reminder_set { "taskId": 4229, "at": "2026-12-01T09:00:00+03:00", "via": "notification" } // \u043D\u043E\u0432\u043E\u0435 \u2014 \u0442\u0435\u0431\u0435\nbitrix_task_reminder_set { "taskId": 4229, "reminderId": 61, "at": "2026-12-02T06:00:00Z", "via": "email" }\nbitrix_task_reminder_delete { "taskId": 4229, "reminderId": 61 }\nbitrix_task_mute { "taskId": 4229, "muted": true } // \u0432\u044B\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0441\u0432\u043E\u0438 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u043F\u043E \u0437\u0430\u0434\u0430\u0447\u0435\n```\n\n- \u041C\u0435\u043D\u044F\u0442\u044C \u0438 \u0443\u0434\u0430\u043B\u044F\u0442\u044C \u043C\u043E\u0436\u043D\u043E \u0442\u043E\u043B\u044C\u043A\u043E **\u0441\u0432\u043E\u0438** \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F \u2014 `mine: true` \u0432 `bitrix_task_reminders`; \u0447\u0443\u0436\u043E\u0435 \u0438\u043B\u0438\n \u043D\u0435 \u044D\u0442\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u2014 \u043E\u0448\u0438\u0431\u043A\u0430, \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u043C\u0435\u043D\u044F\u0435\u0442\u0441\u044F.\n- `at` \u2014 \u0430\u0431\u0441\u043E\u043B\u044E\u0442\u043D\u0430\u044F \u0434\u0430\u0442\u0430 **\u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043C** (\u0444\u043E\u0440\u043C\u0430\u0442 \u2014 \xAB\u0414\u0430\u0442\u044B\xBB, \xA73); `via` \u2014 `notification` (\u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0435 \u0432\n \u0411\u0438\u0442\u0440\u0438\u043A\u044124) \u0438\u043B\u0438 `email`. \u041D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 \u043E\u0442\u043D\u043E\u0441\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u0441\u0440\u043E\u043A\u0430 (`remindBy: "deadline"`) \u043F\u043E\u0441\u043B\u0435 \u043F\u0440\u0430\u0432\u043A\u0438 \u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0441\u044F\n \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435\u043C \u043D\u0430 \u0434\u0430\u0442\u0443; \u043F\u043E\u043B\u0443\u0447\u0430\u0442\u0435\u043B\u044C (`recipient`) \u043E\u0441\u0442\u0430\u0451\u0442\u0441\u044F \u043F\u0440\u0435\u0436\u043D\u0438\u043C.\n- \u041F\u043E\u0441\u043B\u0435 \u0437\u0430\u043F\u0438\u0441\u0438 \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 \u0438 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0439 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u044E\u0442\u0441\u044F; \u0435\u0441\u043B\u0438 \u043E\u043D\u0438 \u043D\u0435 \u0442\u0435 \u2014 \u043E\u0448\u0438\u0431\u043A\u0430.\n\n---\n\n\u041D\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0430 \u043F\u043E\u0434 \u043D\u0443\u0436\u043D\u043E\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u2014 \u0441\u043A\u0430\u0436\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E: \u043D\u043E\u0432\u044B\u0435 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u043E\u0431\u0430\u0432\u043B\u044F\u0435\u0442\n\u043C\u0435\u0439\u043D\u0442\u0435\u0439\u043D\u0435\u0440 \u043C\u043E\u0441\u0442\u0430 (\u043F\u0440\u043E\u0446\u0435\u0441\u0441 \u2014 `docs/reconnaissance.md` \u0432 \u0440\u0435\u043F\u043E\u0437\u0438\u0442\u043E\u0440\u0438\u0438 \u043C\u043E\u0441\u0442\u0430).\n' : load();
|
|
32109
|
+
var HELP = '# Bitrix24 API notes (reverse-engineered)\n\n\u041A\u0430\u043A \u0430\u0433\u0435\u043D\u0442\u0443 \u0440\u0430\u0431\u043E\u0442\u0430\u0442\u044C \u0441 Bitrix24 \u0447\u0435\u0440\u0435\u0437 \u044D\u0442\u043E\u0442 \u043C\u043E\u0441\u0442: \u0444\u043E\u0440\u043C\u0430\u0442 `params`, \u0438\u043C\u0435\u043D\u0430 \u043F\u043E\u043B\u0435\u0439, \u0433\u043E\u0442\u043E\u0432\u044B\u0435 \u0446\u0435\u043F\u043E\u0447\u043A\u0438 \u0432\u044B\u0437\u043E\u0432\u043E\u0432.\n\n\u0414\u0432\u0435 \u043F\u043E\u0432\u0435\u0440\u0445\u043D\u043E\u0441\u0442\u0438 API. **\u041F\u0443\u0431\u043B\u0438\u0447\u043D\u044B\u0439 REST** (`tasks.task.*`, `im.recent.list`, `im.user.get`, `im.chat.get`,\n`socialnetwork.api.workgroup.*`) \u2014 \u0435\u0441\u0442\u044C \u043E\u0444\u0438\u0446\u0438\u0430\u043B\u044C\u043D\u044B\u0435 \u0434\u043E\u043A\u0438, \u0441\u0441\u044B\u043B\u043A\u0438 \u043D\u0430 \u043D\u0438\u0445 \u043F\u043E\u043C\u0435\u0447\u0435\u043D\u044B **\u{1F4D6}**\n([`apidocs.bitrix24.com`](https://apidocs.bitrix24.com); \u0430\u0433\u0435\u043D\u0442\u0443 \u0441 MCP context7 \u2014 \u0431\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u0430\n`/bitrix24/b24restdocs`). **\u0412\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u0438\u0435 ajax-\u043A\u043E\u043D\u0442\u0440\u043E\u043B\u043B\u0435\u0440\u044B** (`im.v2.*`, `tasks.v2.*`, `ui.entityselector.*`)\n\u043F\u0443\u0431\u043B\u0438\u0447\u043D\u044B\u0445 \u0434\u043E\u043A\u043E\u0432 \u043D\u0435 \u0438\u043C\u0435\u044E\u0442 \u2014 \u0432\u0441\u0451 \u043D\u0438\u0436\u0435 \u0434\u043E\u0431\u044B\u0442\u043E \u0436\u0438\u0432\u044B\u043C \u0440\u0435\u0432\u0435\u0440\u0441\u043E\u043C; \u043A\u043E\u043D\u0432\u0435\u0440\u0442 \u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u043F\u043E\u043B\u0435\u0439 \u0443 \u043D\u0438\u0445 \u043C\u043E\u0433\u0443\u0442\n\u043E\u0442\u043B\u0438\u0447\u0430\u0442\u044C\u0441\u044F \u043E\u0442 \u{1F4D6}-\u0430\u043D\u0430\u043B\u043E\u0433\u043E\u0432. \u0418\u043C\u0435\u043D\u0430 \u043F\u043E\u043B\u0435\u0439 \u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u044B \u0434\u043B\u044F \u043E\u0431\u043B\u0430\u0447\u043D\u043E\u0433\u043E Bitrix24; \u043D\u0430 \u0434\u0440\u0443\u0433\u043E\u043C \u043F\u043E\u0440\u0442\u0430\u043B\u0435 \u043E\u0442\u0432\u0435\u0442\n\u043C\u043E\u0436\u0435\u0442 \u043E\u0442\u043B\u0438\u0447\u0430\u0442\u044C\u0441\u044F.\n\n---\n\n## 1. \u041A\u0430\u043A \u0432\u044B\u0437\u044B\u0432\u0430\u0442\u044C\n\n- **\u041A\u0430\u0436\u0434\u044B\u0439 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442 `bitrix_*` \u2014 \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u0430\u044F \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F \u043C\u043E\u0441\u0442\u0430** \u0441 \u0442\u0438\u043F\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u043C\u0438 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u0430\u043C\u0438\n (`taskId`, `chatId`, `query`, \u2026) \u0438 \u0440\u0430\u0437\u0443\u043C\u043D\u044B\u043C\u0438 \u0434\u0435\u0444\u043E\u043B\u0442\u0430\u043C\u0438; \u043F\u043E\u043B\u043D\u044B\u0439 \u0441\u043F\u0438\u0441\u043E\u043A \u2014 \xA73 \u0438 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u044F MCP-\u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432.\n \u0412\u044B\u0437\u0432\u0430\u0442\u044C \u043F\u0440\u043E\u0438\u0437\u0432\u043E\u043B\u044C\u043D\u044B\u0439 \u043C\u0435\u0442\u043E\u0434 Bitrix \u043F\u043E \u0438\u043C\u0435\u043D\u0438 \u043D\u0435\u043B\u044C\u0437\u044F \u2014 \u0442\u043E\u043B\u044C\u043A\u043E \u044D\u0442\u0438 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438.\n- **`params`** (\u043D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0439, \u0443 \u0431\u043E\u043B\u044C\u0448\u0438\u043D\u0441\u0442\u0432\u0430 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0439 \u2014 \u043F\u043E\u043C\u0435\u0442\u043A\u0430 \xAB+ `params`\xBB \u0432 \xA73) \u2014 \u043E\u0431\u044A\u0435\u043A\u0442 \u0432\n **\u043D\u0430\u0442\u0438\u0432\u043D\u043E\u043C \u0444\u043E\u0440\u043C\u0430\u0442\u0435 Bitrix** (`select`/`filter`/`order`/\u043F\u0430\u0433\u0438\u043D\u0430\u0446\u0438\u044F, \xA74). \u041E\u043D \u043C\u0435\u0440\u0436\u0438\u0442\u0441\u044F **\u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u043C** \u0438\n \u043F\u0435\u0440\u0435\u043A\u0440\u044B\u0432\u0430\u0435\u0442 \u0434\u0435\u0444\u043E\u043B\u0442\u044B \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438. \u041A\u043B\u044E\u0447\u0438 `action`, `c`, `mode`, `sessid` \u0432 `params` \u0437\u0430\u043F\u0440\u0435\u0449\u0435\u043D\u044B \u2014 \u0438\u0445 \u0437\u0430\u0434\u0430\u0451\u0442\n \u0441\u0430\u043C\u0430 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F; \u0432\u044B\u0437\u043E\u0432 \u0441 \u043D\u0438\u043C\u0438 \u0432\u0435\u0440\u043D\u0451\u0442 \u043E\u0448\u0438\u0431\u043A\u0443 `invalid arguments\u2026`, \u0437\u0430\u043F\u0440\u043E\u0441 \u043D\u0435 \u0443\u0439\u0434\u0451\u0442.\n- **`portal`** (\u043D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0439, \u0443 \u0432\u0441\u0435\u0445) \u2014 alias \u043F\u043E\u0440\u0442\u0430\u043B\u0430; \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u2014 \u043F\u043E\u0440\u0442\u0430\u043B \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0438\u0437 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A.\n- \u0423 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0439 \u0435\u0441\u0442\u044C \u0434\u0435\u0444\u043E\u043B\u0442\u044B (\u043D\u0430\u043F\u0440. `bitrix_tasks_list` \u0441\u043E\u0440\u0442\u0438\u0440\u0443\u0435\u0442 `{"ID":"desc"}`) \u2014 \u0441\u0440\u0430\u0432\u043D\u0438\u0432\u0430\u0435\u0448\u044C \u0432\u044B\u0434\u0430\u0447\u0438\n \u0441 \u0440\u0430\u0437\u043D\u044B\u043C\u0438 `params`, \u0437\u0430\u0434\u0430\u0432\u0430\u0439 `order` \u044F\u0432\u043D\u043E.\n- **\u041C\u0443\u0442\u0438\u0440\u0443\u044E\u0449\u0438\u0435** \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 (\u26A0 \u0432 \xA73, \u043F\u043E\u043B\u043D\u044B\u0439 \u0441\u043F\u0438\u0441\u043E\u043A \u2014 \u043F\u043E\u0441\u043B\u0435 \u0442\u0430\u0431\u043B\u0438\u0446\u044B) \u043C\u0435\u043D\u044F\u044E\u0442 \u0434\u0430\u043D\u043D\u044B\u0435 \u043D\u0430 \u043F\u043E\u0440\u0442\u0430\u043B\u0435 \u043E\u0442 \u0438\u043C\u0435\u043D\u0438\n \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F, \u0441\u0440\u0430\u0437\u0443 \u0438 \u0431\u0435\u0437 \u043E\u0442\u043C\u0435\u043D\u044B. \u041F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u043E\u043D\u0438 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u044B; \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C \u043C\u043E\u0436\u0435\u0442 \u0432\u044B\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0438\u0445\n \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0430\u0442\u0435\u043B\u0435\u043C \u043C\u0443\u0442\u0430\u0446\u0438\u0439 \u2014 \u0442\u043E\u0433\u0434\u0430 \u0432\u044B\u0437\u043E\u0432 \u0432\u0435\u0440\u043D\u0451\u0442 \u043E\u0448\u0438\u0431\u043A\u0443 `operation <\u0438\u043C\u044F> changes data, but mutations are\n disabled\u2026`; \u044D\u0442\u043E \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F, \u043E\u0431\u043E\u0439\u0442\u0438 \u0435\u0451 \u043D\u0435\u043B\u044C\u0437\u044F \u2014 \u0441\u043E\u043E\u0431\u0449\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E. \u0412\u043A\u043B\u044E\u0447\u0435\u043D\u044B \u043B\u0438 \u043E\u043D\u0438 \u0441\u0435\u0439\u0447\u0430\u0441 \u2014\n \u043F\u043E\u043B\u0435 `mutations` \u0432 `bitrix_status`. \u041E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0447\u0442\u0435\u043D\u0438\u044F \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0430\u0442\u0435\u043B\u044C \u043D\u0435 \u0442\u0440\u043E\u0433\u0430\u0435\u0442.\n- \u041E\u0442\u0432\u0435\u0442 `invalid_csrf` / `invalid_authentication` = \u0441\u0435\u0441\u0441\u0438\u044F \u043F\u043E\u0440\u0442\u0430\u043B\u0430 \u043F\u0440\u043E\u0442\u0443\u0445\u043B\u0430 \u2192 \u043F\u0435\u0440\u0435\u043B\u043E\u0433\u0438\u043D\u044C\u0441\u044F \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435\n \u043D\u0430 \u0432\u043A\u043B\u0430\u0434\u043A\u0435 \u043F\u043E\u0440\u0442\u0430\u043B\u0430.\n\n---\n\n## 2. \u0424\u043E\u0440\u043C\u0430\u0442 \u043E\u0442\u0432\u0435\u0442\u0430\n\nAjax-\u043A\u043E\u043D\u0442\u0440\u043E\u043B\u043B\u0435\u0440\u044B (`/bitrix/services/main/ajax.php`) \u043E\u0442\u0432\u0435\u0447\u0430\u044E\u0442 HTTP 200 \u0441 \u043A\u043E\u043D\u0432\u0435\u0440\u0442\u043E\u043C:\n\n```jsonc\n{ "status": "success" | "error",\n "data": { ... },\n "errors": [] } // \u041F\u0423\u0421\u0422\u041E\u0419 \u043C\u0430\u0441\u0441\u0438\u0432 \u043F\u0440\u0438 \u0443\u0441\u043F\u0435\u0445\u0435! (\u0432 JS [] \u2014 truthy)\n```\n\n\u0423\u0441\u043F\u0435\u0445 = `status:"success"` \u0438/\u0438\u043B\u0438 **\u043F\u0443\u0441\u0442\u043E\u0439** `errors`. \u041D\u0435\u043F\u0443\u0441\u0442\u043E\u0439 `errors` / `status:"error"` / top-level\n`error` \u2014 \u0440\u0435\u0430\u043B\u044C\u043D\u0430\u044F \u043E\u0448\u0438\u0431\u043A\u0430 (\u043C\u043E\u0441\u0442 \u043C\u0430\u043F\u043F\u0438\u0442 \u0435\u0451 \u0432 `ok:false`). REST-\u044D\u043D\u0434\u043F\u043E\u0438\u043D\u0442\u044B (`/rest/*.json`) \u043E\u0442\u0432\u0435\u0447\u0430\u044E\u0442\n\u0438\u043D\u0430\u0447\u0435: `{ "result": \u2026, "next", "total", "time" }` \u2014 \u0431\u0435\u0437 `errors`.\n\n---\n\n## 3. \u0418\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u044B: \u0447\u0442\u043E \u0434\u0435\u043B\u0430\u0435\u0442 \u2192 \u043A\u043B\u044E\u0447\u0435\u0432\u044B\u0435 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u044B\n\n`params` \u0432 \u0442\u0430\u0431\u043B\u0438\u0446\u0435 \u043D\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u0435\u0442\u0441\u044F \u2014 \u043E\u043D \u0435\u0441\u0442\u044C \u0443 \u0432\u0441\u0435\u0445 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0439 \u0441 \u043F\u043E\u043C\u0435\u0442\u043A\u043E\u0439 \xAB+ `params`\xBB (\xA71). \u0424\u043E\u0440\u043C\u0430\n`params` \u0440\u0430\u0437\u043B\u0438\u0447\u0430\u0435\u0442\u0441\u044F \u043F\u043E \u043C\u0435\u0442\u043E\u0434\u0443: \u0433\u0434\u0435-\u0442\u043E \u043F\u043B\u043E\u0441\u043A\u043E, \u0433\u0434\u0435-\u0442\u043E \u0432\u043B\u043E\u0436\u0435\u043D\u043D\u043E, \u0433\u0434\u0435-\u0442\u043E \u043E\u0431\u0451\u0440\u043D\u0443\u0442\u043E \u0432 `params[\u2026]` \u2014 \u043A\u043E\u043B\u043E\u043D\u043A\u0430\n\xABparams / \u043F\u0430\u0433\u0438\u043D\u0430\u0446\u0438\u044F\xBB \u043F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0435\u0442 \u0442\u043E\u0447\u043D\u0443\u044E \u0444\u043E\u0440\u043C\u0443 (\u043A\u043E\u0434\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 \u0442\u0435\u043B\u0430 \u043C\u043E\u0441\u0442 \u0431\u0435\u0440\u0451\u0442 \u043D\u0430 \u0441\u0435\u0431\u044F).\n\n| \u0418\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442 | \u0427\u0442\u043E \u0434\u0435\u043B\u0430\u0435\u0442 | \u041A\u043B\u044E\u0447\u0435\u0432\u044B\u0435 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u044B | params / \u043F\u0430\u0433\u0438\u043D\u0430\u0446\u0438\u044F |\n|---|---|---|---|\n| `bitrix_help` | \u044D\u0442\u0430 \u0441\u043F\u0440\u0430\u0432\u043A\u0430 | \u2014 | \u2014 |\n| `bitrix_status` | \u043A\u0430\u043A\u0438\u0435 \u043F\u043E\u0440\u0442\u0430\u043B\u044B \u0441\u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u044B \u0438 \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u044B, \u0432\u0435\u0440\u0441\u0438\u0438 \u043C\u043E\u0441\u0442\u0430 \u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u044F; `warning` \u2014 \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0435\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u0435 \u0438\u043B\u0438 \u0440\u0430\u0437\u0440\u043E\u0441\u0448\u0430\u044F\u0441\u044F \u043F\u0430\u043F\u043A\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043E\u043A (\xA75.5) | \u2014 | \u2014 |\n| *\u0417\u0430\u0434\u0430\u0447\u0438* | | | |\n| `bitrix_tasks_list` | \u0441\u043F\u0438\u0441\u043E\u043A \u0437\u0430\u0434\u0430\u0447 | + `params` | \u0432\u0435\u0440\u0445\u043D\u0438\u0439 \u0443\u0440\u043E\u0432\u0435\u043D\u044C: `filter{RESPONSIBLE_ID,REAL_STATUS,GROUP_ID,\u2026}`, `select[]`, `order{}`; **`PAGEN_1`** \u2014 \u043D\u043E\u043C\u0435\u0440 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B (1, 2, 3\u2026), \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430 = 20 \u0437\u0430\u0434\u0430\u0447; `start` **\u043D\u0435 \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442** (\u0432\u0435\u0440\u043D\u0451\u0442 \u0442\u0443 \u0436\u0435 \u043F\u0435\u0440\u0432\u0443\u044E \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443) |\n| `bitrix_task_get` | \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0437\u0430\u0434\u0430\u0447\u0438 (\u0432 \u0442.\u0447. `CHAT_ID`) | `taskId` + `params` | \u0432\u0435\u0440\u0445\u043D\u0438\u0439 \u0443\u0440\u043E\u0432\u0435\u043D\u044C: `select[]` |\n| `bitrix_task_get_v2` | \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0437\u0430\u0434\u0430\u0447\u0438 \u0447\u0435\u0440\u0435\u0437 v2-\u043F\u043E\u0434\u0441\u0438\u0441\u0442\u0435\u043C\u0443 | `taskId` + `params` | \u2014 |\n| `bitrix_task_scrum_info` | \u0441\u043F\u0440\u0438\u043D\u0442 / \u044D\u043F\u0438\u043A / story points \u0437\u0430\u0434\u0430\u0447\u0438 | `taskId` + `params` | \u2014 |\n| `bitrix_task_files` | \u0444\u0430\u0439\u043B\u044B \u0437\u0430\u0434\u0430\u0447\u0438 (\u0441\u0441\u044B\u043B\u043A\u0438 \u0434\u043B\u044F \u0441\u043A\u0430\u0447\u0438\u0432\u0430\u043D\u0438\u044F) | `ids[]` \u2014 id **\u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u0451\u043D\u043D\u044B\u0445 \u043E\u0431\u044A\u0435\u043A\u0442\u043E\u0432** (\xA74), \u043D\u0435 \u0437\u0430\u0434\u0430\u0447 + `params` | `downloadUrl` \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 \u043E\u0442\u043D\u043E\u0441\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0439 \u2014 \u0434\u043E\u043F\u0438\u0448\u0438 origin \u043F\u043E\u0440\u0442\u0430\u043B\u0430 |\n| `bitrix_task_views_count` | \u0441\u043A\u043E\u043B\u044C\u043A\u043E \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u0439 \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u043B\u0438 \u0437\u0430\u0434\u0430\u0447\u0443 | `taskId` + `params` | \u2014 |\n| `bitrix_task_subtasks` / `bitrix_task_related` | \u043F\u043E\u0434\u0437\u0430\u0434\u0430\u0447\u0438 / \u0441\u0432\u044F\u0437\u0430\u043D\u043D\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 | `taskId` + `params` | `navigation{size}` (\u0434\u0435\u0444\u043E\u043B\u0442 10) |\n| `bitrix_task_comments` | \u0441\u0442\u0430\u0440\u044B\u0435 \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 (\u0444\u043E\u0440\u0443\u043C), \xA75.6 | `taskId`, `limit?`, `maxPages?`, `beforeId?`, `output?` | `beforeId` \u2014 \u043A\u0443\u0440\u0441\u043E\u0440 |\n| `bitrix_task_description_set` \u26A0 | **\u0437\u0430\u043C\u0435\u043D\u0438\u0442\u044C** \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0446\u0435\u043B\u0438\u043A\u043E\u043C (`""` \u2014 \u043E\u0447\u0438\u0441\u0442\u0438\u0442\u044C) | `taskId`, `text` (\u2264 100 000) | \u0431\u0435\u0437 `params`; \u0440\u0430\u0437\u043C\u0435\u0442\u043A\u0430 \u2014 BBCode \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u044F (\u043D\u0438\u0436\u0435); \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442\u0441\u044F, \u043E\u0442\u0432\u0435\u0442 `{ taskId, length }` |\n| `bitrix_task_description_append` \u26A0 | **\u0434\u043E\u043F\u0438\u0441\u0430\u0442\u044C** \u0432 \u043A\u043E\u043D\u0435\u0446 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u044F \u0447\u0435\u0440\u0435\u0437 \u043F\u0443\u0441\u0442\u0443\u044E \u0441\u0442\u0440\u043E\u043A\u0443; \u0441\u0442\u0430\u0440\u043E\u0435 (\u0444\u0430\u0439\u043B\u044B `[disk file id=\u2026]`, \u0442\u0430\u0431\u043B\u0438\u0446\u044B) \u043D\u0435 \u0442\u0440\u043E\u0433\u0430\u0435\u0442 | `taskId`, `text` (\u2264 100 000) | \u0431\u0435\u0437 `params`; \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442\u0441\u044F, \u043E\u0442\u0432\u0435\u0442 `{ taskId, length }` |\n| `bitrix_task_description_replace` \u26A0 | **\u0442\u043E\u0447\u0435\u0447\u043D\u0430\u044F \u043F\u0440\u0430\u0432\u043A\u0430** \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u044F: \u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442 `find` \u2192 `replace` (`""` \u2014 \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442), \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u043E\u0435 \u043A\u0430\u043A \u0431\u044B\u043B\u043E | `taskId`, `find`, `replace`, `all?` | \u0431\u0435\u0437 `params`; `find` \u2014 \u0442\u043E\u0447\u043D\u0430\u044F \u043F\u043E\u0434\u0441\u0442\u0440\u043E\u043A\u0430 \u0441\u044B\u0440\u043E\u0433\u043E BBCode (`bitrix_task_get_v2` \u2192 `description`), \u0441 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043E\u043C \u0438 \u043F\u0435\u0440\u0435\u0432\u043E\u0434\u0430\u043C\u0438 \u0441\u0442\u0440\u043E\u043A. \u041D\u0435\u0442 \u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439 \u0438\u043B\u0438 \u0438\u0445 \u0431\u043E\u043B\u044C\u0448\u0435 \u043E\u0434\u043D\u043E\u0433\u043E \u0431\u0435\u0437 `all: true` \u2014 \u043E\u0448\u0438\u0431\u043A\u0430, \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0437\u0430\u043F\u0438\u0441\u0430\u043D\u043E. \u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442\u0441\u044F; \u043E\u0442\u0432\u0435\u0442 `{ taskId, replaced, length }` |\n| `bitrix_task_tags` \u26A0 | \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C / \u0443\u0431\u0440\u0430\u0442\u044C **\u0442\u0435\u0433\u0438** | `taskIds[]` (1\u201350), `add[]?`, `remove[]?` \u2014 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044F, \u0431\u0435\u0437 \u0443\u0447\u0451\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442 (\u043D\u0438\u0436\u0435), \u043F\u043E\u043B\u044F `tags`, `changed` |\n| `bitrix_task_checklist` | **\u0447\u0435\u043A-\u043B\u0438\u0441\u0442** \u0437\u0430\u0434\u0430\u0447\u0438 \u043F\u043B\u043E\u0441\u043A\u0438\u043C \u0441\u043F\u0438\u0441\u043A\u043E\u043C `{ taskId, items: [{ id, parentId, title, done }] }` | `taskId` | \u0431\u0435\u0437 `params`; `parentId: 0` \u2014 \u0433\u0440\u0443\u043F\u043F\u0430, \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u044B\u0435 \u2014 \u043F\u0443\u043D\u043A\u0442\u044B \u0433\u0440\u0443\u043F\u043F\u044B `parentId` |\n| `bitrix_task_checklist_edit` \u26A0 | \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0447\u0435\u043A-\u043B\u0438\u0441\u0442: \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C, \u043F\u0435\u0440\u0435\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u0442\u044C, \u043E\u0442\u043C\u0435\u0442\u0438\u0442\u044C / \u0441\u043D\u044F\u0442\u044C \u043E\u0442\u043C\u0435\u0442\u043A\u0443, \u0443\u0434\u0430\u043B\u0438\u0442\u044C | `taskId`, `add[]?` (\u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044F), `rename[{ itemId, title }]?`, `complete[]?`, `reopen[]?`, `remove[]?` | \u0431\u0435\u0437 `params`; id \u2014 \u0438\u0437 `bitrix_task_checklist`; \u2264 50 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0437\u0430 \u0432\u044B\u0437\u043E\u0432; \u043E\u0442\u0432\u0435\u0442 `{ taskId, added, items }` (\u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u043D) |\n| `bitrix_task_plan` \u26A0 | **\u043F\u043B\u0430\u043D\u0438\u0440\u0443\u0435\u043C\u044B\u0435** \u0434\u0430\u0442\u044B \u043D\u0430\u0447\u0430\u043B\u0430 / \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F | `taskId`, `start?`, `end?` \u2014 \u0434\u0430\u0442\u0430 (\u043D\u0438\u0436\u0435) \u0438\u043B\u0438 `null` (\u043E\u0447\u0438\u0441\u0442\u0438\u0442\u044C) | \u0431\u0435\u0437 `params`; \u0445\u043E\u0442\u044F \u0431\u044B \u043E\u0434\u043D\u0430; \u043D\u0435 \u043F\u0435\u0440\u0435\u0434\u0430\u043D\u043D\u0430\u044F \u043E\u0441\u0442\u0430\u0451\u0442\u0441\u044F \u043A\u0430\u043A \u0435\u0441\u0442\u044C; `start` \u043D\u0435 \u043F\u043E\u0437\u0436\u0435 `end`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, start, end }` |\n| `bitrix_task_priority` \u26A0 | **\u0432\u0430\u0436\u043D\u043E\u0441\u0442\u044C**: `high` \u2014 \xAB\u0412\u0430\u0436\u043D\u0430\u044F \u0437\u0430\u0434\u0430\u0447\u0430\xBB, `average` \u2014 \u043E\u0431\u044B\u0447\u043D\u0430\u044F | `taskIds[]` (1\u201350), `priority` | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u0435 `priority` |\n| `bitrix_task_deadline` \u26A0 | **\u043A\u0440\u0430\u0439\u043D\u0438\u0439 \u0441\u0440\u043E\u043A** | `taskIds[]` (1\u201350), `deadline` \u2014 \u0434\u0430\u0442\u0430 \u0438\u043B\u0438 `null` (\u0443\u0431\u0440\u0430\u0442\u044C), `reason?` (\u043F\u0440\u0438\u0447\u0438\u043D\u0430 \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0430, \u043F\u0440\u043E\u0441\u0442\u043E\u0439 \u0442\u0435\u043A\u0441\u0442 \u2264 1000) | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u0435 `deadline` |\n| `bitrix_task_close` \u26A0 | **\u0437\u0430\u043A\u0440\u044B\u0442\u044C** \u0437\u0430\u0434\u0430\u0447\u0443; Definition of Done \u043D\u0435 \u043E\u0431\u0445\u043E\u0434\u0438\u0442\u0441\u044F \u2014 \u0434\u0432\u0430 \u0448\u0430\u0433\u0430, \xA75.7 | `taskId`; \u0448\u0430\u0433 2 \u2014 \u043F\u043B\u044E\u0441 `typeId`, `confirmItems: true` | \u0431\u0435\u0437 `params`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, status, changed, typeId? }` \u0438\u043B\u0438 `{ taskId, needsConfirmation: true, types }` |\n| `bitrix_task_reopen` \u26A0 | **\u0432\u043E\u0437\u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C** \u0437\u0430\u0432\u0435\u0440\u0448\u0451\u043D\u043D\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 | `taskIds[]` (1\u201350) | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u044F `status`, `changed` |\n| `bitrix_task_result_add` \u26A0 | \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043E\u0434\u0438\u043D \u0438 \u0442\u043E\u0442 \u0436\u0435 **\u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442** \u0437\u0430\u0434\u0430\u0447\u0430\u043C: \u0437\u0430\u043A\u0440\u0435\u043F\u043B\u0451\u043D \u0432 \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0435, \u0430\u043D\u043E\u043D\u0441 \u0432 \u0447\u0430\u0442\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 | `taskIds[]` (1\u201350), `text` (\u2264 20 000) | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442 (\u043D\u0438\u0436\u0435), \u043F\u043E\u043B\u0435 `resultId` |\n| `bitrix_task_file_attach` \u26A0 | \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u0438\u0442\u044C **\u043B\u043E\u043A\u0430\u043B\u044C\u043D\u044B\u0439 \u0444\u0430\u0439\u043B** \u043A \u0437\u0430\u0434\u0430\u0447\u0435, \xA75.8 | `taskId`, `path` (\u0430\u0431\u0441\u043E\u043B\u044E\u0442\u043D\u044B\u0439), `name?` | \u0431\u0435\u0437 `params`; \u0444\u0430\u0439\u043B \u2264 10 \u041C\u0411 \u0443\u0445\u043E\u0434\u0438\u0442 \u043D\u0430 \u0414\u0438\u0441\u043A \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F; \u043E\u0442\u0432\u0435\u0442 `{ taskId, diskFileId, name, size, attachmentId }` |\n| `bitrix_task_mute` \u26A0 | \u0432\u044B\u043A\u043B\u044E\u0447\u0438\u0442\u044C (`true`) / \u0432\u043A\u043B\u044E\u0447\u0438\u0442\u044C (`false`) **\u0441\u0432\u043E\u0438** \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u043F\u043E \u0437\u0430\u0434\u0430\u0447\u0435 | `taskId`, `muted` | \u0431\u0435\u0437 `params`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, muted }` |\n| `bitrix_task_reminders` | \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F \u043F\u043E \u0437\u0430\u0434\u0430\u0447\u0435, \xA75.9 | `taskId` | \u0431\u0435\u0437 `params` |\n| `bitrix_task_reminder_set` \u26A0 | \u043F\u043E\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u043D\u043E\u0432\u043E\u0435 **\u0441\u0432\u043E\u0451** \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 \u0438\u043B\u0438 \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0441\u0432\u043E\u0451 (`reminderId`) | `taskId`, `at` (\u0434\u0430\u0442\u0430 \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043C), `via` (`notification` \\| `email`), `reminderId?` | \u0431\u0435\u0437 `params`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, reminder }` |\n| `bitrix_task_reminder_delete` \u26A0 | \u0443\u0434\u0430\u043B\u0438\u0442\u044C **\u0441\u0432\u043E\u0451** \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 | `taskId`, `reminderId` | \u0431\u0435\u0437 `params`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, reminderId, deleted: true }` |\n| *\u0423\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u0437\u0430\u0434\u0430\u0447* | | | |\n| `bitrix_task_delegate` \u26A0 | **\u0434\u0435\u043B\u0435\u0433\u0438\u0440\u043E\u0432\u0430\u0442\u044C**: `userId` \u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0441\u044F \u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043D\u043D\u044B\u043C | `taskIds[]` (1\u201350), `userId` | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u0435 `responsibleId` (\u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u043D) |\n| `bitrix_task_accomplices` / `bitrix_task_auditors` \u26A0 | \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C / \u0443\u0431\u0440\u0430\u0442\u044C **\u0441\u043E\u0438\u0441\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u0435\u0439** / **\u043D\u0430\u0431\u043B\u044E\u0434\u0430\u0442\u0435\u043B\u0435\u0439** | `taskIds[]` (1\u201350), `add[]?`, `remove[]?` \u2014 userId | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u044F `accomplices` / `auditors` (\u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u043D\u044B), `changed` |\n| `bitrix_user_find` | \u043D\u0430\u0439\u0442\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u0439 \u043F\u043E \u0444\u0430\u043C\u0438\u043B\u0438\u0438 `[{ id, name, lastName, active, workPosition }]` | `lastName` | \u0431\u0435\u0437 `params`; \u0432 \u0432\u044B\u0434\u0430\u0447\u0435 \u0438 **\u043D\u0435\u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0435** (\u0443\u0432\u043E\u043B\u0435\u043D\u043D\u044B\u0435, `active: false`) \u2014 \u043D\u0435 \u043D\u0430\u0437\u043D\u0430\u0447\u0430\u0439 \u0438\u0445 \u043D\u0430 \u0440\u0430\u0431\u043E\u0447\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 |\n| *\u0421\u0432\u044F\u0437\u0438 \u0437\u0430\u0434\u0430\u0447* | | | |\n| `bitrix_task_related_edit` \u26A0 | \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C / \u0443\u0431\u0440\u0430\u0442\u044C **\u0441\u0432\u044F\u0437\u0430\u043D\u043D\u044B\u0435** \u0437\u0430\u0434\u0430\u0447\u0438 (\u0431\u043B\u043E\u043A \xAB\u0421\u0432\u044F\u0437\u0430\u043D\u043D\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438\xBB) | `taskId`, `add[]?`, `remove[]?` \u2014 id \u0437\u0430\u0434\u0430\u0447 | \u0431\u0435\u0437 `params`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, related, changed }`; \u0437\u0430\u0434\u0430\u0447\u0438 \u0441\u043E 100 \u0438 \u0431\u043E\u043B\u0435\u0435 \u0441\u0432\u044F\u0437\u0430\u043D\u043D\u044B\u043C\u0438 \u043D\u0435 \u043F\u0440\u0430\u0432\u044F\u0442\u0441\u044F |\n| `bitrix_task_parent` \u26A0 | \u0441\u0434\u0435\u043B\u0430\u0442\u044C **\u043F\u043E\u0434\u0437\u0430\u0434\u0430\u0447\u0435\u0439** \u0437\u0430\u0434\u0430\u0447\u0438 `parentId`; `null` \u2014 \u043E\u0442\u0432\u044F\u0437\u0430\u0442\u044C \u043E\u0442 \u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044F | `taskId`, `parentId` | \u0431\u0435\u0437 `params`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, parentId, previousParentId, changed }` |\n| `bitrix_task_gantt_link` \u26A0 | \u0441\u0432\u044F\u0437\u044C \u0413\u0430\u043D\u0442\u0430 \xAB\u043E\u043A\u043E\u043D\u0447\u0430\u043D\u0438\u0435 \u2192 \u043D\u0430\u0447\u0430\u043B\u043E\xBB: `dependentId` \u043D\u0430\u0447\u0438\u043D\u0430\u0435\u0442\u0441\u044F \u043F\u043E\u0441\u043B\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F `taskId` | `taskId`, `dependentId`, `remove?` | \u0431\u0435\u0437 `params`; \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u0443\u044E \u0441\u0432\u044F\u0437\u044C \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044C \u043D\u0435\u043B\u044C\u0437\u044F \u2014 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u043F\u043E \u043F\u0440\u0438\u0437\u043D\u0430\u043A\u0443 \xAB\u0443 `dependentId` \u0435\u0441\u0442\u044C \u0441\u0432\u044F\u0437\u0438 \u0413\u0430\u043D\u0442\u0430\xBB: `confirmed: true` \u2014 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u043E, `confirmed: false` + `note` \u2014 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044C \u043D\u0435\u043B\u044C\u0437\u044F (\u0443 \u0437\u0430\u0434\u0430\u0447\u0438 \u0431\u044B\u043B\u0438 / \u043E\u0441\u0442\u0430\u043B\u0438\u0441\u044C \u0434\u0440\u0443\u0433\u0438\u0435 \u0441\u0432\u044F\u0437\u0438); \u043D\u0435\u0442 \u0441\u0432\u044F\u0437\u0435\u0439 \u043F\u043E\u0441\u043B\u0435 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u2014 \u043E\u0448\u0438\u0431\u043A\u0430; \u043F\u043E\u0432\u0442\u043E\u0440 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044E\u0449\u0435\u0439 \u0441\u0432\u044F\u0437\u0438 Bitrix \u043E\u0442\u0432\u0435\u0440\u0433\u0430\u0435\u0442 \u043A\u0430\u043A \xAB\u0446\u0438\u043A\u043B\u0438\u0447\u0435\u0441\u043A\u0443\u044E \u0437\u0430\u0432\u0438\u0441\u0438\u043C\u043E\u0441\u0442\u044C\xBB \u2014 \u0435\u0441\u043B\u0438 \u0443 `dependentId` \u0443\u0436\u0435 \u0431\u044B\u043B\u0438 \u0441\u0432\u044F\u0437\u0438, \u043E\u0448\u0438\u0431\u043A\u0430 \u0441\u043A\u0430\u0436\u0435\u0442, \u0447\u0442\u043E \u044D\u0442\u0430 \u0441\u0432\u044F\u0437\u044C, \u0441\u043A\u043E\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043E, \u0443\u0436\u0435 \u0435\u0441\u0442\u044C (\u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0437\u0430\u043F\u0438\u0441\u0430\u043D\u043E, \u043D\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u0439); \u043E\u0442\u0432\u0435\u0442 `{ taskId, dependentId, linked, confirmed, note? }` |\n| *Scrum* | | | |\n| `bitrix_sprint_columns` | \u043A\u043E\u043B\u043E\u043D\u043A\u0438 \u0434\u043E\u0441\u043A\u0438 **\u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0433\u043E** \u0441\u043F\u0440\u0438\u043D\u0442\u0430 `[{ id, name, type }]` | `groupId` (= `GROUP_ID` \u0437\u0430\u0434\u0430\u0447\u0438) | \u0431\u0435\u0437 `params`; `type` \u2014 `NEW`/`WORK`/`FINISH`, \u0443 \u0441\u0432\u043E\u0438\u0445 \u043A\u043E\u043B\u043E\u043D\u043E\u043A \u043F\u0443\u0441\u0442\u043E\u0439; \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0443 `FINISH` \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 \u043D\u0435 \u0441\u0442\u0430\u0432\u044F\u0442 |\n| `bitrix_task_move` \u26A0 | \u043F\u0435\u0440\u0435\u043D\u0435\u0441\u0442\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u0441\u043F\u0440\u0438\u043D\u0442\u0430 | `taskIds[]` (1\u201350), `column` (id \u0438\u043B\u0438 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435, \u0431\u0435\u0437 \u0443\u0447\u0451\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430) | \u0431\u0435\u0437 `params`; \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u0442\u0438\u043F\u0430 `FINISH` \u0443\u043A\u0430\u0437\u0430\u0442\u044C \u043D\u0435\u043B\u044C\u0437\u044F \u2014 \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0439 \u0447\u0435\u0440\u0435\u0437 `bitrix_task_close`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442 (\u043D\u0438\u0436\u0435), \u043F\u043E\u043B\u044F `stageId`, `column`, `status` \u2014 \u043F\u0435\u0440\u0435\u043D\u043E\u0441 \u043C\u043E\u0436\u0435\u0442 \u043F\u0435\u0440\u0435\u043E\u0442\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u043A\u0440\u044B\u0442\u0443\u044E \u0437\u0430\u0434\u0430\u0447\u0443 |\n| `bitrix_task_to_sprint` \u26A0 | \u043F\u043E\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0438 \u043D\u0430 \u0434\u043E\u0441\u043A\u0443 **\u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0433\u043E** \u0441\u043F\u0440\u0438\u043D\u0442\u0430: \u0438\u0437 \u0431\u044D\u043A\u043B\u043E\u0433\u0430 \u2014 \u0432 \u0441\u043F\u0440\u0438\u043D\u0442 \u0438 \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0443, \u0443\u0436\u0435 \u0441\u0442\u043E\u044F\u0449\u0438\u0435 \u0432 \u043D\u0451\u043C \u2014 \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0443 | `taskIds[]` (1\u201350), `column?` (\u0431\u0435\u0437 \u043D\u0435\u0433\u043E \u2014 \u043A\u043E\u043B\u043E\u043D\u043A\u0430 \u0442\u0438\u043F\u0430 `NEW`) | \u0431\u0435\u0437 `params`; \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u0442\u0438\u043F\u0430 `FINISH` \u0443\u043A\u0430\u0437\u0430\u0442\u044C \u043D\u0435\u043B\u044C\u0437\u044F \u2014 \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0439 \u0447\u0435\u0440\u0435\u0437 `bitrix_task_close`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u044F `sprintId`, `stageId`, `column`, `status`, `fromBacklog`; \u0437\u0430\u0434\u0430\u0447\u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u043F\u0440\u0438\u043D\u0442\u043E\u0432 \u2014 \u043E\u0448\u0438\u0431\u043A\u0430 |\n| `bitrix_task_to_backlog` \u26A0 | \u0432\u0435\u0440\u043D\u0443\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 **\u0431\u044D\u043A\u043B\u043E\u0433** \u043F\u0440\u043E\u0435\u043A\u0442\u0430 \u0438 \u0443\u0431\u0440\u0430\u0442\u044C \u0438\u0437 \u043A\u043E\u043B\u043E\u043D\u043A\u0438 \u0441\u043F\u0440\u0438\u043D\u0442\u0430 (\u0441\u0442\u0430\u0440\u0442\u043E\u0432\u0430\u044F \u0441\u0442\u0430\u0434\u0438\u044F \u043A\u0430\u043D\u0431\u0430\u043D\u0430 \u043F\u0440\u043E\u0435\u043A\u0442\u0430, \u043A\u0430\u043A \u0432 UI); \u0437\u0430\u0434\u0430\u0447\u0443, \u043A\u043E\u0442\u043E\u0440\u0430\u044F \u0443\u0436\u0435 \u0432 \u0431\u044D\u043A\u043B\u043E\u0433\u0435, \u043D\u043E \u0447\u0438\u0441\u043B\u0438\u0442\u0441\u044F \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0435 \u0441\u043F\u0440\u0438\u043D\u0442\u0430, \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u0435\u0440\u0435\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u0442 | `taskIds[]` (1\u201350) | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u044F `backlogId`, `stageId`, `changed` |\n| `bitrix_task_create` \u26A0 | **\u0441\u043E\u0437\u0434\u0430\u0442\u044C** \u0437\u0430\u0434\u0430\u0447\u0443 \u0441\u0440\u0430\u0437\u0443 \u043D\u0430 \u0434\u043E\u0441\u043A\u0435 \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0433\u043E \u0441\u043F\u0440\u0438\u043D\u0442\u0430, \u043A\u0430\u043A \xAB+\xBB \u043D\u0430 \u0434\u043E\u0441\u043A\u0435 | `groupId`, `title` (\u2264 255, \u043F\u0440\u043E\u0441\u0442\u043E\u0439 \u0442\u0435\u043A\u0441\u0442), `column?` (\u0431\u0435\u0437 \u043D\u0435\u0433\u043E \u2014 \u043A\u043E\u043B\u043E\u043D\u043A\u0430 \u0442\u0438\u043F\u0430 `NEW`) | \u0431\u0435\u0437 `params`; \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u0442\u0438\u043F\u0430 `FINISH` \u0443\u043A\u0430\u0437\u0430\u0442\u044C \u043D\u0435\u043B\u044C\u0437\u044F; \u043E\u0442\u0432\u0435\u0442 `{ taskId, sprintId, stageId, column }`; \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u044B\u0435 \u043F\u043E\u043B\u044F \u2014 \u043F\u043E\u0442\u043E\u043C \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u044B\u043C\u0438 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F\u043C\u0438 |\n| *\u041F\u0440\u043E\u0435\u043A\u0442\u044B* | | | |\n| `bitrix_projects_list` | \u0440\u0430\u0431\u043E\u0447\u0438\u0435 \u0433\u0440\u0443\u043F\u043F\u044B / \u043F\u0440\u043E\u0435\u043A\u0442\u044B | + `params` | \u0432\u0435\u0440\u0445\u043D\u0438\u0439 \u0443\u0440\u043E\u0432\u0435\u043D\u044C: `select[]`, `order{}`, `filter{}`; `start` (\u0448\u0430\u0433 50; `start=(N-1)*50`, `-1` \u2014 \u043E\u0442\u0432\u0435\u0442 \u0431\u0435\u0437 `total`) \u{1F4D6} |\n| `bitrix_project_get` | \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0433\u0440\u0443\u043F\u043F\u044B (\u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438, `CHAT_ID`) | `groupId` + `params` | **\u043E\u0431\u0451\u0440\u043D\u0443\u0442\u043E**: `params[groupId]`, `params[select][]` |\n| *\u0427\u0430\u0442\u044B* | | | |\n| `bitrix_chats_recent` | \u043D\u0435\u0434\u0430\u0432\u043D\u0438\u0435 \u0434\u0438\u0430\u043B\u043E\u0433\u0438 (\u0431\u0435\u0437 \u0447\u0430\u0442\u043E\u0432 \u0437\u0430\u0434\u0430\u0447) | + `params` | \u043F\u043B\u043E\u0441\u043A\u043E: `LIMIT`, `SKIP_OPENLINES`, `UNREAD_ONLY` |\n| `bitrix_recent_load` | \u043D\u0435\u0434\u0430\u0432\u043D\u0438\u0435 \u043F\u043E \u0441\u0435\u043A\u0446\u0438\u0438 (`tasksTask` \u2014 \u0447\u0430\u0442\u044B \u0437\u0430\u0434\u0430\u0447) | `section?`, `limit?`, `unread?`, `parentId?` + `params` | \u0434\u0430\u043B\u044C\u0448\u0435 \u2014 `bitrix_recent_tail` |\n| `bitrix_recent_tail` | \u043B\u0438\u0441\u0442\u0430\u0442\u044C \u043D\u0435\u0434\u0430\u0432\u043D\u0438\u0435 \u0432\u0433\u043B\u0443\u0431\u044C | `lastMessageDate` (\u043A\u0443\u0440\u0441\u043E\u0440), `section?`, `limit?`, `unread?` + `params` | `lastMessageDate` |\n| `bitrix_chat_load` | \u043E\u0442\u043A\u0440\u044B\u0442\u044C \u0447\u0430\u0442, \u043F\u0435\u0440\u0432\u044B\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F, \u0447\u0438\u0441\u043B\u043E\u0432\u043E\u0439 `chatId` | `dialogId` \\| `chatId`, `messageLimit?` + `params` | \u2014 |\n| `bitrix_chat_get_dialog_id` | `externalId` \u2192 `dialogId` (\u043D\u0430\u043F\u0440. `"sg"+groupId`) | `externalId` + `params` | \u2014 |\n| `bitrix_chat_messages` | \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u0447\u0430\u0442\u0430 | `chatId`, `limit?` + `params` | \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u044F\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430 \u2014 \u043D\u0430\u0437\u0430\u0434 **\u043D\u0435 \u043B\u0438\u0441\u0442\u0430\u0435\u0442**, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439 `bitrix_chat_history` |\n| `bitrix_chat_history` | \u043B\u0438\u0441\u0442\u0430\u0442\u044C \u0438\u0441\u0442\u043E\u0440\u0438\u044E \u0447\u0430\u0442\u0430 \u0432\u0433\u043B\u0443\u0431\u044C | `chatId`, `beforeId?`, `limit?` + `params` | `beforeId` (\xA75.1) |\n| `bitrix_chat_mark_read` \u26A0 | \u043F\u043E\u043C\u0435\u0442\u0438\u0442\u044C \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u043C\u0438 | `chatId`, `ids[]`, `actionUuid?` + `params` | \u2014 |\n| `bitrix_chat_read_all` \u26A0 | \u043F\u043E\u043C\u0435\u0442\u0438\u0442\u044C **\u0432\u0441\u0435** \u0447\u0430\u0442\u044B \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u043C\u0438 | + `params` | \u2014 |\n| `bitrix_chat_send` \u26A0 | \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 (\u0432\u0438\u0434\u044F\u0442 \u0432\u0441\u0435 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u0447\u0430\u0442\u0430) | `chatId` \\| `dialogId` (\u0440\u043E\u0432\u043D\u043E \u043E\u0434\u043D\u043E), `text` (\u2264 20 000), `replyTo?` (id \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u044D\u0442\u043E\u0433\u043E \u0447\u0430\u0442\u0430 \u2014 \u043E\u0442\u0432\u0435\u0442 \u043D\u0430 \u043D\u0435\u0433\u043E) | \u0431\u0435\u0437 `params`; \u0440\u0430\u0437\u043C\u0435\u0442\u043A\u0430 \u2014 \u043F\u043E\u0434\u043C\u043D\u043E\u0436\u0435\u0441\u0442\u0432\u043E \u0447\u0430\u0442\u0430 (\u043D\u0438\u0436\u0435); \u043E\u0442\u0432\u0435\u0442 `{ chatId?, dialogId, messageId }` |\n| `bitrix_chat_message_edit` \u26A0 | \u0437\u0430\u043C\u0435\u043D\u0438\u0442\u044C \u0442\u0435\u043A\u0441\u0442 **\u0441\u0432\u043E\u0435\u0433\u043E** \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u0446\u0435\u043B\u0438\u043A\u043E\u043C | `messageId`, `text` (\u2264 20 000, \u043D\u0435 \u043F\u0443\u0441\u0442\u043E\u0439) | \u0431\u0435\u0437 `params`; \u0447\u0443\u0436\u043E\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 Bitrix \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u043D\u0435 \u0434\u0430\u0441\u0442 \u2014 \u043E\u0448\u0438\u0431\u043A\u0430 |\n| `bitrix_chat_reaction` \u26A0 | \u043F\u043E\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0440\u0435\u0430\u043A\u0446\u0438\u044E \u043D\u0430 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 | `messageId`, `reaction` (\u043B\u0430\u0442\u0438\u043D\u0438\u0446\u0430; \u043F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u044B `like` \u{1F44D}, `whiteHeavyCheckMark` \u2705) | \u0431\u0435\u0437 `params`; \u0434\u0440\u0443\u0433\u0438\u0435 \u0438\u043C\u0435\u043D\u0430 \u0443\u0445\u043E\u0434\u044F\u0442 \u043A\u0430\u043A \u0435\u0441\u0442\u044C, \u0431\u0435\u0437 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438 |\n| `bitrix_task_chat_post` \u26A0 | \u043E\u0434\u043D\u043E \u0438 \u0442\u043E \u0436\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u0432 **\u0447\u0430\u0442\u044B \u0437\u0430\u0434\u0430\u0447** (\u0447\u0430\u0442 \u043A\u0430\u0436\u0434\u043E\u0439 \u2014 \u043F\u043E \u0435\u0451 `CHAT_ID`) | `taskIds[]` (1\u201350), `text` (\u2264 20 000) | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u044F `chatId`, `messageId`; \u0437\u0430\u0434\u0430\u0447\u0430 \u0431\u0435\u0437 \u0447\u0430\u0442\u0430 \u2014 \u043E\u0448\u0438\u0431\u043A\u0430 \u044D\u0442\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 |\n| *\u041B\u044E\u0434\u0438 / \u043F\u043E\u0438\u0441\u043A* | | | |\n| `bitrix_user_get` | \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043C\u0435\u0441\u0441\u0435\u043D\u0434\u0436\u0435\u0440\u0430 | `userId` + `params` | \u2014 |\n| `bitrix_entity_search` | \u0442\u0435\u043A\u0441\u0442\u043E\u0432\u044B\u0439 \u043F\u043E\u0438\u0441\u043A \u0447\u0430\u0442\u043E\u0432 / \u043B\u044E\u0434\u0435\u0439 | `query`, `section?`, `dialog?` + `params` | \u2014 |\n| `bitrix_entity_selector` | \u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0430 entityselector \u0441\u043E \u0441\u0432\u043E\u0438\u043C `dialog` | `dialog` + `params` | `{"dialog":{entities,preselectedItems,\u2026}}` |\n| `bitrix_entity_chat` | `chatId` \u0447\u0430\u0442\u0430, \u043F\u0440\u0438\u0432\u044F\u0437\u0430\u043D\u043D\u043E\u0433\u043E \u043A \u043E\u0431\u044A\u0435\u043A\u0442\u0443 | `entityType`, `entityId` + `params` | \u2014 |\n| *\u0421\u043E\u0437\u0432\u043E\u043D\u044B \u0438 \u0444\u0430\u0439\u043B\u044B* | | | |\n| `bitrix_chat_calls` | \u0437\u0432\u043E\u043D\u043A\u0438 \u0432 \u0447\u0430\u0442\u0435 (`callId` + \u0440\u0435\u0437\u044E\u043C\u0435), \xA75.4 | `chatId`, `limit?`, `maxPages?`, `beforeId?` + `params` | `beforeId` \u2014 \u043A\u0443\u0440\u0441\u043E\u0440 |\n| `bitrix_call_detail` | \u0432\u0441\u0451 \u043F\u043E \u0437\u0432\u043E\u043D\u043A\u0443, \xA75.4 | `callId`, `transcript?` + `params` | \u2014 |\n| `bitrix_call_recording` | \u0441\u043A\u0430\u0447\u0430\u0442\u044C \u0430\u0443\u0434\u0438\u043E\u0437\u0430\u043F\u0438\u0441\u044C \u0437\u0432\u043E\u043D\u043A\u0430, \xA75.5 | `callId`, `savePath?`, `overwrite?` | \u2014 |\n| `bitrix_file_download` | \u0441\u043A\u0430\u0447\u0430\u0442\u044C \u0444\u0430\u0439\u043B \u043F\u043E\u0440\u0442\u0430\u043B\u0430 \u043D\u0430 \u0434\u0438\u0441\u043A, \xA75.5 | `url`, `savePath?`, `overwrite?` | \u2014 |\n\n**\u041C\u0443\u0442\u0438\u0440\u0443\u044E\u0449\u0438\u0435 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438** (\u26A0) \u2014 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u044B:\n\n- \u0437\u0430\u0434\u0430\u0447\u0438: `bitrix_task_description_set`, `bitrix_task_description_append`,\n `bitrix_task_description_replace`, `bitrix_task_tags`, `bitrix_task_checklist_edit`, `bitrix_task_plan`,\n `bitrix_task_priority`, `bitrix_task_deadline`, `bitrix_task_close`, `bitrix_task_reopen`,\n `bitrix_task_result_add`, `bitrix_task_file_attach`, `bitrix_task_mute`, `bitrix_task_reminder_set`,\n `bitrix_task_reminder_delete`;\n- \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438: `bitrix_task_delegate`, `bitrix_task_accomplices`, `bitrix_task_auditors`;\n- \u0441\u0432\u044F\u0437\u0438: `bitrix_task_related_edit`, `bitrix_task_parent`, `bitrix_task_gantt_link`;\n- scrum: `bitrix_task_move`, `bitrix_task_to_sprint`, `bitrix_task_to_backlog`, `bitrix_task_create`;\n- \u0447\u0430\u0442\u044B: `bitrix_chat_send`, `bitrix_chat_message_edit`, `bitrix_chat_reaction`, `bitrix_task_chat_post`,\n `bitrix_chat_mark_read`, `bitrix_chat_read_all`.\n\n\u0412\u044B\u043A\u043B\u044E\u0447\u0430\u0435\u0442 \u0438\u0445 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C (\u0430\u0433\u0435\u043D\u0442\u0443 \u044D\u0442\u043E \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u043E): `"mutations": false` \u0432 `config.json` \u043C\u043E\u0441\u0442\u0430, env\n`BITRIX_MCP_MUTATIONS=off` \u0443 \u043F\u0440\u043E\u0446\u0435\u0441\u0441\u0430 daemon (\u043F\u0435\u0440\u0435\u043A\u0440\u044B\u0432\u0430\u0435\u0442 `config.json`) \u0438\u043B\u0438 `setup` \u2192 `[m]`. \u0422\u0435\u043A\u0443\u0449\u0435\u0435\n\u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u2014 `bitrix_status` \u2192 `mutations`; \u0432\u044B\u043A\u043B\u044E\u0447\u0435\u043D\u043D\u0430\u044F \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F \u043E\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u043E\u0448\u0438\u0431\u043A\u043E\u0439 \u0438\u0437 \xA71 \u0438 \u0432 Bitrix24 \u043D\u0435\n\u0443\u0445\u043E\u0434\u0438\u0442. `bitrix_task_comments` \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u043F\u043E\u043C\u0435\u0447\u0430\u0435\u0442 \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u043C \u0438 \u043C\u0443\u0442\u0438\u0440\u0443\u044E\u0449\u0438\u043C \u043D\u0435 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044F.\n\n**\u041A\u0430\u0436\u0434\u0430\u044F \u043C\u0443\u0442\u0430\u0446\u0438\u044F \u2014 \u043E\u0442 \u0438\u043C\u0435\u043D\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F, \u0441\u0440\u0430\u0437\u0443 \u0438 \u0431\u0435\u0437 \u043E\u0442\u043C\u0435\u043D\u044B.** \u0414\u0435\u043B\u0430\u0439 \u0442\u043E\u043B\u044C\u043A\u043E \u0442\u043E, \u043E \u0447\u0451\u043C \u043E\u043D \u043F\u0440\u043E\u0441\u0438\u043B; \u0435\u0441\u043B\u0438\n\u043F\u0440\u043E\u0441\u044C\u0431\u0430 \u0448\u0438\u0440\u0435 \u0438\u043B\u0438 \u043D\u0435\u043E\u0434\u043D\u043E\u0437\u043D\u0430\u0447\u043D\u0430 (\u043A\u043E\u0433\u043E \u043D\u0430\u0437\u043D\u0430\u0447\u0438\u0442\u044C, \u043A\u0430\u043A\u0443\u044E \u0437\u0430\u0434\u0430\u0447\u0443 \u0437\u0430\u043A\u0440\u044B\u0442\u044C, \u043A\u0430\u043A\u043E\u0439 \u0444\u0430\u0439\u043B \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C) \u2014 \u0441\u043D\u0430\u0447\u0430\u043B\u0430\n\u0441\u043F\u0440\u043E\u0441\u0438. \u0423\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0435, \u0443\u0448\u0435\u0434\u0448\u0435\u0435 \u0447\u0435\u043B\u043E\u0432\u0435\u043A\u0443, \u043D\u0435 \u043E\u0442\u0437\u044B\u0432\u0430\u0435\u0442\u0441\u044F.\n\n**\u041F\u0430\u043A\u0435\u0442\u043D\u044B\u0435 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438** (`taskIds[]`, 1\u201350 id \u0431\u0435\u0437 \u043F\u043E\u0432\u0442\u043E\u0440\u043E\u0432: `bitrix_task_tags`, `bitrix_task_priority`,\n`bitrix_task_deadline`, `bitrix_task_reopen`, `bitrix_task_result_add`, `bitrix_task_delegate`,\n`bitrix_task_accomplices`, `bitrix_task_auditors`, `bitrix_task_move`, `bitrix_task_to_sprint`,\n`bitrix_task_to_backlog`, `bitrix_task_chat_post`) \u043E\u0431\u0440\u0430\u0431\u0430\u0442\u044B\u0432\u0430\u044E\u0442 \u0437\u0430\u0434\u0430\u0447\u0438 \u043F\u043E \u043E\u0447\u0435\u0440\u0435\u0434\u0438 \u0438 \u043E\u0442\u0432\u0435\u0447\u0430\u044E\u0442\n`{ results: [{ taskId, ok, error?, \u2026\u043F\u043E\u043B\u044F \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 }] }` \u0432 \u043F\u043E\u0440\u044F\u0434\u043A\u0435 `taskIds`. \u041E\u0448\u0438\u0431\u043A\u0430 \u043E\u0434\u043D\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438\n(`ok: false`, \u0442\u0435\u043A\u0441\u0442 \u0432 `error`) \u043D\u0435 \u043E\u0441\u0442\u0430\u043D\u0430\u0432\u043B\u0438\u0432\u0430\u0435\u0442 \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u044B\u0435 \u2014 \u043F\u0440\u043E\u0432\u0435\u0440\u044F\u0439 `ok` \u0443 \u043A\u0430\u0436\u0434\u043E\u0439. \u0421\u0430\u043C\u0430 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F\n\u043F\u0430\u0434\u0430\u0435\u0442 \u0446\u0435\u043B\u0438\u043A\u043E\u043C \u0442\u043E\u043B\u044C\u043A\u043E \u043D\u0430 \u043D\u0435\u0432\u0435\u0440\u043D\u044B\u0445 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u0430\u0445 (\u0438 \u043D\u0430 \u043A\u043E\u043B\u043E\u043D\u043A\u0435 \u0442\u0438\u043F\u0430 `FINISH` \u0443 `bitrix_task_move` /\n`_to_sprint` \u2014 \u0442\u043E\u0433\u0434\u0430 \u043D\u0435 \u0442\u0440\u043E\u043D\u0443\u0442\u0430 \u043D\u0438 \u043E\u0434\u043D\u0430 \u0437\u0430\u0434\u0430\u0447\u0430). \u0411\u043B\u0438\u0436\u0435 \u043A \u043A\u043E\u043D\u0446\u0443 \u043E\u0442\u0432\u0435\u0434\u0451\u043D\u043D\u043E\u0433\u043E \u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u043F\u0430\u043A\u0435\u0442 \u043F\u0435\u0440\u0435\u0441\u0442\u0430\u0451\u0442\n\u043D\u0430\u0447\u0438\u043D\u0430\u0442\u044C \u043D\u043E\u0432\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438: \u043E\u043D\u0438 \u043F\u0440\u0438\u0445\u043E\u0434\u044F\u0442 \u0441 `ok: false` \u0438 \xAB\u043D\u0435 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043E: \u0438\u0441\u0442\u0435\u043A\u043B\u043E \u0432\u0440\u0435\u043C\u044F \u043F\u0430\u043A\u0435\u0442\u0430\u2026\xBB \u2014 \u043F\u043E\u0432\u0442\u043E\u0440\u0438\n\u0442\u043E\u043B\u044C\u043A\u043E \u0438\u0445, \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0432 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435. \u0420\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u044B \u0438 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u043D\u0435\u0438\u0434\u0435\u043C\u043F\u043E\u0442\u0435\u043D\u0442\u043D\u044B: \u043F\u043E\u0432\u0442\u043E\u0440 \u0441\u043E\u0437\u0434\u0430\u0441\u0442 \u0434\u0443\u0431\u043B\u044C.\n\n**\u041E\u0448\u0438\u0431\u043A\u0430 \u043F\u043E\u0441\u043B\u0435 \u0437\u0430\u043F\u0438\u0441\u0438 \u2014 \u043D\u0435 \u043F\u043E\u0432\u043E\u0434 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u0442\u044C \u0432\u0441\u043B\u0435\u043F\u0443\u044E.** \u0411\u043E\u043B\u044C\u0448\u0438\u043D\u0441\u0442\u0432\u043E \u043C\u0443\u0442\u0430\u0446\u0438\u0439 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u044E\u0442 \u0442\u043E, \u0447\u0442\u043E\n\u0437\u0430\u043F\u0438\u0441\u0430\u043B\u0438, \u0438 \u043F\u043E \u0442\u0435\u043A\u0441\u0442\u0443 \u043E\u0448\u0438\u0431\u043A\u0438 \u0432\u0438\u0434\u043D\u043E, \u0447\u0442\u043E \u0441\u043B\u0443\u0447\u0438\u043B\u043E\u0441\u044C:\n\n- \xAB\u2026\u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043E / \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0437\u0430\u043F\u0438\u0441\u0430\u043D\u043E / \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0443\u0434\u0430\u043B\u0435\u043D\u043E\xBB, \u043E\u0448\u0438\u0431\u043A\u0438 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u043E\u0432\n (`invalid arguments\u2026`) \u2014 \u0437\u0430\u043F\u0440\u043E\u0441\u0430 \u043D\u0430 \u0437\u0430\u043F\u0438\u0441\u044C \u043D\u0435 \u0431\u044B\u043B\u043E; \u043F\u043E\u043F\u0440\u0430\u0432\u044C \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u044B \u0438 \u0432\u044B\u0437\u044B\u0432\u0430\u0439 \u0441\u043D\u043E\u0432\u0430.\n- \xAB\u0437\u0430\u043F\u0438\u0441\u044C \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0430, \u043D\u043E \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0442\u044C \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C (\u043F\u0440\u043E\u0432\u0435\u0440\u044C \u0447\u0435\u0440\u0435\u0437 \u2026)\xBB \u0438 \u0435\u0433\u043E \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u044B (\xAB\u043F\u0435\u0440\u0435\u043D\u043E\u0441 /\n \u0434\u0435\u043B\u0435\u0433\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 / \u0437\u0430\u043A\u0440\u044B\u0442\u0438\u0435 / \u0432\u043E\u0437\u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u043E, \u043D\u043E \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C\xBB) \u2014 \u0437\u0430\u043F\u0438\u0441\u044C \u0443\u0448\u043B\u0430,\n \u0430 \u0438\u0442\u043E\u0433 \u043D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043D: \u043F\u0440\u043E\u0432\u0435\u0440\u044C \u043D\u0430\u0437\u0432\u0430\u043D\u043D\u044B\u043C \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u043C, \u043D\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u0439.\n- \xAB\u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u043C\u043E\u0433\u043B\u043E \u0443\u0439\u0442\u0438\xBB, \xAB\u0437\u0430\u0434\u0430\u0447\u0430 \u043C\u043E\u0433\u043B\u0430 \u0441\u043E\u0437\u0434\u0430\u0442\u044C\u0441\u044F\xBB, \xAB\u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442 \u043C\u043E\u0433 \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C\u0441\u044F\xBB, \xAB\u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u043C\u043E\u0433\u043B\u043E\n \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C\u0441\u044F\xBB, \xAB\u0444\u0430\u0439\u043B \u043C\u043E\u0433 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C\u0441\u044F \u043D\u0430 \u0414\u0438\u0441\u043A\xBB, \xAB\u0432\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u043C\u043E\u0433\u043B\u043E \u0441\u043E\u0437\u0434\u0430\u0442\u044C\u0441\u044F\xBB, \xAB\u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 \u043C\u043E\u0433\u043B\u043E \u0441\u043E\u0437\u0434\u0430\u0442\u044C\u0441\u044F\xBB \u2014\n \u043F\u043E\u0440\u0442\u0430\u043B \u043C\u043E\u0433 \u0432\u0441\u0451 \u0441\u0434\u0435\u043B\u0430\u0442\u044C, \u043D\u043E \u043E\u0442\u0432\u0435\u0442\u0430 \u043D\u0435 \u0434\u0430\u043B (\u0442\u0430\u0439\u043C\u0430\u0443\u0442, \u043D\u0435\u043E\u0436\u0438\u0434\u0430\u043D\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442): \u0441\u043D\u0430\u0447\u0430\u043B\u0430 \u043F\u0440\u043E\u0432\u0435\u0440\u044C (\u0447\u0430\u0442, \u0434\u043E\u0441\u043A\u0430\n \u0441\u043F\u0440\u0438\u043D\u0442\u0430, \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0437\u0430\u0434\u0430\u0447\u0438, `bitrix_task_get_v2`, \u0414\u0438\u0441\u043A, \u0444\u0430\u0439\u043B\u044B \u0437\u0430\u0434\u0430\u0447\u0438, `bitrix_task_reminders`), \u043F\u043E\u0432\u0442\u043E\u0440 \u0431\u0435\u0437\n \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438 \u0441\u043E\u0437\u0434\u0430\u0441\u0442 \u0434\u0443\u0431\u043B\u044C (\u0430 `bitrix_task_description_append` \u0434\u043E\u043F\u0438\u0448\u0435\u0442 \u0442\u0435\u043A\u0441\u0442 \u0432\u0442\u043E\u0440\u043E\u0439 \u0440\u0430\u0437).\n- \xABBitrix \u043E\u0442\u0432\u0435\u0442\u0438\u043B \u0443\u0441\u043F\u0435\u0445\u043E\u043C, \u043D\u043E \u2026\xBB, \xABBitrix \u043D\u0435 \u043F\u0440\u0438\u043C\u0435\u043D\u0438\u043B: \u2026\xBB \u2014 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u043D\u043D\u043E\u0435 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u043D\u0435 \u0442\u043E, \u0447\u0442\u043E \u043F\u0440\u043E\u0441\u0438\u043B\u0438; \u0432\n \u043E\u0448\u0438\u0431\u043A\u0435 \u2014 \u043A\u0430\u043A \u0441\u0435\u0439\u0447\u0430\u0441. \u041D\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u0439 \u0442\u043E\u0442 \u0436\u0435 \u0432\u044B\u0437\u043E\u0432 \u0432\u0441\u043B\u0435\u043F\u0443\u044E \u2014 \u0441\u043A\u0430\u0436\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E.\n- \u041C\u043D\u043E\u0433\u043E\u0448\u0430\u0433\u043E\u0432\u044B\u0435 \u043F\u0440\u0430\u0432\u043A\u0438 \u043D\u0430\u0437\u044B\u0432\u0430\u044E\u0442, \u0447\u0442\u043E \u0443\u0436\u0435 \u0441\u0434\u0435\u043B\u0430\u043D\u043E: `bitrix_task_checklist_edit` \u2014 \xAB\u0434\u043E \u044D\u0442\u043E\u0433\u043E \u0441\u0434\u0435\u043B\u0430\u043D\u043E: \u2026\xBB\n (\u043D\u0430 \u0438\u0441\u0445\u043E\u0434\u0435 \u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u0432\u044B\u0437\u043E\u0432\u0430 \u2014 \u0435\u0449\u0451 \u0438 \xAB\u0438\u0441\u0442\u0435\u043A\u043B\u043E \u0432\u0440\u0435\u043C\u044F \u0432\u044B\u0437\u043E\u0432\u0430, \u043D\u0435 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043E: \u2026\xBB: \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0439 \u0447\u0435\u043A-\u043B\u0438\u0441\u0442 \u0438 \u043F\u043E\u0432\u0442\u043E\u0440\u0438 \u0442\u043E\u043B\u044C\u043A\u043E \u044D\u0442\u043E),\n `bitrix_task_parent` \u2014 \u043F\u0440\u0435\u0436\u043D\u0435\u0433\u043E \u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044F \u0438 \u0432\u044B\u0437\u043E\u0432, \u043A\u043E\u0442\u043E\u0440\u044B\u043C \u0435\u0433\u043E \u0432\u0435\u0440\u043D\u0443\u0442\u044C, `bitrix_task_to_sprint` \u2014 \xAB\u0432\u0435\u0440\u043D\u0438\n \u0435\u0451 \u0432 \u0431\u044D\u043A\u043B\u043E\u0433 (`bitrix_task_to_backlog`) \u0438 \u043F\u043E\u0432\u0442\u043E\u0440\u0438\xBB.\n\n**\u0421\u043F\u0438\u0441\u043A\u0438 \u0446\u0435\u043B\u0438\u043A\u043E\u043C.** \u0421\u043E\u0438\u0441\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u0435\u0439, \u043D\u0430\u0431\u043B\u044E\u0434\u0430\u0442\u0435\u043B\u0435\u0439, \u0442\u0435\u0433\u0438 \u0438 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 Bitrix \u0445\u0440\u0430\u043D\u0438\u0442 \u0438 \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0438\u0441\u044B\u0432\u0430\u0435\u0442\n\u0446\u0435\u043B\u0438\u043A\u043E\u043C, \u043F\u043E\u044D\u0442\u043E\u043C\u0443 `bitrix_task_accomplices`, `bitrix_task_auditors`, `bitrix_task_tags`,\n`bitrix_task_description_append` / `_replace` \u0441\u0430\u043C\u0438 \u0447\u0438\u0442\u0430\u044E\u0442 \u0442\u0435\u043A\u0443\u0449\u0435\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 **\u043A\u0430\u0436\u0434\u043E\u0439** \u0437\u0430\u0434\u0430\u0447\u0438, \u043C\u0435\u043D\u044F\u044E\u0442 \u0432 \u043D\u0451\u043C\n\u0442\u043E\u043B\u044C\u043A\u043E \u043D\u0430\u0437\u0432\u0430\u043D\u043D\u043E\u0435 \u0438 \u0437\u0430\u043F\u0438\u0441\u044B\u0432\u0430\u044E\u0442 \u043E\u0431\u0440\u0430\u0442\u043D\u043E; \u0435\u0441\u043B\u0438 \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044C \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u2014 \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u043F\u0438\u0448\u0443\u0442. \u041F\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0439 \u0442\u043E\u043B\u044C\u043A\u043E\n`add` / `remove` (\u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442, \u0434\u043E\u043F\u0438\u0441\u043A\u0443), \u0430 \u043D\u0435 \u0432\u0435\u0441\u044C \u0441\u043F\u0438\u0441\u043E\u043A; \u0435\u0441\u043B\u0438 \u043C\u0435\u043D\u044F\u0442\u044C \u043D\u0435\u0447\u0435\u0433\u043E \u2014 `changed: false`, \u0437\u0430\u043F\u0438\u0441\u0438 \u043D\u0435\u0442.\n\u0422\u0430\u043A \u0436\u0435 `bitrix_task_related_edit` \u0434\u043E\u0431\u0430\u0432\u043B\u044F\u0435\u0442 \u0438 \u0443\u0431\u0438\u0440\u0430\u0435\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u043D\u0430\u0437\u0432\u0430\u043D\u043D\u044B\u0435 \u0441\u0432\u044F\u0437\u0438, \u0430 `bitrix_task_plan`\n\u0441\u043E\u0445\u0440\u0430\u043D\u044F\u0435\u0442 \u043D\u0435\u043F\u0435\u0440\u0435\u0434\u0430\u043D\u043D\u0443\u044E \u0434\u0430\u0442\u0443. `bitrix_task_description_set` \u2014 \u0435\u0434\u0438\u043D\u0441\u0442\u0432\u0435\u043D\u043D\u0430\u044F, \u0447\u0442\u043E \u0437\u0430\u043C\u0435\u043D\u044F\u0435\u0442 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u0446\u0435\u043B\u0438\u043A\u043E\u043C.\n\n**\u041A\u0442\u043E \u044D\u0442\u043E \u0443\u0432\u0438\u0434\u0438\u0442 \u0438 \u043A\u043E\u0433\u043E \u0443\u0432\u0435\u0434\u043E\u043C\u044F\u0442.**\n\n| \u041E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 | \u0412\u0438\u0434\u044F\u0442 | \u0423\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0435 |\n|---|---|---|\n| `bitrix_chat_send`, `bitrix_task_chat_post` | \u0432\u0441\u0435 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u0447\u0430\u0442\u0430 | \u0443\u043F\u043E\u043C\u044F\u043D\u0443\u0442\u044B\u043C `[user=ID]\u0418\u043C\u044F[/user]` |\n| `bitrix_chat_message_edit`, `bitrix_chat_reaction` | \u0432\u0441\u0435 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u0447\u0430\u0442\u0430 | \u043D\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043E (\u043D\u043E\u0432\u043E\u0435 \u0443\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 \u043F\u0440\u0438 \u043F\u0440\u0430\u0432\u043A\u0435; \u0430\u0432\u0442\u043E\u0440\u0443 \u2014 \u043E \u0440\u0435\u0430\u043A\u0446\u0438\u0438) |\n| `bitrix_task_delegate` | \u0438\u0441\u0442\u043E\u0440\u0438\u044F \u0437\u0430\u0434\u0430\u0447\u0438 | \u043D\u043E\u0432\u043E\u043C\u0443 \u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u043C\u0443 |\n| `bitrix_task_accomplices`, `bitrix_task_auditors` | \u0438\u0441\u0442\u043E\u0440\u0438\u044F \u0437\u0430\u0434\u0430\u0447\u0438 | \u043A\u0430\u0436\u0434\u043E\u043C\u0443 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u043D\u043E\u043C\u0443 |\n| `bitrix_task_close`, `bitrix_task_reopen` | \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 | \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0430\u043C \u0437\u0430\u0434\u0430\u0447\u0438 |\n| `bitrix_task_result_add` | \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0437\u0430\u0434\u0430\u0447\u0438; \u0430\u043D\u043E\u043D\u0441 \u0432 \u0435\u0451 \u0447\u0430\u0442\u0435 \u0432\u0438\u0434\u044F\u0442 \u0432\u0441\u0435 \u0435\u0433\u043E \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 | \u2014 |\n| \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435, \u0442\u0435\u0433\u0438, \u0432\u0430\u0436\u043D\u043E\u0441\u0442\u044C, \u0441\u0440\u043E\u043A, \u043F\u043B\u0430\u043D\u0438\u0440\u0443\u0435\u043C\u044B\u0435 \u0434\u0430\u0442\u044B | \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443; \u0438\u0441\u0442\u043E\u0440\u0438\u044F \u0437\u0430\u0434\u0430\u0447\u0438 | \u2014 |\n| `bitrix_task_checklist_edit`, \u0441\u0432\u044F\u0437\u0438, \u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044C, \u0441\u0432\u044F\u0437\u044C \u0413\u0430\u043D\u0442\u0430 | \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 | \u2014 |\n| `bitrix_task_file_attach` | \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 (\u0438 \u043C\u043E\u0433\u0443\u0442 \u0441\u043A\u0430\u0447\u0430\u0442\u044C) | \u2014 |\n| `bitrix_task_create`, `bitrix_task_move`, `_to_sprint`, `_to_backlog` | \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u043F\u0440\u043E\u0435\u043A\u0442\u0430 \u043D\u0430 scrum-\u0434\u043E\u0441\u043A\u0435 | \u2014 |\n| `bitrix_task_mute`, \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F | **\u0442\u043E\u043B\u044C\u043A\u043E \u0442\u044B** | \u0442\u043E\u043B\u044C\u043A\u043E \u0442\u0435\u0431\u0435 (\u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F) |\n\n\xAB\u2014\xBB \u2014 \u043D\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043E: \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F \u043E\u0431 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F\u0445 \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442, \u043D\u043E Bitrix \u043C\u043E\u0436\u0435\u0442 \u0441\u0430\u043C \u0441\u043B\u0430\u0442\u044C\n\u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0430\u043C \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u043E\u0431 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438. \u0427\u0430\u0442 \u0437\u0430\u0434\u0430\u0447\u0438 \u2014 `CHAT_ID` \u0438\u0437 `bitrix_task_get` (\u0438\u043B\u0438\n`bitrix_entity_chat { entityType:"TASKS_TASK" }`). userId \u0434\u043B\u044F \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u043E\u0432 \u2014 `bitrix_user_find` (\u043F\u043E\n\u0444\u0430\u043C\u0438\u043B\u0438\u0438) \u0438\u043B\u0438 \u043F\u043E\u043B\u044F \u0437\u0430\u0434\u0430\u0447\u0438; \u043B\u044E\u0434\u0435\u0439 \u0438\u0437 \u0432\u044B\u0434\u0430\u0447\u0438 `bitrix_user_find` \u0441 `active: false` \u043D\u0430 \u0440\u0430\u0431\u043E\u0447\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043D\u0435\n\u043D\u0430\u0437\u043D\u0430\u0447\u0430\u0439.\n\n**`bitrix_task_move`** \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u0434\u043B\u044F \u0437\u0430\u0434\u0430\u0447\u0438, \u043A\u043E\u0442\u043E\u0440\u0430\u044F \u0443\u0436\u0435 \u043D\u0430 \u0434\u043E\u0441\u043A\u0435 \u0441\u043F\u0440\u0438\u043D\u0442\u0430 (\u043D\u0435 \u0432 \u0431\u044D\u043A\u043B\u043E\u0433\u0435):\n`task.stages.movetask` \u043E\u0442\u0432\u0435\u0447\u0430\u0435\u0442 `true`, \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0441\u0434\u0435\u043B\u0430\u0432, \u2014 \u043C\u043E\u0441\u0442 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 \u0438 \u0432 \u044D\u0442\u043E\u043C \u0441\u043B\u0443\u0447\u0430\u0435\n\u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043E\u0448\u0438\u0431\u043A\u0443 \u043F\u043E \u044D\u0442\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0435. \u0417\u0430\u0434\u0430\u0447\u0443 \u0438\u0437 \u0431\u044D\u043A\u043B\u043E\u0433\u0430 \u0441\u0442\u0430\u0432\u0438\u0442 \u043D\u0430 \u0434\u043E\u0441\u043A\u0443 `bitrix_task_to_sprint` (\u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0438\u0442 \u0432\n\u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0439 \u0441\u043F\u0440\u0438\u043D\u0442, \u0441\u0442\u0430\u0432\u0438\u0442 \u043D\u0430 \u0434\u043E\u0441\u043A\u0443, \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442 \u0441\u043F\u0440\u0438\u043D\u0442 \u0438 \u043A\u043E\u043B\u043E\u043D\u043A\u0443); \u0437\u0430\u0434\u0430\u0447\u0438 \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0445 \u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0451\u043D\u043D\u044B\u0445\n\u0441\u043F\u0440\u0438\u043D\u0442\u043E\u0432 \u043E\u043D \u043D\u0435 \u0442\u0440\u043E\u0433\u0430\u0435\u0442. \u0415\u0441\u043B\u0438 \u043F\u0435\u0440\u0435\u043D\u043E\u0441 \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D, \u0430 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C, \u043E\u0448\u0438\u0431\u043A\u0430 \u0442\u0430\u043A \u0438 \u0433\u043E\u0432\u043E\u0440\u0438\u0442 \u2014\n\u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u0442\u043E\u0433\u0434\u0430 \u043F\u0440\u043E\u0432\u0435\u0440\u044C \u0447\u0435\u0440\u0435\u0437 `bitrix_task_get`. `task.stages.get` \u043E\u0442\u0434\u0430\u0451\u0442 \u0441\u0442\u0430\u0440\u044B\u0439 \u043A\u0430\u043D\u0431\u0430\u043D \u0433\u0440\u0443\u043F\u043F\u044B, \u0430 \u043D\u0435\n\u043A\u043E\u043B\u043E\u043D\u043A\u0438 \u0441\u043F\u0440\u0438\u043D\u0442\u0430. \u041F\u0435\u0440\u0435\u043D\u043E\u0441 \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u043C\u043E\u0436\u0435\u0442 \u043F\u0435\u0440\u0435\u043E\u0442\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u043A\u0440\u044B\u0442\u0443\u044E \u0437\u0430\u0434\u0430\u0447\u0443 \u2014 \u0441\u043C\u043E\u0442\u0440\u0438 `status` \u0432 \u043E\u0442\u0432\u0435\u0442\u0435.\n\n**\u041A\u043E\u043B\u043E\u043D\u043A\u0430 \u0442\u0438\u043F\u0430 `FINISH`** (\u043E\u0431\u044B\u0447\u043D\u043E \xAB\u0413\u043E\u0442\u043E\u0432\u043E\xBB, \u0441\u043C. `type` \u0432 `bitrix_sprint_columns`) \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442 \u0437\u0430\u0434\u0430\u0447\u0443,\n\u0430 Definition of Done \u0441\u043F\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u0432\u0441\u043F\u043B\u044B\u0432\u0430\u044E\u0449\u0435\u0435 \u043E\u043A\u043D\u043E \u0432\u0435\u0431-\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430. \u041F\u043E\u044D\u0442\u043E\u043C\u0443 `bitrix_task_move`,\n`bitrix_task_to_sprint` \u0438 `bitrix_task_create` \u0442\u0430\u043A\u0443\u044E \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u043D\u0435 \u043F\u0440\u0438\u043D\u0438\u043C\u0430\u044E\u0442 \u2014 \u043D\u0438 \u043F\u043E \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044E, \u043D\u0438 \u043F\u043E id:\n\xAB\u043A\u043E\u043B\u043E\u043D\u043A\u0430 \xAB\u2026\xBB \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 \u2014 \u0437\u0430\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u043C\u043E\u0436\u043D\u043E \u0442\u043E\u043B\u044C\u043A\u043E \u0447\u0435\u0440\u0435\u0437 `bitrix_task_close` \u2026; \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435\n\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043E\xBB. \u0423 \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0445 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0439 \u043E\u0442\u043A\u0430\u0437 \u2014 \u043D\u0430 \u0432\u0435\u0441\u044C \u0432\u044B\u0437\u043E\u0432: \u0441\u043D\u0430\u0447\u0430\u043B\u0430 \u0447\u0438\u0442\u0430\u044E\u0442\u0441\u044F \u0432\u0441\u0435 \u0437\u0430\u0434\u0430\u0447\u0438, \u0438 \u0435\u0441\u043B\u0438 \u043A\u043E\u043B\u043E\u043D\u043A\u0430\n\u0445\u043E\u0442\u044C \u0443 \u043E\u0434\u043D\u043E\u0439 \u0438\u0437 \u043D\u0438\u0445 (\u0432 \u0435\u0451 \u043F\u0440\u043E\u0435\u043A\u0442\u0435) \u2014 `FINISH`, \u043D\u0435 \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0438\u0442\u0441\u044F \u043D\u0438 \u043E\u0434\u043D\u0430. \u0417\u0430\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u2014\n`bitrix_task_close` (\xA75.7).\n\n**\u0414\u0430\u0442\u044B** (`bitrix_task_plan`, `bitrix_task_deadline`, `bitrix_task_reminder_set`) \u2014 ISO 8601 **\u0441\u043E\n\u0441\u043C\u0435\u0449\u0435\u043D\u0438\u0435\u043C**: `"2026-12-01T09:00:00+03:00"` \u0438\u043B\u0438 `"\u2026Z"`; \u0431\u0435\u0437 \u0441\u043C\u0435\u0449\u0435\u043D\u0438\u044F \u2014 \u043E\u0448\u0438\u0431\u043A\u0430 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u043E\u0432. \u0412 \u043E\u0442\u0432\u0435\u0442\u0435 \u0434\u0430\u0442\u044B \u0432\nUTC. Bitrix \u0445\u0440\u0430\u043D\u0438\u0442 \u0432\u0440\u0435\u043C\u044F \u0437\u0430\u0434\u0430\u0447 \u0441 \u0442\u043E\u0447\u043D\u043E\u0441\u0442\u044C\u044E \u0434\u043E \u043C\u0438\u043D\u0443\u0442\u044B: \u0441\u0435\u043A\u0443\u043D\u0434\u044B \u043D\u0435 \u0441\u0447\u0438\u0442\u0430\u044E\u0442\u0441\u044F \u0440\u0430\u0441\u0445\u043E\u0436\u0434\u0435\u043D\u0438\u0435\u043C.\n\n**\u0420\u0430\u0437\u043C\u0435\u0442\u043A\u0430 \u0442\u0435\u043A\u0441\u0442\u0430.**\n\n- **\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438** (`bitrix_task_description_*`) \u0438 **\u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442** (`bitrix_task_result_add`) \u2014 \u043F\u043E\u043B\u043D\u044B\u0439\n BBCode: `[b] [i] [u] [s]`, `[url=\u2026]\u2026[/url]`, `[user=ID]\u0418\u043C\u044F[/user]`, \u0441\u043F\u0438\u0441\u043A\u0438 `[list]` / `[list=1]` \u0441\n \u043F\u0443\u043D\u043A\u0442\u0430\u043C\u0438 `[*]`, `[quote]`, `[code]`, `[spoiler=\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A]\u2026[/spoiler]`, \u0442\u0430\u0431\u043B\u0438\u0446\u044B `[table][tr][th]/[td]`.\n \u0422\u0435\u0433\u0438 `[disk file id=\u2026]` \u2014 \u044D\u0442\u043E \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u0451\u043D\u043D\u044B\u0435 \u0444\u0430\u0439\u043B\u044B, \u0441\u043E\u0445\u0440\u0430\u043D\u044F\u0439 \u0438\u0445. \u041A\u0430\u043A BBCode \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0430 \u0432\u044B\u0433\u043B\u044F\u0434\u0438\u0442 \u0432 \u0435\u0433\u043E\n \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0435 \u0432 \u0447\u0430\u0442\u0435, \u043D\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043E.\n- **\u0421\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u0432 \u0447\u0430\u0442** (`bitrix_chat_send`, `bitrix_chat_message_edit`, `bitrix_task_chat_post`) \u2014 \u0442\u043E\u043B\u044C\u043A\u043E\n \u0442\u043E, \u0447\u0442\u043E \u0440\u0435\u043D\u0434\u0435\u0440\u044F\u0442 \u0438 \u0432\u0435\u0431, \u0438 \u043C\u043E\u0431\u0438\u043B\u044C\u043D\u043E\u0435 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435: `[b] [i] [u] [s]`, `[url=\u2026]\u2026[/url]`,\n `[user=ID]\u0418\u043C\u044F[/user]`, `[code]`, `[color=#hex]\u2026[/color]`, `[br]`. \u0426\u0438\u0442\u0430\u0442\u0430 \u2014 \u0441\u0442\u0440\u043E\u043A\u0430, \u043D\u0430\u0447\u0438\u043D\u0430\u044E\u0449\u0430\u044F\u0441\u044F \u0441 `>>`,\n \u0438\u043B\u0438 \u0431\u043B\u043E\u043A \u043C\u0435\u0436\u0434\u0443 \u0434\u0432\u0443\u043C\u044F \u0441\u0442\u0440\u043E\u043A\u0430\u043C\u0438 \u0438\u0437 \u0434\u0435\u0444\u0438\u0441\u043E\u0432; \u0441\u043F\u0438\u0441\u043E\u043A \u2014 \u0441\u0442\u0440\u043E\u043A\u0438, \u043D\u0430\u0447\u0438\u043D\u0430\u044E\u0449\u0438\u0435\u0441\u044F \u0441 `\u2022`. `[quote]`, `[list]`,\n `[spoiler]`, \u0442\u0430\u0431\u043B\u0438\u0446\u044B \u0438 Markdown \u0432 \u0447\u0430\u0442\u0435 **\u043D\u0435 \u0440\u0435\u043D\u0434\u0435\u0440\u044F\u0442\u0441\u044F**. \u0414\u043B\u0438\u043D\u043D\u0435\u0435 20 000 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 Bitrix \u043C\u043E\u043B\u0447\u0430 \u043E\u0431\u0440\u0435\u0436\u0435\u0442 \u2014\n \u043C\u043E\u0441\u0442 \u0442\u0430\u043A\u043E\u0435 \u043D\u0435 \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442.\n- **\u041F\u0440\u043E\u0441\u0442\u043E\u0439 \u0442\u0435\u043A\u0441\u0442:** \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 (`bitrix_task_create` \u2014 BBCode \u0432 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0438 \u043D\u0435 \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442), \u0442\u0435\u0433\u0438, \u043F\u0440\u0438\u0447\u0438\u043D\u0430\n \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0430 \u0441\u0440\u043E\u043A\u0430. \u041D\u0430\u0437\u0432\u0430\u043D\u0438\u044F \u043F\u0443\u043D\u043A\u0442\u043E\u0432 \u0447\u0435\u043A-\u043B\u0438\u0441\u0442\u0430 \u2014 \u0442\u043E\u0436\u0435 \u043F\u0440\u043E\u0441\u0442\u043E\u0439 \u0442\u0435\u043A\u0441\u0442 (\u043A\u0430\u043A \u0432 \u043D\u0438\u0445 \u0440\u0435\u043D\u0434\u0435\u0440\u0438\u0442\u0441\u044F BBCode, \u043D\u0435\n \u043F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043E).\n- Markdown \u043D\u0435 \u0440\u0435\u043D\u0434\u0435\u0440\u0438\u0442\u0441\u044F \u043D\u0438\u0433\u0434\u0435.\n\n---\n\n## 4. \u0421\u043F\u0440\u0430\u0432\u043E\u0447\u043D\u0438\u043A \u043F\u043E\u043B\u0435\u0439\n\n**\u0417\u0430\u0434\u0430\u0447\u0430** (`tasks.task.*`) \u2014 \u043F\u043E\u043B\u044F \u0434\u043B\u044F `select`/`filter` \u0432 UPPER_CASE: `ID`, `TITLE`, `DESCRIPTION`,\n`STATUS`, `REAL_STATUS`, `RESPONSIBLE_ID`, `CREATED_BY`, `CREATED_DATE`, `CHANGED_DATE`, `DEADLINE`,\n`CLOSED_DATE`, `PRIORITY`, `GROUP_ID`, `TAGS`, `TIME_ESTIMATE`, **`CHAT_ID`** (id \u0447\u0430\u0442\u0430-\u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u044F\n\u0437\u0430\u0434\u0430\u0447\u0438 \u2014 \u043F\u0440\u044F\u043C\u043E\u0439 \u0440\u0435\u0437\u043E\u043B\u0432\u0435\u0440 `taskId \u2192 chatId`, \xA75.2), `COMMENTS_COUNT` (\xA75.6), **`UF_TASK_WEBDAV_FILES`**\n(id **\u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u0451\u043D\u043D\u044B\u0445 \u043E\u0431\u044A\u0435\u043A\u0442\u043E\u0432** \u2014 \u0438\u043C\u0435\u043D\u043D\u043E \u0438\u0445 \u0436\u0434\u0451\u0442 `bitrix_task_files`; \u0441 id \u0437\u0430\u0434\u0430\u0447\u0438 \u043E\u043D \u0432\u0435\u0440\u043D\u0451\u0442 \u043F\u0443\u0441\u0442\u043E\u0439\n\u0441\u043F\u0438\u0441\u043E\u043A \u0431\u0435\u0437 \u043E\u0448\u0438\u0431\u043A\u0438), `UF_*`. \u041E\u0442\u0432\u0435\u0442 \u043F\u043E\u0434\u043A\u043B\u0430\u0434\u044B\u0432\u0430\u0435\u0442 \u043E\u0431\u044A\u0435\u043A\u0442\u044B `group`,\n`responsible`, `creator`, `action`.\n\u{1F4D6} (`tasks.task.get`/`list`) \u2014 \u0441\u0432\u0435\u0440\u0445 \u044D\u0442\u043E\u0433\u043E: `parentId`, `stageId`, `sprintId`, `backlogId`,\n`commentsCount`, `timeSpentInLogs`, `favorite`, `flowId`, `mark`, `accomplices[]`, `auditors[]`,\n`checklist{}`, `subStatus`; \u0432 \u043E\u0444\u0438\u0446\u0438\u0430\u043B\u044C\u043D\u043E\u043C REST-\u043E\u0442\u0432\u0435\u0442\u0435 \u043F\u043E\u043B\u044F \u043F\u0440\u0438\u0445\u043E\u0434\u044F\u0442 **camelCase**, \u0430 \u0432 `select`/`filter`\n\u043E\u043D\u0438 \u0432\u0441\u0435\u0433\u0434\u0430 **UPPER_CASE**. \u0414\u043E\u043F. \u0432\u044B\u0447\u0438\u0441\u043B\u0435\u043D\u0438\u044F \u2014 \u0444\u043B\u0430\u0433\u0430\u043C\u0438 `params{WITH_TIMER_INFO, WITH_RESULT_INFO,\nWITH_PARSED_DESCRIPTION}`.\n\n**\u0421\u0442\u0430\u0442\u0443\u0441\u044B** (`REAL_STATUS` \u2014 \xAB\u043D\u0430\u0441\u0442\u043E\u044F\u0449\u0435\u0435\xBB \u0447\u0438\u0441\u043B\u043E\u0432\u043E\u0435 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435): `1` \u041D\u043E\u0432\u0430\u044F \xB7 `2` \u0416\u0434\u0451\u0442 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \xB7\n`3` \u0412\u044B\u043F\u043E\u043B\u043D\u044F\u0435\u0442\u0441\u044F \xB7 `4` \u0416\u0434\u0451\u0442 \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u044F \xB7 `5` \u0417\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0430 \xB7 `6` \u041E\u0442\u043B\u043E\u0436\u0435\u043D\u0430 \xB7 `7` \u041E\u0442\u043A\u043B\u043E\u043D\u0435\u043D\u0430. \u041F\u043E\u043B\u0435 `STATUS`\n\u043F\u043E\u0432\u0435\u0440\u0445 \u044D\u0442\u043E\u0433\u043E \u043D\u0435\u0441\u0451\u0442 **\u043C\u0435\u0442\u0430-\u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u044F** \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F (\u043F\u043E\u0447\u0442\u0438 \u043F\u0440\u043E\u0441\u0440\u043E\u0447\u0435\u043D\u0430 / \u043D\u0435 \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u043D\u0430 / \u043F\u0440\u043E\u0441\u0440\u043E\u0447\u0435\u043D\u0430),\n\u043F\u043E\u044D\u0442\u043E\u043C\u0443 \xAB\u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442 \u043B\u0438 \u0437\u0430\u0434\u0430\u0447\u0430 \u0441\u0435\u0439\u0447\u0430\u0441\xBB \u0444\u0438\u043B\u044C\u0442\u0440\u0443\u0439 \u043F\u043E **`REAL_STATUS`** (\u043D\u0430\u043F\u0440. `{"REAL_STATUS":3}`) \u{1F4D6}.\n\u0410\u0441\u0438\u043C\u043C\u0435\u0442\u0440\u0438\u044F: \u0432 **`filter`** \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442 `REAL_STATUS`, \u0430 \u0432 **`select`** \u0435\u0433\u043E \u0443\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u0431\u0435\u0441\u043F\u043E\u043B\u0435\u0437\u043D\u043E \u2014 \u043F\u043E\u043B\u0435 \u043C\u043E\u043B\u0447\u0430\n\u043D\u0435 \u0432\u0435\u0440\u043D\u0451\u0442\u0441\u044F; \u0447\u0442\u043E\u0431\u044B \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435, \u043F\u0440\u043E\u0441\u0438 `select:["STATUS"]` \u2192 \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 \u0431\u0443\u0434\u0435\u0442 \u043A\u043B\u044E\u0447 `status` \u0441\u043E\n\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u043C \u043F\u043E \u0442\u043E\u0439 \u0436\u0435 \u0448\u043A\u0430\u043B\u0435 1..7 (\u0443 \u043E\u0431\u0451\u0440\u0442\u043A\u0438 `bitrix_tasks_list` \u043E\u043D \u0443\u0436\u0435 \u0432 \u0434\u0435\u0444\u043E\u043B\u0442\u043D\u043E\u043C `select`).\n\n**\u0424\u0438\u043B\u044C\u0442\u0440 `tasks.task.list`** \u2014 \u043E\u043F\u0435\u0440\u0430\u0442\u043E\u0440 \u0441\u0442\u0430\u0432\u0438\u0442\u0441\u044F \u043F\u0435\u0440\u0435\u0434 \u0438\u043C\u0435\u043D\u0435\u043C \u043F\u043E\u043B\u044F: `!` (\u043D\u0435 \u0440\u0430\u0432\u043D\u043E / \u0438\u0441\u043A\u043B\u044E\u0447\u0438\u0442\u044C),\n`<`, `<=`, `>`, `>=`, `%` (LIKE-\u043F\u043E\u0434\u0441\u0442\u0440\u043E\u043A\u0430). \u041D\u0430\u043F\u0440. `{"!REAL_STATUS":5}` \u2014 \u0432\u0441\u0435 **\u043D\u0435\u0437\u0430\u043A\u0440\u044B\u0442\u044B\u0435**,\n`{">=DEADLINE":"2026-07-01"}`, `{"%TITLE":"\u043A\u0430\u0440\u0442\u0430"}`. \u0424\u0438\u043B\u044C\u0442\u0440\u0443\u0435\u043C\u044B\u0435 \u043F\u043E\u043B\u044F: `ID`, `PARENT_ID`, `GROUP_ID`,\n`CREATED_BY`, `RESPONSIBLE_ID`, `ACCOMPLICE`, `AUDITOR`, `REAL_STATUS`, `STATUS`, `PRIORITY`, `TAG`,\n`STAGE_ID`, `SPRINT_ID`, `BACKLOG_ID`, `DEADLINE`, `*_DATE`, `UF_CRM_TASK`.\n\n> **\xAB\u041C\u043E\u0438 \u0437\u0430\u0434\u0430\u0447\u0438\xBB \u2260 \u0442\u043E\u043B\u044C\u043A\u043E `RESPONSIBLE_ID`.** \u0420\u043E\u043B\u0438 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0430 \u0440\u0430\u0437\u0434\u0435\u043B\u044C\u043D\u044B: \u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043D\u043D\u044B\u0439\n> (`RESPONSIBLE_ID`), \u0441\u043E\u0438\u0441\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C (`ACCOMPLICE`), \u043D\u0430\u0431\u043B\u044E\u0434\u0430\u0442\u0435\u043B\u044C (`AUDITOR`), \u043F\u043E\u0441\u0442\u0430\u043D\u043E\u0432\u0449\u0438\u043A\n> (`CREATED_BY`); \u0435\u0434\u0438\u043D\u043E\u0433\u043E \xAB\u043B\u044E\u0431\u0430\u044F \u0440\u043E\u043B\u044C\xBB \u043F\u043E\u043B\u044F \u0432 `list` \u043D\u0435\u0442 \u2014 \u0447\u0442\u043E\u0431\u044B \u0441\u043E\u0431\u0440\u0430\u0442\u044C **\u0432\u0441\u0435** \u0441\u0432\u043E\u0438 \u0437\u0430\u0434\u0430\u0447\u0438, \u043E\u0431\u044A\u0435\u0434\u0438\u043D\u0438\n> \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u044B \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u0438\u0445 \u0432\u044B\u0437\u043E\u0432\u043E\u0432 (\u043C\u0438\u043D\u0438\u043C\u0443\u043C `RESPONSIBLE_ID` + `ACCOMPLICE`) \u0438 **\u0434\u0435\u0434\u0443\u043F\u043B\u0438\u0446\u0438\u0440\u0443\u0439 \u043F\u043E `id`** \u2014\n> \u043E\u0434\u043D\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u0447\u0430\u0441\u0442\u043E \u043F\u043E\u043F\u0430\u0434\u0430\u0435\u0442 \u0441\u0440\u0430\u0437\u0443 \u0432 \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u043E \u0440\u043E\u043B\u0435\u0439. \u0412 **`filter`** \u0440\u043E\u043B\u0438 \u0432 **\u0435\u0434\u0438\u043D\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u043C** \u0447\u0438\u0441\u043B\u0435\n> (`ACCOMPLICE`/`AUDITOR`), \u0432 **`select`** \u2014 \u0432\u043E **\u043C\u043D\u043E\u0436\u0435\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u043C** (`ACCOMPLICES`/`AUDITORS`).\n\n> **Scrum-\u0437\u0430\u0434\u0430\u0447\u0438 (\u0441\u043F\u0440\u0438\u043D\u0442\u044B).** \u041F\u043E\u043B\u0435 `SPRINT_ID` \u0437\u0430\u0434\u0430\u0447\u0438 \u0438 \u0436\u0451\u0441\u0442\u043A\u0438\u0439 `filter[SPRINT_ID]` \u043C\u043E\u0433\u0443\u0442 \u0440\u0430\u0441\u0445\u043E\u0434\u0438\u0442\u044C\u0441\u044F:\n> \u0437\u0430\u0434\u0430\u0447\u0430 \u0447\u0438\u0441\u043B\u0438\u0442\u0441\u044F \u0437\u0430 \u0441\u043F\u0440\u0438\u043D\u0442\u043E\u043C \u043F\u043E \u0441\u0432\u043E\u0435\u043C\u0443 \u043F\u043E\u043B\u044E, \u043D\u043E \u043D\u0435 \u043F\u043E\u043F\u0430\u0434\u0430\u0435\u0442 \u0432 \u0432\u044B\u0431\u043E\u0440\u043A\u0443 \u043F\u043E \u0444\u0438\u043B\u044C\u0442\u0440\u0443 (\u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0435\u043D\u0430 \u0432 \u0431\u044D\u043A\u043B\u043E\u0433\n> \u0438\u043B\u0438 \u0432 \u0438\u043D\u043E\u0439 stage). \u0415\u0441\u043B\u0438 \u043F\u043E \u0444\u0438\u043B\u044C\u0442\u0440\u0443 \xAB\u043C\u0430\u043B\u043E\u0432\u0430\u0442\u043E\xBB \u2014 \u043F\u0435\u0440\u0435\u043F\u0440\u043E\u0432\u0435\u0440\u044C \u0431\u0435\u0437 \u043D\u0435\u0433\u043E \u0438 \u043E\u0442\u0444\u0438\u043B\u044C\u0442\u0440\u0443\u0439 \u043F\u043E\n> `SPRINT_ID`/`STAGE_ID` \u0443 \u0441\u0435\u0431\u044F. `STAGE_ID` \u2192 \u0438\u043C\u044F \u043A\u043E\u043B\u043E\u043D\u043A\u0438 \u2014 `bitrix_sprint_columns { groupId }` (\xA73).\n\n**\u0413\u0440\u0443\u043F\u043F\u0430/\u043F\u0440\u043E\u0435\u043A\u0442 \u2014 \u0441\u043F\u0438\u0441\u043E\u043A** (`workgroup.list`): `ID`, `NAME`, `DESCRIPTION`, `NUMBER_OF_MEMBERS`,\n`OWNER_ID`, `DATE_CREATE`, `PROJECT` (Y=\u043F\u0440\u043E\u0435\u043A\u0442/N=\u0433\u0440\u0443\u043F\u043F\u0430), `TYPE`; **\u0431\u0435\u0437 `select` \u0432\u0435\u0440\u043D\u0451\u0442\u0441\u044F \u0442\u043E\u043B\u044C\u043A\u043E `ID`**.\n\u{1F4D6} \u0444\u0438\u043B\u044C\u0442\u0440\u0443\u0435\u043C\u044B\u0435: `ID`, `NAME`, `OWNER_ID`, `ACTIVE`, `VISIBLE`, `OPENED`, `CLOSED`, `PROJECT`,\n`SUBJECT_ID`, `SITE_ID`, `DATE_CREATE`, `DATE_UPDATE`, `DATE_ACTIVITY`; \u043E\u043F\u0435\u0440\u0430\u0442\u043E\u0440\u044B \u0444\u0438\u043B\u044C\u0442\u0440\u0430\n`>= > <= < % =% %= !% != !`.\n**\u0413\u0440\u0443\u043F\u043F\u0430 \u2014 \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430** (`workgroup.get`): \u043F\u043B\u044E\u0441 `OWNER_DATA`, `SUBJECT_DATA`, `MEMBERS[]`,\n`MODERATOR_MEMBERS[]`, **`CHAT_ID`**, `DIALOG_ID`, `IMAGE_ID`, UF-\u043F\u043E\u043B\u044F.\n\n**\u041D\u0435\u0434\u0430\u0432\u043D\u0438\u0439 \u0447\u0430\u0442** (`im.recent.list`): `id` (\u044D\u0442\u043E dialogId: \u0447\u0438\u0441\u043B\u043E = \u044E\u0437\u0435\u0440, `"chat"+N` = \u0447\u0430\u0442), `chat_id`,\n`type` (`user`/`chat`), `title`, `message{id,text,file,author_id,date,status}`, `counter` (\u043D\u0435\u043F\u0440\u043E\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u0445),\n`unread`, `last_id`, `pinned`, `date_update`, `date_last_activity`, `user{\u2026}`,\n`chat{\u2026 entity_type, entity_id, owner, \u2026}`; \u0435\u0441\u0442\u044C \u043B\u0438 \u0435\u0449\u0451 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B \u2014 `hasMore`/`hasMorePages` \u{1F4D6}.\n**\u041D\u0435\u0434\u0430\u0432\u043D\u0438\u0435 \u043F\u043E \u0441\u0435\u043A\u0446\u0438\u0438** (`im.v2.Recent.load`): `filter[recentSection]` \u2014 `default` (\u043E\u0431\u044B\u0447\u043D\u044B\u0435 \u0434\u0438\u0430\u043B\u043E\u0433\u0438),\n**`tasksTask` (\u0447\u0430\u0442\u044B \u0437\u0430\u0434\u0430\u0447)**, `collab`/`collabDefault`. \u0412\u0433\u043B\u0443\u0431\u044C \u2014 `im.v2.Recent.tail` \u0441 \u043A\u0443\u0440\u0441\u043E\u0440\u043E\u043C\n`filter[lastMessageDate]` (ISO-\u0434\u0430\u0442\u0430 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0433\u043E \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B).\n\n**\u041A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u044E\u0437\u0435\u0440\u0430** (`im.user.get`): `id`, `name`, `first_name`, `last_name`, `avatar`, `work_position`,\n`gender`, `status`, `online` \u2014 \u0440\u0435\u0437\u043E\u043B\u0432 \u0430\u0432\u0442\u043E\u0440\u0430 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F (`authorId`) \u0432 \u0438\u043C\u044F.\n\n**\u0421\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435** (`im.v2.Chat.Message.*`): `id`, `chatId`, `authorId`, `date`, `text`, `params`, `viewed`;\n\u043E\u0442\u0432\u0435\u0442 \u0442\u0430\u043A\u0436\u0435 \u043D\u0435\u0441\u0451\u0442 `users[]` (\u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438), `additionalMessages[]`, `hasPrevPage`/`hasNextPage`.\n\n---\n\n## 5. \u0421\u0446\u0435\u043D\u0430\u0440\u0438\u0438\n\n```jsonc\n// \u043E\u0442\u043A\u0440\u044B\u0442\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u0433\u043E 55, \u043F\u043E \u0434\u0435\u0434\u043B\u0430\u0439\u043D\u0443, \u0432\u0442\u043E\u0440\u0430\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430\nbitrix_tasks_list { "params": { "filter": {"RESPONSIBLE_ID":55,"REAL_STATUS":2},\n "order": {"DEADLINE":"asc"}, "PAGEN_1": 2 } }\n\n// \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0437\u0430\u0434\u0430\u0447\u0438 \u0441 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u043D\u044B\u043C \u043D\u0430\u0431\u043E\u0440\u043E\u043C \u043F\u043E\u043B\u0435\u0439; v2-\u043F\u043E\u0434\u0441\u0438\u0441\u0442\u0435\u043C\u0430; \u0444\u0430\u0439\u043B\u044B, \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u044B, \u0441\u0432\u044F\u0437\u0438\nbitrix_task_get { "taskId": 4229, "params": { "select": ["ID","TITLE","DESCRIPTION","TAGS"] } }\nbitrix_task_get_v2 { "taskId": 4229 } // \u2192 { "task": { "id": 4229 } }\nbitrix_task_get { "taskId": 4229, "params": { "select": ["ID","UF_TASK_WEBDAV_FILES"] } }\nbitrix_task_files { "ids": [<id \u0438\u0437 UF_TASK_WEBDAV_FILES>] } // \u041D\u0415 id \u0437\u0430\u0434\u0430\u0447\u0438\nbitrix_task_subtasks { "taskId": 4229 }\nbitrix_task_related { "taskId": 4229 }\n\n// \u043F\u0440\u043E\u0435\u043A\u0442\u044B \u043F\u043E \u0434\u0430\u0442\u0435 \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u044F; \u043F\u043E\u043B\u043D\u0430\u044F \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0433\u0440\u0443\u043F\u043F\u044B (\u043E\u0442\u0434\u0430\u0451\u0442 CHAT_ID / DIALOG_ID)\nbitrix_projects_list { "params": { "order": {"DATE_CREATE":"desc"} } }\nbitrix_project_get { "groupId": 15 }\n```\n\n### 5.1. \u041C\u0435\u0441\u0441\u0435\u043D\u0434\u0436\u0435\u0440 (IM): \u043A\u0430\u043A \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C `chatId`\n\n\u0412\u0441\u0451 \u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u2014 **\u0447\u0430\u0442\u044B**: \u043B\u0438\u0447\u043D\u044B\u0435 1-\u043D\u0430-1, \u0433\u0440\u0443\u043F\u043F\u043E\u0432\u044B\u0435 (\u043F\u0440\u043E\u0435\u043A\u0442\u043E\u0432, \u043A\u0430\u043D\u0430\u043B\u043E\u0432) \u0438 **\u0447\u0430\u0442\u044B-\u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u044F \u0437\u0430\u0434\u0430\u0447**.\n\u0427\u0438\u0441\u043B\u043E\u0432\u043E\u0439 **`chatId`** \u2014 \u043A\u043B\u044E\u0447 \u043A\u043E \u0432\u0441\u0435\u043C \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F\u043C \u0441 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F\u043C\u0438 (`bitrix_chat_messages`,\n`bitrix_chat_history`, `bitrix_chat_mark_read`); \u043F\u043E\u0447\u0442\u0438 \u043B\u044E\u0431\u0430\u044F \u043E\u0448\u0438\u0431\u043A\u0430 \u0430\u0433\u0435\u043D\u0442\u0430 \u0437\u0434\u0435\u0441\u044C \u2014 \u043D\u0430 \u0448\u0430\u0433\u0435 \u0435\u0433\u043E \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u044F.\n\n**\u0422\u0440\u0438 \u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u0430 \u043E\u0434\u043D\u043E\u0433\u043E \u0447\u0430\u0442\u0430** (\u0433\u043E\u0434\u044F\u0442\u0441\u044F \u0434\u043B\u044F \u0440\u0430\u0437\u043D\u044B\u0445 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0439):\n\n| \u0418\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 | \u0427\u0442\u043E \u044D\u0442\u043E | \u041F\u0440\u0438\u043C\u0435\u0440 | \u041A\u0443\u0434\u0430 \u043F\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044C |\n|---|---|---|---|\n| `chatId` | \u0447\u0438\u0441\u043B\u043E\u0432\u043E\u0439 id \u0447\u0430\u0442\u0430 | `485` | \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F / \u0438\u0441\u0442\u043E\u0440\u0438\u044F / \u043E\u0442\u043C\u0435\u0442\u043A\u0430 \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u043C |\n| `dialogId` | \u0430\u0434\u0440\u0435\u0441 \u0434\u043B\u044F \u041E\u0422\u041A\u0420\u042B\u0422\u0418\u042F: `userId` (\u043B\u0438\u0447\u043D\u044B\u0439 1-\u043D\u0430-1) **\u0438\u043B\u0438** `"chat"+chatId` (\u0433\u0440\u0443\u043F\u043F\u043E\u0432\u043E\u0439) | `11`, `"chat485"` | `bitrix_chat_load` |\n| `externalId` | \u0432\u043D\u0435\u0448\u043D\u0438\u0439 \u043A\u043B\u044E\u0447 \u0441\u0443\u0449\u043D\u043E\u0441\u0442\u0438 \u2192 \u0440\u0435\u0437\u043E\u043B\u0432\u0438\u0442\u0441\u044F \u0432 `dialogId` | `"sg15"` (\u0441\u043E\u0446\u0433\u0440\u0443\u043F\u043F\u0430 15) | `bitrix_chat_get_dialog_id` |\n\n\u041A\u043B\u044E\u0447\u0435\u0432\u043E\u0435: **\u043B\u0438\u0447\u043D\u044B\u0439 \u0447\u0430\u0442 \u0441 \u0447\u0435\u043B\u043E\u0432\u0435\u043A\u043E\u043C = \u0435\u0433\u043E `userId` \u0432 \u0440\u043E\u043B\u0438 `dialogId`** (\u043E\u0442\u0434\u0435\u043B\u044C\u043D\u043E\u0433\u043E \xABid \u0447\u0430\u0442\u0430\xBB \u0443 1-\u043D\u0430-1\n\u0437\u043D\u0430\u0442\u044C \u043D\u0435 \u043D\u0443\u0436\u043D\u043E). `bitrix_chat_load` \u043F\u0440\u0438\u043D\u0438\u043C\u0430\u0435\u0442 `dialogId` **\u0438\u043B\u0438** `chatId` \u0438 \u0432\u0441\u0435\u0433\u0434\u0430 **\u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\n\u0447\u0438\u0441\u043B\u043E\u0432\u043E\u0439 `chatId`** \u2014 \u0434\u0430\u043B\u044C\u0448\u0435 \u043E\u043F\u0435\u0440\u0438\u0440\u0443\u0435\u0448\u044C \u0438\u043C.\n\n**\u041A\u0430\u043A \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C `chatId` \u2014 \u043F\u043E \u0446\u0435\u043B\u0438:**\n\n| \u0425\u043E\u0447\u0443 \u043E\u0442\u043A\u0440\u044B\u0442\u044C \u0447\u0430\u0442\u2026 | \u0428\u0430\u0433\u0438 |\n|---|---|\n| **\u0441 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u043C \u043F\u043E \u0418\u041C\u0415\u041D\u0418** | `bitrix_entity_search { query:"\u0434\u043C\u0438\u0442\u0440\u0438\u0439" }` \u2192 \u0434\u0438\u0430\u043B\u043E\u0433 \u0441 `dialogId` = \u0435\u0433\u043E userId \u2192 `bitrix_chat_load { dialogId }` |\n| **\u0441 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u043C, id \u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043D** | `bitrix_chat_load { dialogId: <userId> }` (userId \u2014 \u0438\u0437 \u0437\u0430\u0434\u0430\u0447\u0438 `RESPONSIBLE_ID`/`CREATED_BY`, \u0438\u0437 `bitrix_chats_recent`, \u0438\u0437 `bitrix_user_get`) |\n| **\u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435 \u0417\u0410\u0414\u0410\u0427\u0418** | `bitrix_task_get` \u2192 `CHAT_ID` (\xA75.2) |\n| **\u041F\u0420\u041E\u0415\u041A\u0422\u0410/\u0433\u0440\u0443\u043F\u043F\u044B** | `bitrix_task_get`\u2192`GROUP_ID`\u2192`bitrix_project_get`\u2192`CHAT_ID`; \u043B\u0438\u0431\u043E `bitrix_chat_get_dialog_id { externalId:"sg<groupId>" }` |\n| **\u043D\u0435 \u0437\u043D\u0430\u044E \u0442\u043E\u0447\u043D\u043E, \u043A\u0430\u043A\u043E\u0439** | `bitrix_chats_recent` (\u043D\u0435\u0434\u0430\u0432\u043D\u0438\u0435, \u0441\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u044C \u043F\u043E `title`/`user`) \u0438\u043B\u0438 `bitrix_entity_search { query }` |\n\n> \u041F\u043E\u0447\u0435\u043C\u0443 \u043D\u0435 \xAB\u043F\u0440\u043E\u0441\u0442\u043E \u0441\u043F\u0438\u0441\u043E\u043A \u0447\u0430\u0442\u043E\u0432\xBB: `bitrix_chats_recent` (`im.recent.list`) \u043E\u0442\u0434\u0430\u0451\u0442 \u043B\u0438\u0448\u044C \u043D\u0435\u0434\u0430\u0432\u043D\u0438\u0435 \u0438\n> **\u0431\u0435\u0437 \u0447\u0430\u0442\u043E\u0432 \u0437\u0430\u0434\u0430\u0447**. \u0414\u043B\u044F \u043F\u043E\u0438\u0441\u043A\u0430 \u043A\u043E\u043D\u043A\u0440\u0435\u0442\u043D\u043E\u0433\u043E \u0447\u0430\u0442\u0430 \u2014 `bitrix_entity_search`; \u0434\u043B\u044F \u0447\u0430\u0442\u043E\u0432 \u0437\u0430\u0434\u0430\u0447 \u2014\n> `bitrix_recent_load { section:"tasksTask" }`.\n\n**\u0427\u0438\u0442\u0430\u0442\u044C \u0438\u0441\u0442\u043E\u0440\u0438\u044E.** `bitrix_chat_messages` \u043E\u0442\u0434\u0430\u0451\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u044E\u044E \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443; \u0432\u0433\u043B\u0443\u0431\u044C \u043B\u0438\u0441\u0442\u0430\u0435\u0442\n`bitrix_chat_history` \u043F\u043E \u043A\u0443\u0440\u0441\u043E\u0440\u0443 `beforeId` = \u043C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u044B\u0439 id \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u0442\u0435\u043A\u0443\u0449\u0435\u0439 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B (\u043F\u043E\u0432\u0442\u043E\u0440\u044F\u0439,\n\u0443\u043C\u0435\u043D\u044C\u0448\u0430\u044F `beforeId`, \u0434\u043E \u043D\u0430\u0447\u0430\u043B\u0430 \u0438\u0441\u0442\u043E\u0440\u0438\u0438).\n\n```jsonc\nbitrix_chat_load { "dialogId": 11 } // \u043B\u0438\u0447\u043D\u044B\u0439 \u0447\u0430\u0442 \u044E\u0437\u0435\u0440\u0430 11 \u2192 \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 chatId\nbitrix_chat_history { "chatId": 485, "beforeId": 1861279 }\nbitrix_chat_mark_read { "chatId": 40271, "ids": [1884131] } // \u26A0 \u043C\u0443\u0442\u0438\u0440\u0443\u044E\u0449\u0438\u0439; actionUuid \u2014 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u043E\u043C\n```\n\n\u{1F4D6} \u041F\u0443\u0431\u043B\u0438\u0447\u043D\u044B\u0435 \u0430\u043D\u0430\u043B\u043E\u0433\u0438 \u0447\u0442\u0435\u043D\u0438\u044F \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0439: `im.dialog.messages.get` (\u0434\u0435\u0444\u043E\u043B\u0442 20, \u043C\u0430\u043A\u0441 50; \u043B\u0438\u0441\u0442\u0430\u043D\u0438\u0435\n`LAST_ID` \u2014 \u0441\u0442\u0430\u0440\u0435\u0435, `FIRST_ID` \u2014 \u043D\u043E\u0432\u0435\u0435); `imbot.v2 chat.getMessageContext` \u2014 \u043E\u0442\u0432\u0435\u0442 `messages[]`\n(oldest\u2192newest) + `users[]` + `hasPrevPage`/`hasNextPage`, \u043F\u043E \u0444\u043E\u0440\u043C\u0435 **\u0441\u043E\u0432\u043F\u0430\u0434\u0430\u0435\u0442** \u0441 \u0432\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u0438\u043C\u0438\n`im.v2.Chat.Message.*`.\n\n### 5.2. \u041E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435 (\u0447\u0430\u0442) \u043A\u043E\u043D\u043A\u0440\u0435\u0442\u043D\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438\n\n**\u0410. \u041F\u0440\u044F\u043C\u043E\u0439 \u0440\u0435\u0437\u043E\u043B\u0432 \u2014 \u043F\u0440\u0435\u0434\u043F\u043E\u0447\u0442\u0438\u0442\u0435\u043B\u044C\u043D\u043E.** `bitrix_task_get` \u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 `CHAT_ID` \u0447\u0430\u0442\u0430-\u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u044F (\u0432\u0445\u043E\u0434\u0438\u0442\n\u0432 \u0434\u0435\u0444\u043E\u043B\u0442\u043D\u044B\u0439 `select` \u{1F4D6}) \u2014 \u044D\u0442\u043E `taskId \u2192 chatId` \u0431\u0435\u0437 \u043F\u043E\u0438\u0441\u043A\u0430 \u043F\u043E \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044E \u0438 \u0431\u0435\u0437 \u043F\u0440\u043E\u043C\u0430\u0445\u0430 \u043F\u043E \u0442\u0451\u0437\u043A\u0430\u043C:\n\n```jsonc\nbitrix_task_get { "taskId": 28373 } // \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 CHAT_ID\nbitrix_chat_load { "chatId": <CHAT_ID> }\nbitrix_chat_history { "chatId": <CHAT_ID>, "beforeId": <\u043C\u0438\u043D id \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B> }\n```\n\n\u041E\u0431\u0449\u0430\u044F \u0430\u043B\u044C\u0442\u0435\u0440\u043D\u0430\u0442\u0438\u0432\u0430 \u2014 **`bitrix_entity_chat`** (\u043E\u0431\u0451\u0440\u0442\u043A\u0430 \u043D\u0430\u0434 `im.chat.get`): chatId \u043B\u044E\u0431\u043E\u0433\u043E \u0441\u0432\u044F\u0437\u0430\u043D\u043D\u043E\u0433\u043E\n\u043E\u0431\u044A\u0435\u043A\u0442\u0430 \u043F\u043E \u043F\u0430\u0440\u0435 `entityType`/`entityId`; \u043A\u0440\u043E\u043C\u0435 `TASKS_TASK` \u0442\u0430\u043A \u0436\u0435 \u0430\u0434\u0440\u0435\u0441\u0443\u044E\u0442\u0441\u044F `SONET_GROUP`\n(\u0433\u0440\u0443\u043F\u043F\u0430/\u043F\u0440\u043E\u0435\u043A\u0442), `CRM`, `CALENDAR`, `MAIL`, `VIDEOCONF`, `CALL`:\n\n```jsonc\nbitrix_entity_chat { "entityType": "TASKS_TASK", "entityId": 28373 } // \u2192 chatId\n```\n\n**\u0411. \u0427\u0435\u0440\u0435\u0437 \u0441\u043F\u0438\u0441\u043E\u043A \u0447\u0430\u0442\u043E\u0432 \u0437\u0430\u0434\u0430\u0447** (\u0441\u0435\u043A\u0446\u0438\u044F `tasksTask`; \u0432 `bitrix_chats_recent` \u0438\u0445 \u041D\u0415\u0422):\n\n```jsonc\nbitrix_recent_load { "section": "tasksTask" } // \u2192 \u0447\u0430\u0442\u044B \u0437\u0430\u0434\u0430\u0447 \u0441 chatId/dialogId\nbitrix_recent_tail { "section": "tasksTask", "lastMessageDate": "2026-06-29T17:25:38+03:00" }\nbitrix_chat_load { "dialogId": "chat38849" } // \u0438\u043B\u0438 { "chatId": 38849 }\n```\n\n**\u0427\u0430\u0442 \u043F\u0443\u0441\u0442, \u0430 `COMMENTS_COUNT > 0`** \u2014 \u0437\u0430\u0434\u0430\u0447\u0430 \u0441\u0442\u0430\u0440\u0448\u0435 \u0447\u0430\u0442\u043E\u0432 \u0437\u0430\u0434\u0430\u0447: \u0432 \u0447\u0430\u0442\u0435 \u0442\u043E\u043B\u044C\u043A\u043E \u0441\u0438\u0441\u0442\u0435\u043C\u043D\u043E\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435\n\xAB\u0427\u0442\u043E\u0431\u044B \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044C \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0438, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0440\u0430\u043D\u0435\u0435 \u043E\u0441\u0442\u0430\u0432\u0438\u043B\u0438 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u0437\u0430\u0434\u0430\u0447\u0438\u2026\xBB, \u0430 \u0441\u0430\u043C\u043E \u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435 \u043B\u0435\u0436\u0438\u0442 \u0432\n\u0444\u043E\u0440\u0443\u043C\u0435 \u2192 `bitrix_task_comments` (\xA75.6).\n\n**\u0412. \u041F\u043E\u0438\u0441\u043A\u043E\u043C \u043F\u043E \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044E \u0437\u0430\u0434\u0430\u0447\u0438** (\u0437\u0430\u043F\u0430\u0441\u043D\u043E\u0439, \u043C\u0430\u0442\u0447 \u043F\u043E \u0442\u0435\u043A\u0441\u0442\u0443):\n`bitrix_entity_search { "query": "\u0442\u0440\u0435\u043A\u0435\u0440", "section": "tasksTask" }`\n\n**\u0427\u0430\u0442 \u041F\u0420\u041E\u0415\u041A\u0422\u0410 \u0437\u0430\u0434\u0430\u0447\u0438** (\u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435 \u0433\u0440\u0443\u043F\u043F\u044B, \u043D\u0435 \u0441\u0430\u043C\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438) \u2014 \u0447\u0435\u0440\u0435\u0437 `GROUP_ID`:\n\n```jsonc\nbitrix_task_get { "taskId": 4229, "params": { "select": ["ID","GROUP_ID"] } }\nbitrix_project_get { "groupId": 15 } // \u043E\u0442\u0434\u0430\u0451\u0442 CHAT_ID / DIALOG_ID\nbitrix_chat_get_dialog_id { "externalId": "sg15" } // \u043B\u0438\u0431\u043E \u0440\u0435\u0437\u043E\u043B\u0432 dialogId \u0441\u043E\u0446\u0433\u0440\u0443\u043F\u043F\u044B \u043D\u0430\u043F\u0440\u044F\u043C\u0443\u044E\n```\n\n### 5.3. \u041F\u043E\u0438\u0441\u043A \u0447\u0430\u0442\u0430 / \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F\n\n`bitrix_entity_search` (\u043E\u0431\u0451\u0440\u0442\u043A\u0430 \u043D\u0430\u0434 \u0432\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u0438\u043C `ui.entityselector.doSearch`) \u0441\u0430\u043C \u0441\u043E\u0431\u0438\u0440\u0430\u0435\u0442 \u0434\u0438\u0430\u043B\u043E\u0433\n`IM_CHAT_SEARCH` \u0438 `searchQuery` \u0438\u0437 \u0441\u0442\u0440\u043E\u043A\u0438. \u041F\u0443\u0431\u043B\u0438\u0447\u043D\u044B\u0435 \u0430\u043D\u0430\u043B\u043E\u0433\u0438: \u043B\u044E\u0434\u0438 \u2014 `user.get`/`user.search`, \u0447\u0430\u0442\u044B \u2014\n`im.recent.list` + \u0444\u0438\u043B\u044C\u0442\u0440\u0430\u0446\u0438\u044F \u0443 \u0441\u0435\u0431\u044F.\n\n```jsonc\nbitrix_entity_search { "query": "\u0434\u043C\u0438\u0442\u0440\u0438\u0439" } // \u0441\u0440\u0435\u0434\u0438 \u0432\u0441\u0435\u0445 \u0447\u0430\u0442\u043E\u0432/\u0434\u0438\u0430\u043B\u043E\u0433\u043E\u0432\nbitrix_entity_search { "query": "\u0442\u0440\u0435\u043A\u0435\u0440", "section": "tasksTask" } // \u0441\u0440\u0435\u0434\u0438 \u0447\u0430\u0442\u043E\u0432 \u0437\u0430\u0434\u0430\u0447\nbitrix_user_get { "userId": 11 } // \u0440\u0435\u0437\u043E\u043B\u0432 authorId \u2192 \u0438\u043C\u044F\n```\n\n### 5.4. \u0421\u043E\u0437\u0432\u043E\u043D: \u0440\u0435\u0437\u044E\u043C\u0435, \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0430, \u0437\u0430\u043F\u0438\u0441\u044C\n\nAI-\u0430\u043D\u0430\u043B\u0438\u0437 \u0437\u0432\u043E\u043D\u043A\u0430 (BitrixGPT Follow-Up) \u0436\u0438\u0432\u0451\u0442 \u043D\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u043D\u043E \u043E\u0442\u0440\u0435\u043D\u0434\u0435\u0440\u0435\u043D\u043D\u043E\u0439 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0435 `/call/detail/<callId>`\n\u2014 JSON-\u044D\u043D\u0434\u043F\u043E\u0438\u043D\u0442\u0430 \u043F\u043E\u0434 \u043D\u0435\u0439 \u043D\u0435\u0442, \u043F\u0443\u0431\u043B\u0438\u0447\u043D\u043E\u0433\u043E REST \u0434\u043B\u044F \u0432\u0438\u0434\u0435\u043E\u0432\u0441\u0442\u0440\u0435\u0447 \u0442\u043E\u0436\u0435 (\u{1F4D6} \u0442\u043E\u043B\u044C\u043A\u043E \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0438\u044F `voximplant.*`\n\u0438 `crm.activity.call.getTranscript`). \u041C\u043E\u0441\u0442 \u0447\u0438\u0442\u0430\u0435\u0442 \u044D\u0442\u0443 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443 \u0438 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u0442 \u0435\u0451 \u0432 \u043D\u043E\u0440\u043C\u0430\u043B\u0438\u0437\u043E\u0432\u0430\u043D\u043D\u044B\u0439 JSON.\n\n**1) \u041D\u0430\u0439\u0442\u0438 \u0437\u0432\u043E\u043D\u043A\u0438.** \u0421\u0435\u0440\u0432\u0435\u0440\u043D\u043E\u0433\u043E \u043F\u043E\u0438\u0441\u043A\u0430 \u0437\u0432\u043E\u043D\u043A\u043E\u0432 \u043F\u043E \u043F\u043E\u0440\u0442\u0430\u043B\u0443 \u043D\u0435\u0442 \u2014 \u0438\u0449\u0435\u043C \u0432 \u043A\u043E\u043D\u043A\u0440\u0435\u0442\u043D\u043E\u043C \u0447\u0430\u0442\u0435: \u0437\u0432\u043E\u043D\u043E\u043A\n\u043E\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u0442 \u0441\u0438\u0441\u0442\u0435\u043C\u043D\u043E\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u0441 `params.COMPONENT_PARAMS = { messageType: "START", callId }`.\n\n```jsonc\nbitrix_chat_calls { "chatId": 9876 } // \u0447\u0430\u0442 \u043F\u0440\u043E\u0435\u043A\u0442\u0430: bitrix_project_get \u2192 CHAT_ID\nbitrix_chat_calls { "chatId": 9876, "maxPages": 10, "beforeId": 5001 } // \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C \u0432\u0433\u043B\u0443\u0431\u044C (maxPages \u2264 10)\n```\n\n\u041E\u0442\u0432\u0435\u0442: `calls[] { callId, startedAt, startedBy, startMessageId, events[], summaryMessageId }` \u043F\u043B\u044E\u0441\n`scannedPages` / `oldestScannedMessageId` / **`reachedHistoryStart`** \u2014 \u0435\u0441\u043B\u0438 \u043E\u043D `false`, \u0438\u0441\u0442\u043E\u0440\u0438\u044F\n\u0434\u043E\u0447\u0438\u0442\u0430\u043D\u0430 \u041D\u0415 \u0434\u043E \u043A\u043E\u043D\u0446\u0430, \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0430\u0439 \u0441 `beforeId: <oldestScannedMessageId>`.\n\n**2) \u0412\u0437\u044F\u0442\u044C \u0432\u0441\u0451 \u043F\u043E \u0437\u0432\u043E\u043D\u043A\u0443.**\n\n```jsonc\nbitrix_call_detail { "callId": 4242 } // \u0432\u0441\u0451; \u0434\u043B\u0438\u043D\u043D\u0430\u044F \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0430 \u0443\u0435\u0434\u0435\u0442 \u0432 \u0444\u0430\u0439\u043B\nbitrix_call_detail { "callId": 4242, "transcript": "inline" } // \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0430 \u043F\u0440\u044F\u043C\u043E \u0432 \u043E\u0442\u0432\u0435\u0442\u0435\nbitrix_call_detail { "callId": 4242, "transcript": "none" } // \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0430 \u043D\u0435 \u043D\u0443\u0436\u043D\u0430 \u0432\u043E\u0432\u0441\u0435\nbitrix_call_detail { "callId": 4242, "transcript": "file" } // \u0432\u0441\u0435\u0433\u0434\u0430 \u0432 \u0444\u0430\u0439\u043B, \u0434\u0430\u0436\u0435 \u043A\u043E\u0440\u043E\u0442\u043A\u0430\u044F\n```\n\n| \u041F\u043E\u043B\u0435 \u043E\u0442\u0432\u0435\u0442\u0430 | \u0427\u0442\u043E \u0432\u043D\u0443\u0442\u0440\u0438 |\n|---|---|\n| `title`, `agenda`, `meetingType` | \u0442\u0435\u043C\u0430, \u0432\u0441\u0442\u0443\u043F\u043B\u0435\u043D\u0438\u0435, \u0442\u0438\u043F \u0432\u0441\u0442\u0440\u0435\u0447\u0438 (\xAB\u0421\u0442\u0430\u0442\u0443\u0441-\u0432\u0441\u0442\u0440\u0435\u0447\u0430\xBB) |\n| `date`, `interval`, `duration` | \xAB23 \u0438\u044E\u043B\u044F, 15:46\xBB, \xAB15:46 - 16:51\xBB, \xAB1 \u0447 4 \u043C\u0438\u043D\xBB |\n| `efficiency`, `qualityChecklist[]` | \u043E\u0446\u0435\u043D\u043A\u0430 \u0432\u0441\u0442\u0440\u0435\u0447\u0438 \u0432 % \u0438 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 `{ ok, text }` |\n| `participants[]` | `{ id, name, talkTimePercent, talkTime, efficiency, metrics[], insight }` |\n| `overview`, `chapters[]` | \u043E\u0431\u0449\u0435\u0435 \u0440\u0435\u0437\u044E\u043C\u0435 \u0438 \u0433\u043B\u0430\u0432\u044B `{ from, to, title, text }` \u0441 \u0442\u0430\u0439\u043C\u043A\u043E\u0434\u0430\u043C\u0438 |\n| `decisions[]`, `tasks[]` | \xAB\u0447\u0442\u043E \u0440\u0435\u0448\u0438\u043B\u0438\xBB \u0438 \u0437\u0430\u0434\u0430\u0447\u0438 `{ assigneeId, assignee, text }` |\n| `transcript[]`, `transcriptCount` | \u0440\u0435\u043F\u043B\u0438\u043A\u0438 `{ from, to, speakerId, speaker, text }` |\n| `recording` | `{ path, url, trackId }` \u2014 \u0430\u0443\u0434\u0438\u043E\u0437\u0430\u043F\u0438\u0441\u044C, \u043A\u0430\u0447\u0430\u0435\u0442\u0441\u044F `bitrix_call_recording` (\xA75.5) |\n\n**\u0420\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0430 \u0434\u043B\u0438\u043D\u043D\u043E\u0433\u043E \u0437\u0432\u043E\u043D\u043A\u0430 \u043D\u0435 \u043F\u0440\u0438\u0445\u043E\u0434\u0438\u0442 \u0432 \u043E\u0442\u0432\u0435\u0442\u0435.** \u0423 \u0447\u0430\u0441\u043E\u0432\u043E\u0439 \u0432\u0441\u0442\u0440\u0435\u0447\u0438 \u043E\u043D\u0430 \u0434\u0430\u0451\u0442 ~70 \u041A\u0411 \u0438\u0437 80 \u041A\u0411, \u043F\u043E\u044D\u0442\u043E\u043C\u0443\n\u0441\u0432\u044B\u0448\u0435 ~20 \u041A\u0411 (\u0440\u0435\u0436\u0438\u043C `"auto"` = \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u0435) \u043F\u0438\u0448\u0435\u0442\u0441\u044F \u043D\u0430 \u0434\u0438\u0441\u043A, \u0430 \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 \u043E\u0441\u0442\u0430\u044E\u0442\u0441\u044F `transcript: []`,\n`transcriptCount` \u0438 **`files`**: `files.transcript` \u2014 `call-<id>-transcript.txt`, \u0433\u0434\u0435 \u0441\u0442\u0440\u043E\u043A\u0430 = \u0440\u0435\u043F\u043B\u0438\u043A\u0430\n(`[11:10\u201411:24] \u0418\u043C\u044F \u0424\u0430\u043C\u0438\u043B\u0438\u044F: \u2026`), \u0435\u0451 \u0443\u0434\u043E\u0431\u043D\u043E **\u0433\u0440\u0435\u043F\u0430\u0442\u044C** (\u043D\u0430\u0439\u0434\u0435\u043D\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430 \u0441\u0430\u043C\u0430 \u043D\u0435\u0441\u0451\u0442 \u0442\u0430\u0439\u043C\u043A\u043E\u0434 \u0438\n\u0441\u043F\u0438\u043A\u0435\u0440\u0430); `files.json` \u2014 \u043F\u043E\u043B\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442 \u0441 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u043E\u0439. \u041E\u0431\u0430 \u0444\u0430\u0439\u043B\u0430 \u2014 \u043A\u0435\u0448 \u0437\u0432\u043E\u043D\u043A\u0430, \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0438\u0441\u044B\u0432\u0430\u044E\u0442\u0441\u044F.\n\n\u0422\u043E\u043D\u043A\u043E\u0441\u0442\u0438:\n- **`speakerId`** \u0440\u0435\u0437\u043E\u043B\u0432\u0438\u0442\u0441\u044F \u043F\u043E \u0438\u043C\u0435\u043D\u0438 \u0438\u0437 \u0442\u0430\u0431\u043B\u0438\u0446\u044B \u0430\u043D\u0430\u043B\u0438\u0437\u0430; \u043A\u0442\u043E \u0433\u043E\u0432\u043E\u0440\u0438\u043B \u043C\u0430\u043B\u043E \u0438 \u0432 \u043D\u0435\u0451 \u043D\u0435 \u043F\u043E\u043F\u0430\u043B \u2014 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\n `speakerId: null`, \u043D\u043E \u043E\u0441\u0442\u0430\u043D\u0435\u0442\u0441\u044F \u0432 `participants` \u0441 `id: null`.\n- **`assigneeId` \u0437\u0430\u0434\u0430\u0447\u0438** \u2014 \u0443\u043F\u043E\u043C\u044F\u043D\u0443\u0442\u044B\u0439 \u0432 \u0442\u0435\u043A\u0441\u0442\u0435 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C, \u0430 \u041D\u0415 id \u0441\u043C\u043E\u0442\u0440\u044F\u0449\u0435\u0433\u043E.\n- \u041D\u0435\u0442 \u0434\u043E\u0441\u0442\u0443\u043F\u0430 \u043A \u0437\u0432\u043E\u043D\u043A\u0443 / \u043F\u0440\u043E\u0442\u0443\u0445\u043B\u0430 \u0441\u0435\u0441\u0441\u0438\u044F \u2192 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442 \u0432\u0435\u0440\u043D\u0451\u0442 \u0432\u043D\u044F\u0442\u043D\u0443\u044E \u043E\u0448\u0438\u0431\u043A\u0443 (\u043F\u043E\u0440\u0442\u0430\u043B \u043E\u0442\u0434\u0430\u0451\u0442 HTML \u043B\u043E\u0433\u0438\u043D\u0430).\n\n### 5.5. \u0421\u043A\u0430\u0447\u0430\u0442\u044C \u0444\u0430\u0439\u043B (\u0432\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0447\u0430\u0442\u0430, \u0444\u0430\u0439\u043B \u0437\u0430\u0434\u0430\u0447\u0438, \u0437\u0430\u043F\u0438\u0441\u044C \u0437\u0432\u043E\u043D\u043A\u0430)\n\n\u0421\u0441\u044B\u043B\u043A\u0438 \u043F\u043E\u0440\u0442\u0430\u043B \u043C\u0438\u043D\u0442\u0438\u0442 \u0438 \u043F\u043E\u0434\u043F\u0438\u0441\u044B\u0432\u0430\u0435\u0442 \u0441\u0430\u043C, \u043D\u043E \u043F\u043E\u0434\u043F\u0438\u0441\u044C \u041D\u0415 \u0437\u0430\u043C\u0435\u043D\u044F\u0435\u0442 \u0430\u0432\u0442\u043E\u0440\u0438\u0437\u0430\u0446\u0438\u044E \u2014 \u043A\u0430\u0447\u0430\u0435\u0442 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u0435 \u0432\n\u0441\u0435\u0441\u0441\u0438\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F.\n\n```jsonc\n// \u0432\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0447\u0430\u0442\u0430: \u0441\u0441\u044B\u043B\u043A\u0443 \u0431\u0435\u0440\u0451\u043C \u0438\u0437 files[].urlDownload \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 bitrix_chat_load\nbitrix_file_download { "url": "https://<\u043F\u043E\u0440\u0442\u0430\u043B>/bitrix/services/main/ajax.php?action=disk.api.file.download&\u2026" }\nbitrix_call_recording { "callId": 4242 } // \u0430\u0443\u0434\u0438\u043E\u0437\u0430\u043F\u0438\u0441\u044C \u0441\u043E\u0437\u0432\u043E\u043D\u0430 (\u0441\u0441\u044B\u043B\u043A\u0443 \u043D\u0430\u0439\u0434\u0451\u0442 \u0441\u0430\u043C)\nbitrix_file_download { "url": "\u2026", "savePath": "/tmp/photo.png", "overwrite": true }\n```\n\n\u041E\u0442\u0432\u0435\u0442 \u2014 **\u043F\u0443\u0442\u044C, \u0430 \u043D\u0435 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0435**: `{ path, bytes, contentType, fileName }` (\u0433\u0438\u0433\u0430\u0431\u0430\u0439\u0442\u044B \u043D\u0435 \u043F\u043E\u043F\u0430\u0434\u0430\u044E\u0442 \u0432\n\u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442). \u041F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0444\u0430\u0439\u043B \u043B\u043E\u0436\u0438\u0442\u0441\u044F \u0432 `~/.bitrix24-mcp-bridge/downloads/`; `savePath` \u0431\u0435\u0437 \u0432\u0435\u0434\u0443\u0449\u0435\u0433\u043E `/`\n\u0442\u0440\u0430\u043A\u0442\u0443\u0435\u0442\u0441\u044F \u043A\u0430\u043A \u0438\u043C\u044F \u0432\u043D\u0443\u0442\u0440\u0438 \u044D\u0442\u043E\u0439 \u043F\u0430\u043F\u043A\u0438. \u041F\u043E\u0442\u043E\u043B\u043E\u043A \u2014 512 \u041C\u0411.\n\n\u041C\u043E\u0441\u0442 \u043D\u0438\u0447\u0435\u0433\u043E \u0438\u0437 `downloads/` \u043D\u0435 \u0443\u0434\u0430\u043B\u044F\u0435\u0442. \u041A\u043E\u0433\u0434\u0430 \u0444\u0430\u0439\u043B\u044B \u043F\u0430\u043F\u043A\u0438 \u0432 \u0441\u0443\u043C\u043C\u0435 \u0431\u043E\u043B\u044C\u0448\u0435 500 \u041C\u0411, \u043E\u0442\u0432\u0435\u0442\u044B \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0439,\n\u0437\u0430\u043F\u0438\u0441\u0430\u0432\u0448\u0438\u0445 \u0444\u0430\u0439\u043B \u0432 \u044D\u0442\u0443 \u043F\u0430\u043F\u043A\u0443 (`bitrix_file_download`, `bitrix_call_recording`, `bitrix_call_detail` \u0438\n`bitrix_task_comments` \u2014 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0435 \u0434\u0432\u0435, \u043A\u043E\u0433\u0434\u0430 \u0441\u043E\u0445\u0440\u0430\u043D\u0438\u043B\u0438 \u0444\u0430\u0439\u043B; \u0441 `savePath` \u0432\u043D\u0435 \u043F\u0430\u043F\u043A\u0438 \u2014 \u043D\u0435\u0442), \u0438\n`bitrix_status` \u043D\u0435\u0441\u0443\u0442 `warning` \xAB\u043F\u0430\u043F\u043A\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043E\u043A \u043C\u043E\u0441\u0442\u0430 \u2026 \u0437\u0430\u043D\u0438\u043C\u0430\u0435\u0442 N \u041C\u0411 \u2014\n\u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u043D\u0435\u043D\u0443\u0436\u043D\u044B\u0435 \u0444\u0430\u0439\u043B\u044B\u2026\xBB \u2014 \u043F\u0435\u0440\u0435\u0434\u0430\u0439 \u044D\u0442\u043E \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E.\n\n\u0422\u043E\u043D\u043A\u043E\u0441\u0442\u0438:\n- **\u0422\u043E\u043B\u044C\u043A\u043E \u0441\u0441\u044B\u043B\u043A\u0438 \u043D\u0430 \u0444\u0430\u0439\u043B\u044B** \u0441\u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0433\u043E \u043F\u043E\u0440\u0442\u0430\u043B\u0430: `/bitrix/services/main/ajax.php` \u0441 `action`\n `disk.api.file.download` / `disk.attachedObject.download` / `call.Track.download` \u0438\u043B\u0438\n `/bitrix/tools/disk/uf.php` \u0441 `action` `download` / `show` / `downloadArchiveByEntity`. \u0427\u0443\u0436\u043E\u0439 origin\n \u2192 `not a configured portal`; \u0434\u0440\u0443\u0433\u043E\u0439 \u043F\u0443\u0442\u044C, \u0434\u0440\u0443\u0433\u043E\u0439, \u043F\u043E\u0432\u0442\u043E\u0440\u0451\u043D\u043D\u044B\u0439 \u0438\u043B\u0438 `action[]` \u2192 `not a portal file\n link`. \u0411\u0435\u0440\u0438 \u0441\u0441\u044B\u043B\u043A\u0438 \u0438\u0437 \u043E\u0442\u0432\u0435\u0442\u043E\u0432 \u043C\u043E\u0441\u0442\u0430, \u043D\u0435 \u0441\u043E\u0431\u0438\u0440\u0430\u0439 \u0438\u0445 \u0441\u0430\u043C.\n- **\u0418\u043C\u044F \u0434\u0430\u0451\u0442 \u043F\u043E\u0440\u0442\u0430\u043B** (`Content-Disposition`), \u043F\u043E\u044D\u0442\u043E\u043C\u0443 \u0431\u0435\u0437 `savePath` \u0443\u0433\u0430\u0434\u044B\u0432\u0430\u0442\u044C \u0435\u0433\u043E \u043D\u0435 \u043D\u0443\u0436\u043D\u043E.\n- **\u041F\u043E\u0432\u0442\u043E\u0440\u043D\u043E\u0435 \u0441\u043A\u0430\u0447\u0438\u0432\u0430\u043D\u0438\u0435** \u0442\u043E\u0433\u043E \u0436\u0435 \u0444\u0430\u0439\u043B\u0430 \u043F\u0430\u0434\u0430\u0435\u0442 \u0441 `already exists` \u2014 \u043F\u0435\u0440\u0435\u0434\u0430\u0439 `overwrite: true`.\n\n### 5.6. \u0421\u0442\u0430\u0440\u044B\u0435 \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 (\u0444\u043E\u0440\u0443\u043C)\n\n\u0414\u043E \u043F\u0435\u0440\u0435\u0445\u043E\u0434\u0430 \u043D\u0430 \u0447\u0430\u0442\u044B \u0437\u0430\u0434\u0430\u0447 \u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435 \u0436\u0438\u043B\u043E \u0432 \u0444\u043E\u0440\u0443\u043C\u0435 \u0437\u0430\u0434\u0430\u0447\u0438, \u0438 \u0443 \u0441\u0442\u0430\u0440\u044B\u0445 \u0437\u0430\u0434\u0430\u0447 \u043E\u043D\u043E \u0442\u0430\u043C \u0438 \u043E\u0441\u0442\u0430\u043B\u043E\u0441\u044C: \u0432\n\u0447\u0430\u0442\u0435 (`CHAT_ID`) \u0442\u043E\u043B\u044C\u043A\u043E \u0441\u0438\u0441\u0442\u0435\u043C\u043D\u0430\u044F \u0437\u0430\u0433\u043B\u0443\u0448\u043A\u0430 \u0441\u043E \u0441\u0441\u044B\u043B\u043A\u043E\u0439 `/task/comments/<id>/`. \u041F\u0440\u0438\u0437\u043D\u0430\u043A \u2014 \u0432\n`bitrix_task_get` \u043F\u043E\u043B\u0435 `COMMENTS_COUNT > 0` (\u0447\u0435\u0440\u0435\u0437 `params.select`; `FORUM_TOPIC_ID` \u0442\u043E\u0436\u0435 \u0437\u0430\u043F\u043E\u043B\u043D\u0435\u043D),\n\u0430 \u0447\u0430\u0442 \u043F\u0443\u0441\u0442. JSON-\u043C\u0435\u0442\u043E\u0434\u0430 \u0447\u0442\u0435\u043D\u0438\u044F \u043D\u0435\u0442 \u2014 \u043C\u043E\u0441\u0442 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u0442 HTML-\u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443 \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0435\u0432.\n\n```jsonc\nbitrix_task_comments { "taskId": 1234 } // \u0432\u0441\u0451 \u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435; \u0434\u043B\u0438\u043D\u043D\u043E\u0435 \u0443\u0435\u0434\u0435\u0442 \u0432 \u0444\u0430\u0439\u043B\nbitrix_task_comments { "taskId": 1234, "limit": 10 } // \u0442\u043E\u043B\u044C\u043A\u043E 10 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0445\nbitrix_task_comments { "taskId": 1234, "output": "inline" } // \u0432\u0441\u0435\u0433\u0434\u0430 \u0432 \u043E\u0442\u0432\u0435\u0442\u0435\nbitrix_task_comments { "taskId": 1234, "beforeId": 5678 } // \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C \u0432\u0433\u043B\u0443\u0431\u044C \u043E\u0442 id\n```\n\n\u041E\u0442\u0432\u0435\u0442: `comments[]` \u043F\u043E \u043F\u043E\u0440\u044F\u0434\u043A\u0443 (\u0441\u0442\u0430\u0440\u044B\u0435 \u2192 \u043D\u043E\u0432\u044B\u0435) \u2014 `{ id, authorId, author, date, dateIso, text, isNew,\nsystem, files[] }`, \u043F\u043B\u044E\u0441 `total`, `oldestId`, `scannedPages` \u0438 **`reachedHistoryStart`**: \u0435\u0441\u043B\u0438 \u043E\u043D\n`false` (\u0443\u043F\u0451\u0440\u043B\u0438\u0441\u044C \u0432 `maxPages` \u2014 \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u0435 \u0438 \u043C\u0430\u043A\u0441\u0438\u043C\u0443\u043C 10 \u2014 \u0438\u043B\u0438 \u0432 `limit`), \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0430\u0439 \u0441 `beforeId: <oldestId>`.\n\n- **`system: true`** \u2014 \u0441\u043B\u0443\u0436\u0435\u0431\u043D\u044B\u0435 \u0437\u0430\u043F\u0438\u0441\u0438 (\xAB\u0432\u044B \u043D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u044B \u0438\u0441\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u0435\u043C\xBB, \u0441\u043C\u0435\u043D\u0430 \u0441\u0440\u043E\u043A\u0430, \u043F\u0438\u043D\u0433\u0438), \u043D\u0435 \u0441\u043B\u043E\u0432\u0430 \u043B\u044E\u0434\u0435\u0439.\n- **`date`** \u2014 \u043A\u0430\u043A \u043D\u0430 \u043F\u043E\u0440\u0442\u0430\u043B\u0435 (\xAB9 \u043C\u0430\u0440\u0442\u0430 2024 08:15\xBB), **`dateIso`** \u2014 \u0442\u043E \u0436\u0435 \u0432 `2024-03-09T08:15`\n (\u043C\u0435\u0441\u0442\u043D\u043E\u0435 \u0432\u0440\u0435\u043C\u044F \u043F\u043E\u0440\u0442\u0430\u043B\u0430; \u0434\u043B\u044F \xAB\u0432\u0447\u0435\u0440\u0430, 12:00\xBB \u0438 \u0434\u0430\u0442 \u0431\u0435\u0437 \u0433\u043E\u0434\u0430 \u2014 `null`).\n- **`files[]`** \u2014 `{ attachedId, name, size, url }`; `url` \u0441\u043A\u0430\u0440\u043C\u043B\u0438\u0432\u0430\u0439 `bitrix_file_download` (\xA75.5).\n- **`text`** \u2014 \u0431\u0435\u0437 \u0440\u0430\u0437\u043C\u0435\u0442\u043A\u0438; \u0443 \u0441\u0441\u044B\u043B\u043A\u0438 \u0441 \u043F\u043E\u0434\u043F\u0438\u0441\u044C\u044E \u0430\u0434\u0440\u0435\u0441 \u0434\u043E\u043F\u0438\u0441\u0430\u043D \u0432 \u0441\u043A\u043E\u0431\u043A\u0430\u0445: \xAB\u043C\u0430\u043A\u0435\u0442 (https://\u2026)\xBB.\n- **\u0414\u043B\u0438\u043D\u043D\u043E\u0435 \u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435 \u043D\u0435 \u043F\u0440\u0438\u0445\u043E\u0434\u0438\u0442 \u0432 \u043E\u0442\u0432\u0435\u0442\u0435** (\u043A\u0430\u043A \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0430 \u0437\u0432\u043E\u043D\u043A\u0430, \xA75.4): \u0441\u0432\u044B\u0448\u0435 ~20 \u041A\u0411 (`output:\n "auto"` = \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u0435) \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 `comments: []` \u0438 `files`: `files.text` \u2014 `task-<id>-comments.txt`,\n \u0441\u0442\u0440\u043E\u043A\u0430 = \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0439 (`#5678 [2024-03-09T08:15] \u0418\u043C\u044F (id 101): \u0442\u0435\u043A\u0441\u0442`, \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u044B \u2014 ` \u23CE `), \u0435\u0451 \u0443\u0434\u043E\u0431\u043D\u043E\n \u0433\u0440\u0435\u043F\u0430\u0442\u044C; `files.json` \u2014 \u043F\u043E\u043B\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442. `output: "file"` \u2014 \u0432\u0441\u0435\u0433\u0434\u0430 \u0432 \u0444\u0430\u0439\u043B.\n- **\u041F\u0440\u043E\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u043C \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u043F\u043E\u043C\u0435\u0447\u0430\u0435\u0442\u0441\u044F.** \u041F\u043E\u0440\u0442\u0430\u043B \u043E\u0442\u043C\u0435\u0447\u0430\u0435\u0442 \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0438 \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u044B\u043C \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435\u043C\n `readComment`, \u043A\u043E\u0442\u043E\u0440\u043E\u0435 \u0448\u043B\u0451\u0442 JS \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B \u043F\u0440\u0438 \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0435; \u043C\u043E\u0441\u0442 JS \u043D\u0435 \u0438\u0441\u043F\u043E\u043B\u043D\u044F\u0435\u0442. \u041F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043E:\n `viewedDate` \u0437\u0430\u0434\u0430\u0447\u0438 \u043F\u043E\u0441\u043B\u0435 \u0447\u0442\u0435\u043D\u0438\u044F \u043D\u0435 \u043C\u0435\u043D\u044F\u0435\u0442\u0441\u044F. `isNew: true` \u2014 \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0439 \u043D\u0435 \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u043D \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u043C.\n- \u041D\u0435\u0442 \u0434\u043E\u0441\u0442\u0443\u043F\u0430 \u043A \u0437\u0430\u0434\u0430\u0447\u0435 / \u043F\u0440\u043E\u0442\u0443\u0445\u043B\u0430 \u0441\u0435\u0441\u0441\u0438\u044F \u2192 \u0432\u043D\u044F\u0442\u043D\u0430\u044F \u043E\u0448\u0438\u0431\u043A\u0430 (\u043F\u043E\u0440\u0442\u0430\u043B \u043E\u0442\u0434\u0430\u0451\u0442 HTML \u043B\u043E\u0433\u0438\u043D\u0430).\n\n### 5.7. \u0417\u0430\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443: Definition of Done\n\n\u0412 scrum-\u043F\u0440\u043E\u0435\u043A\u0442\u0435 \u0437\u0430\u0434\u0430\u0447\u0430 \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0435\u0442\u0441\u044F \u0447\u0435\u0440\u0435\u0437 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0433\u043E\u0442\u043E\u0432\u043D\u043E\u0441\u0442\u0438 (DoD), \u043A\u0430\u043A \u0432 \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0435 \u0437\u0430\u0434\u0430\u0447\u0438, \u0438 **\u043C\u043E\u0441\u0442 \u0438\u0445\n\u043D\u0435 \u043E\u0431\u0445\u043E\u0434\u0438\u0442**: \u043E\u0442\u043C\u0435\u0442\u0438\u0442\u044C \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043D\u044B\u043C\u0438 \u043C\u043E\u0436\u0435\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u0432\u0442\u043E\u0440\u043E\u0439 \u0432\u044B\u0437\u043E\u0432 \u2014 \u043F\u043E\u0441\u043B\u0435 \u044F\u0432\u043D\u043E\u0433\u043E \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u044F\n\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F. \u041F\u0435\u0440\u0435\u043D\u043E\u0441 \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u0442\u0438\u043F\u0430 `FINISH` \u0437\u0430\u043A\u0440\u044B\u043B \u0431\u044B \u0437\u0430\u0434\u0430\u0447\u0443 \u043C\u0438\u043C\u043E DoD, \u043F\u043E\u044D\u0442\u043E\u043C\u0443 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u043E\u0441\u043A\u0438 \u0442\u0430\u043A\u0443\u044E\n\u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u043D\u0435 \u043F\u0440\u0438\u043D\u0438\u043C\u0430\u044E\u0442 (\xA73) \u2014 \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0439 \u0442\u043E\u043B\u044C\u043A\u043E \u0442\u0430\u043A.\n\n```jsonc\n// \u0448\u0430\u0433 1\nbitrix_task_close { "taskId": 4229 }\n// \u043D\u0435 scrum-\u043F\u0440\u043E\u0435\u043A\u0442 \u0438\u043B\u0438 DoD \u043D\u0435 \u043D\u0443\u0436\u0435\u043D \u2192 \u0437\u0430\u0434\u0430\u0447\u0430 \u0441\u0440\u0430\u0437\u0443 \u0437\u0430\u043A\u0440\u044B\u0442\u0430: { taskId, status: 5, changed: true }\n// DoD \u043D\u0443\u0436\u0435\u043D \u2192 \u0437\u0430\u0434\u0430\u0447\u0430 \u041D\u0415 \u0437\u0430\u043A\u0440\u044B\u0442\u0430:\n// { taskId, needsConfirmation: true,\n// types: [{ id: 1, name: "\u2026", required: true, items: [{ title: "\u2026", group: "\u2026" }, \u2026] }, \u2026] }\n\n// \u0448\u0430\u0433 2 \u2014 \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u043E\u0441\u043B\u0435 \xAB\u0434\u0430\xBB \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043D\u0430 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E \u0442\u0438\u043F\u0430\nbitrix_task_close { "taskId": 4229, "typeId": 1, "confirmItems": true }\n// \u2192 { taskId, status: 5, changed: true, typeId: 1 }\n```\n\n- `types` \u2014 \u0442\u0438\u043F\u044B \u0437\u0430\u0434\u0430\u0447 \u043F\u0440\u043E\u0435\u043A\u0442\u0430 \u0438 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u043A\u0430\u0436\u0434\u043E\u0433\u043E; `required: true` \u2014 DoD \u0434\u043B\u044F \u0442\u0438\u043F\u0430 \u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u0435\u043D. `group` \u2014\n \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u0433\u0440\u0443\u043F\u043F\u044B \u0447\u0435\u043A-\u043B\u0438\u0441\u0442\u0430, \u0432 \u043A\u043E\u0442\u043E\u0440\u043E\u0439 \u043B\u0435\u0436\u0438\u0442 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0439 (\u0441\u0430\u043C\u0430 \u0433\u0440\u0443\u043F\u043F\u0430 \u0432 `items` \u043D\u0435 \u043F\u043E\u043F\u0430\u0434\u0430\u0435\u0442). \u041F\u043E\u043A\u0430\u0436\u0438\n \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0438 \u043F\u043E\u043B\u0443\u0447\u0438 \u0435\u0433\u043E \u044F\u0432\u043D\u043E\u0435 \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u0435 \u043E\u0442\u043C\u0435\u0442\u0438\u0442\u044C \u0438\u0445 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043D\u044B\u043C\u0438 \u0434\u043B\u044F \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E \u0442\u0438\u043F\u0430. \u0421\u0430\u043C \u0437\u0430\n \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043D\u0435 \u0440\u0435\u0448\u0430\u0439: \u043D\u0435\u0442 \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u044F \u2014 \u0448\u0430\u0433 2 \u043D\u0435 \u0432\u044B\u0437\u044B\u0432\u0430\u0439. **\u0422\u0438\u043F \u0432\u044B\u0431\u0438\u0440\u0430\u0435\u0442 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C**: \u0442\u0438\u043F \u0441\n `required: false` \u0437\u0430\u043A\u0440\u043E\u0435\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 \u0431\u0435\u0437 \u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0445 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0435\u0432 \u2014 \u0435\u0433\u043E \u0442\u043E\u0436\u0435 \u0431\u0435\u0440\u0438 \u0442\u043E\u043B\u044C\u043A\u043E \u0441 \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u044F\n \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F.\n- \u041D\u0430 \u0448\u0430\u0433\u0435 2 \u043E\u0442\u043C\u0435\u0447\u0430\u044E\u0442\u0441\u044F **\u0432\u0441\u0435** \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0442\u0438\u043F\u0430, \u0437\u0430\u0442\u0435\u043C \u0437\u0430\u0434\u0430\u0447\u0430 \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0435\u0442\u0441\u044F \u0438 \u0441\u0442\u0430\u0442\u0443\u0441 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442\u0441\u044F (\u043D\u0435\n \u0437\u0430\u043A\u0440\u044B\u043B\u0430\u0441\u044C \u2014 \u043E\u0448\u0438\u0431\u043A\u0430). `typeId` \u0438 `confirmItems: true` \u043F\u0435\u0440\u0435\u0434\u0430\u044E\u0442\u0441\u044F \u0442\u043E\u043B\u044C\u043A\u043E \u0432\u043C\u0435\u0441\u0442\u0435; \u0437\u0430\u0434\u0430\u0447\u0435 \u043D\u0435 \u0438\u0437\n scrum-\u043F\u0440\u043E\u0435\u043A\u0442\u0430 \u043E\u043D\u0438 \u043D\u0435 \u043D\u0443\u0436\u043D\u044B (\u043E\u0448\u0438\u0431\u043A\u0430 \u2014 \u0437\u0430\u043A\u0440\u043E\u0439 \u0435\u0451 \u0431\u0435\u0437 \u043D\u0438\u0445).\n- \u0423\u0436\u0435 \u0437\u0430\u043A\u0440\u044B\u0442\u0430\u044F \u0437\u0430\u0434\u0430\u0447\u0430 \u043D\u0435 \u0442\u0440\u043E\u0433\u0430\u0435\u0442\u0441\u044F (`changed: false`). \u0417\u0430\u043A\u0440\u044B\u0442\u0438\u0435 \u0432\u0438\u0434\u044F\u0442 \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443; \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438\n \u043F\u043E\u043B\u0443\u0447\u0430\u044E\u0442 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0435. \u0412\u043E\u0437\u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u2014 `bitrix_task_reopen { "taskIds": [4229] }`.\n- \xAB\u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 DoD \u043E\u0442\u043C\u0435\u0447\u0435\u043D\u044B \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043D\u044B\u043C\u0438, \u043D\u043E \u0437\u0430\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C\xBB \u2014 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0443\u0436\u0435 \u043E\u0442\u043C\u0435\u0447\u0435\u043D\u044B, \u0437\u0430\u0434\u0430\u0447\u0430\n \u043E\u0442\u043A\u0440\u044B\u0442\u0430. \xAB\u2026\u2014 \u0437\u0430\u043A\u0440\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0443 \u0432 \u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435\xBB \u2014 \u043C\u043E\u0441\u0442 \u043D\u0435 \u0441\u043C\u043E\u0433 \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044C DoD \u0438\u0437 \u043E\u0442\u0432\u0435\u0442\u0430 Bitrix; \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0438\n \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E \u0437\u0430\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u0432 \u0432\u0435\u0431-\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435.\n\n### 5.8. \u041F\u0440\u0438\u043A\u0440\u0435\u043F\u0438\u0442\u044C \u043B\u043E\u043A\u0430\u043B\u044C\u043D\u044B\u0439 \u0444\u0430\u0439\u043B \u043A \u0437\u0430\u0434\u0430\u0447\u0435\n\n```jsonc\nbitrix_task_file_attach { "taskId": 4229, "path": "/tmp/report.pdf" }\nbitrix_task_file_attach { "taskId": 4229, "path": "/tmp/out.csv", "name": "\u0438\u0442\u043E\u0433\u0438.csv" }\n// \u2192 { taskId, diskFileId, name, size, attachmentId }\n```\n\n- **\u0424\u0430\u0439\u043B \u0443\u0445\u043E\u0434\u0438\u0442 \u0441 \u043C\u0430\u0448\u0438\u043D\u044B**: \u043E\u043D \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044F \u0432 \u043A\u043E\u0440\u0435\u043D\u044C \u0414\u0438\u0441\u043A\u0430 \u0411\u0438\u0442\u0440\u0438\u043A\u044124 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u0438 \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u044F\u0435\u0442\u0441\u044F \u043A\n \u0437\u0430\u0434\u0430\u0447\u0435 \u2014 \u0435\u0433\u043E \u0443\u0432\u0438\u0434\u044F\u0442 \u0438 \u0441\u043C\u043E\u0433\u0443\u0442 \u0441\u043A\u0430\u0447\u0430\u0442\u044C \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443. \u041F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u044F\u0439 \u0442\u043E\u043B\u044C\u043A\u043E \u0442\u043E, \u0447\u0442\u043E \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\n \u044F\u0432\u043D\u043E \u043F\u043E\u043F\u0440\u043E\u0441\u0438\u043B; \u043B\u044E\u0431\u043E\u0439 \u0434\u0440\u0443\u0433\u043E\u0439 \u0444\u0430\u0439\u043B \u2014 \u0441\u043D\u0430\u0447\u0430\u043B\u0430 \u0441\u043F\u0440\u043E\u0441\u0438.\n- `path` \u2014 **\u0430\u0431\u0441\u043E\u043B\u044E\u0442\u043D\u044B\u0439** \u043F\u0443\u0442\u044C \u043A \u043E\u0431\u044B\u0447\u043D\u043E\u043C\u0443 \u043D\u0435\u043F\u0443\u0441\u0442\u043E\u043C\u0443 \u0444\u0430\u0439\u043B\u0443 \u0434\u043E 10 \u041C\u0411: \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F \u0432\u044B\u043F\u043E\u043B\u043D\u044F\u0435\u0442\u0441\u044F \u0432 \u043F\u0440\u043E\u0446\u0435\u0441\u0441\u0435\n daemon, \u0430 \u043D\u0435 \u0432 \u0442\u0432\u043E\u0451\u043C \u0440\u0430\u0431\u043E\u0447\u0435\u043C \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0435. `name` \u2014 \u0438\u043C\u044F \u0432 \u0411\u0438\u0442\u0440\u0438\u043A\u044124 (\u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u2014 \u0438\u0437 `path`, \u0431\u0435\u0437\n \u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B\u0435\u0439 \u043F\u0443\u0442\u0438); \u0435\u0441\u043B\u0438 \u0438\u043C\u044F \u043D\u0430 \u0414\u0438\u0441\u043A\u0435 \u0437\u0430\u043D\u044F\u0442\u043E, \u0411\u0438\u0442\u0440\u0438\u043A\u044124 \u0434\u043E\u0431\u0430\u0432\u0438\u0442 \u0441\u0443\u0444\u0444\u0438\u043A\u0441 \u2014 \u0438\u0442\u043E\u0433\u043E\u0432\u043E\u0435 \u0438\u043C\u044F \u0432 \u043E\u0442\u0432\u0435\u0442\u0435.\n- \u0418\u0437 \u0441\u043B\u0443\u0436\u0435\u0431\u043D\u043E\u0433\u043E \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0430 \u043C\u043E\u0441\u0442\u0430 (`~/.bitrix24-mcp-bridge` \u0438\u043B\u0438 `BITRIX24_MCP_BRIDGE_HOME`; \u0442\u0430\u043C \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0438\n \u0442\u043E\u043A\u0435\u043D) \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u044F\u044E\u0442\u0441\u044F \u0442\u043E\u043B\u044C\u043A\u043E \u0444\u0430\u0439\u043B\u044B, \u0441\u043A\u0430\u0447\u0430\u043D\u043D\u044B\u0435 \u043C\u043E\u0441\u0442\u043E\u043C, \u2014 \u0438\u0437 `downloads/` (\u0438\u0445 \u043C\u043E\u0436\u043D\u043E \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u0438\u0442\u044C \u043A \u0434\u0440\u0443\u0433\u043E\u0439\n \u0437\u0430\u0434\u0430\u0447\u0435). \u0412\u0441\u0451 \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u043E\u0435 \u0432 \u043D\u0451\u043C \u2014 \u043E\u0442\u043A\u0430\u0437, \u0432 \u0442\u043E\u043C \u0447\u0438\u0441\u043B\u0435 \u0447\u0435\u0440\u0435\u0437 \u0441\u0438\u043C\u043B\u0438\u043D\u043A \u0438\u043B\u0438 `..`.\n- \u041D\u0443\u0436\u043D\u043E \u043F\u0440\u0430\u0432\u043E \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u044F\u0442\u044C \u0444\u0430\u0439\u043B\u044B \u043A \u0437\u0430\u0434\u0430\u0447\u0435: \u0442\u043E\u043C\u0443, \u043A\u0442\u043E \u0437\u0430\u0434\u0430\u0447\u0443 \u0442\u043E\u043B\u044C\u043A\u043E \u0432\u0438\u0434\u0438\u0442, Bitrix \u043C\u043E\u0436\u0435\u0442 \u043E\u0442\u043A\u0430\u0437\u0430\u0442\u044C \u0443\u0436\u0435 \u043F\u043E\u0441\u043B\u0435\n \u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0438. \u0415\u0441\u043B\u0438 \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u0438\u0442\u044C \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C, \u0444\u0430\u0439\u043B **\u043E\u0441\u0442\u0430\u0451\u0442\u0441\u044F \u043D\u0430 \u0414\u0438\u0441\u043A\u0435** \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u2014 \u043E\u0448\u0438\u0431\u043A\u0430 \u043D\u0430\u0437\u044B\u0432\u0430\u0435\u0442 \u0435\u0433\u043E (\u0438\u043C\u044F\n \u0438 id); \u0441\u043A\u0430\u0436\u0438 \u043E\u0431 \u044D\u0442\u043E\u043C \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E.\n- \xAB\u0444\u0430\u0439\u043B \u043C\u043E\u0433 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C\u0441\u044F \u043D\u0430 \u0414\u0438\u0441\u043A\xBB \u2014 \u043F\u0440\u043E\u0432\u0435\u0440\u044C \u043A\u043E\u0440\u043D\u0435\u0432\u0443\u044E \u043F\u0430\u043F\u043A\u0443 \u0414\u0438\u0441\u043A\u0430 \u043F\u0435\u0440\u0435\u0434 \u043F\u043E\u0432\u0442\u043E\u0440\u043E\u043C; \xAB\u0432\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u043C\u043E\u0433\u043B\u043E\n \u0441\u043E\u0437\u0434\u0430\u0442\u044C\u0441\u044F\xBB \u2014 \u043F\u0440\u043E\u0432\u0435\u0440\u044C \u0444\u0430\u0439\u043B\u044B \u0437\u0430\u0434\u0430\u0447\u0438 (`bitrix_task_get` \u0441 `select: ["UF_TASK_WEBDAV_FILES"]` \u2192\n `bitrix_task_files`). \u041F\u043E\u0441\u043B\u0435 \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u0435\u043D\u0438\u044F \u0444\u0430\u0439\u043B\u044B \u0437\u0430\u0434\u0430\u0447\u0438 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u044E\u0442\u0441\u044F; \u0432\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u043D\u0435\u0442 \u2014 \u043E\u0448\u0438\u0431\u043A\u0430.\n\n### 5.9. \u041D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F \u0438 \u0441\u0432\u043E\u0438 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u043F\u043E \u0437\u0430\u0434\u0430\u0447\u0435\n\n\u041D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F \u0438 \u0432\u044B\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0439 \u043A\u0430\u0441\u0430\u044E\u0442\u0441\u044F **\u0442\u043E\u043B\u044C\u043A\u043E \u0442\u0435\u043A\u0443\u0449\u0435\u0433\u043E \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F**: \u0434\u0440\u0443\u0433\u0438\u0435 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u0438\u0445 \u043D\u0435\n\u0432\u0438\u0434\u044F\u0442 \u0438 \u043F\u043E\u043B\u0443\u0447\u0430\u044E\u0442 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u043A\u0430\u043A \u043F\u0440\u0435\u0436\u0434\u0435.\n\n```jsonc\nbitrix_task_reminders { "taskId": 4229 }\n// \u2192 { taskId, reminders: [{ id, at, via, remindBy, recipient, userId, mine }] }\nbitrix_task_reminder_set { "taskId": 4229, "at": "2026-12-01T09:00:00+03:00", "via": "notification" } // \u043D\u043E\u0432\u043E\u0435 \u2014 \u0442\u0435\u0431\u0435\nbitrix_task_reminder_set { "taskId": 4229, "reminderId": 61, "at": "2026-12-02T06:00:00Z", "via": "email" }\nbitrix_task_reminder_delete { "taskId": 4229, "reminderId": 61 }\nbitrix_task_mute { "taskId": 4229, "muted": true } // \u0432\u044B\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0441\u0432\u043E\u0438 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u043F\u043E \u0437\u0430\u0434\u0430\u0447\u0435\n```\n\n- \u041C\u0435\u043D\u044F\u0442\u044C \u0438 \u0443\u0434\u0430\u043B\u044F\u0442\u044C \u043C\u043E\u0436\u043D\u043E \u0442\u043E\u043B\u044C\u043A\u043E **\u0441\u0432\u043E\u0438** \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F \u2014 `mine: true` \u0432 `bitrix_task_reminders`; \u0447\u0443\u0436\u043E\u0435 \u0438\u043B\u0438\n \u043D\u0435 \u044D\u0442\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u2014 \u043E\u0448\u0438\u0431\u043A\u0430, \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u043C\u0435\u043D\u044F\u0435\u0442\u0441\u044F.\n- `at` \u2014 \u0430\u0431\u0441\u043E\u043B\u044E\u0442\u043D\u0430\u044F \u0434\u0430\u0442\u0430 **\u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043C** (\u0444\u043E\u0440\u043C\u0430\u0442 \u2014 \xAB\u0414\u0430\u0442\u044B\xBB, \xA73); `via` \u2014 `notification` (\u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0435 \u0432\n \u0411\u0438\u0442\u0440\u0438\u043A\u044124) \u0438\u043B\u0438 `email`. \u041D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 \u043E\u0442\u043D\u043E\u0441\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u0441\u0440\u043E\u043A\u0430 (`remindBy: "deadline"`) \u043F\u043E\u0441\u043B\u0435 \u043F\u0440\u0430\u0432\u043A\u0438 \u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0441\u044F\n \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435\u043C \u043D\u0430 \u0434\u0430\u0442\u0443; \u043F\u043E\u043B\u0443\u0447\u0430\u0442\u0435\u043B\u044C (`recipient`) \u043E\u0441\u0442\u0430\u0451\u0442\u0441\u044F \u043F\u0440\u0435\u0436\u043D\u0438\u043C.\n- \u041F\u043E\u0441\u043B\u0435 \u0437\u0430\u043F\u0438\u0441\u0438 \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 \u0438 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0439 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u044E\u0442\u0441\u044F; \u0435\u0441\u043B\u0438 \u043E\u043D\u0438 \u043D\u0435 \u0442\u0435 \u2014 \u043E\u0448\u0438\u0431\u043A\u0430.\n\n---\n\n\u041D\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0430 \u043F\u043E\u0434 \u043D\u0443\u0436\u043D\u043E\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u2014 \u0441\u043A\u0430\u0436\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E: \u043D\u043E\u0432\u044B\u0435 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u043E\u0431\u0430\u0432\u043B\u044F\u0435\u0442\n\u043C\u0435\u0439\u043D\u0442\u0435\u0439\u043D\u0435\u0440 \u043C\u043E\u0441\u0442\u0430 (\u043F\u0440\u043E\u0446\u0435\u0441\u0441 \u2014 `docs/reconnaissance.md` \u0432 \u0440\u0435\u043F\u043E\u0437\u0438\u0442\u043E\u0440\u0438\u0438 \u043C\u043E\u0441\u0442\u0430).\n' ? '# Bitrix24 API notes (reverse-engineered)\n\n\u041A\u0430\u043A \u0430\u0433\u0435\u043D\u0442\u0443 \u0440\u0430\u0431\u043E\u0442\u0430\u0442\u044C \u0441 Bitrix24 \u0447\u0435\u0440\u0435\u0437 \u044D\u0442\u043E\u0442 \u043C\u043E\u0441\u0442: \u0444\u043E\u0440\u043C\u0430\u0442 `params`, \u0438\u043C\u0435\u043D\u0430 \u043F\u043E\u043B\u0435\u0439, \u0433\u043E\u0442\u043E\u0432\u044B\u0435 \u0446\u0435\u043F\u043E\u0447\u043A\u0438 \u0432\u044B\u0437\u043E\u0432\u043E\u0432.\n\n\u0414\u0432\u0435 \u043F\u043E\u0432\u0435\u0440\u0445\u043D\u043E\u0441\u0442\u0438 API. **\u041F\u0443\u0431\u043B\u0438\u0447\u043D\u044B\u0439 REST** (`tasks.task.*`, `im.recent.list`, `im.user.get`, `im.chat.get`,\n`socialnetwork.api.workgroup.*`) \u2014 \u0435\u0441\u0442\u044C \u043E\u0444\u0438\u0446\u0438\u0430\u043B\u044C\u043D\u044B\u0435 \u0434\u043E\u043A\u0438, \u0441\u0441\u044B\u043B\u043A\u0438 \u043D\u0430 \u043D\u0438\u0445 \u043F\u043E\u043C\u0435\u0447\u0435\u043D\u044B **\u{1F4D6}**\n([`apidocs.bitrix24.com`](https://apidocs.bitrix24.com); \u0430\u0433\u0435\u043D\u0442\u0443 \u0441 MCP context7 \u2014 \u0431\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u0430\n`/bitrix24/b24restdocs`). **\u0412\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u0438\u0435 ajax-\u043A\u043E\u043D\u0442\u0440\u043E\u043B\u043B\u0435\u0440\u044B** (`im.v2.*`, `tasks.v2.*`, `ui.entityselector.*`)\n\u043F\u0443\u0431\u043B\u0438\u0447\u043D\u044B\u0445 \u0434\u043E\u043A\u043E\u0432 \u043D\u0435 \u0438\u043C\u0435\u044E\u0442 \u2014 \u0432\u0441\u0451 \u043D\u0438\u0436\u0435 \u0434\u043E\u0431\u044B\u0442\u043E \u0436\u0438\u0432\u044B\u043C \u0440\u0435\u0432\u0435\u0440\u0441\u043E\u043C; \u043A\u043E\u043D\u0432\u0435\u0440\u0442 \u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u043F\u043E\u043B\u0435\u0439 \u0443 \u043D\u0438\u0445 \u043C\u043E\u0433\u0443\u0442\n\u043E\u0442\u043B\u0438\u0447\u0430\u0442\u044C\u0441\u044F \u043E\u0442 \u{1F4D6}-\u0430\u043D\u0430\u043B\u043E\u0433\u043E\u0432. \u0418\u043C\u0435\u043D\u0430 \u043F\u043E\u043B\u0435\u0439 \u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u044B \u0434\u043B\u044F \u043E\u0431\u043B\u0430\u0447\u043D\u043E\u0433\u043E Bitrix24; \u043D\u0430 \u0434\u0440\u0443\u0433\u043E\u043C \u043F\u043E\u0440\u0442\u0430\u043B\u0435 \u043E\u0442\u0432\u0435\u0442\n\u043C\u043E\u0436\u0435\u0442 \u043E\u0442\u043B\u0438\u0447\u0430\u0442\u044C\u0441\u044F.\n\n---\n\n## 1. \u041A\u0430\u043A \u0432\u044B\u0437\u044B\u0432\u0430\u0442\u044C\n\n- **\u041A\u0430\u0436\u0434\u044B\u0439 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442 `bitrix_*` \u2014 \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u0430\u044F \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F \u043C\u043E\u0441\u0442\u0430** \u0441 \u0442\u0438\u043F\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u043C\u0438 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u0430\u043C\u0438\n (`taskId`, `chatId`, `query`, \u2026) \u0438 \u0440\u0430\u0437\u0443\u043C\u043D\u044B\u043C\u0438 \u0434\u0435\u0444\u043E\u043B\u0442\u0430\u043C\u0438; \u043F\u043E\u043B\u043D\u044B\u0439 \u0441\u043F\u0438\u0441\u043E\u043A \u2014 \xA73 \u0438 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u044F MCP-\u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432.\n \u0412\u044B\u0437\u0432\u0430\u0442\u044C \u043F\u0440\u043E\u0438\u0437\u0432\u043E\u043B\u044C\u043D\u044B\u0439 \u043C\u0435\u0442\u043E\u0434 Bitrix \u043F\u043E \u0438\u043C\u0435\u043D\u0438 \u043D\u0435\u043B\u044C\u0437\u044F \u2014 \u0442\u043E\u043B\u044C\u043A\u043E \u044D\u0442\u0438 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438.\n- **`params`** (\u043D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0439, \u0443 \u0431\u043E\u043B\u044C\u0448\u0438\u043D\u0441\u0442\u0432\u0430 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0439 \u2014 \u043F\u043E\u043C\u0435\u0442\u043A\u0430 \xAB+ `params`\xBB \u0432 \xA73) \u2014 \u043E\u0431\u044A\u0435\u043A\u0442 \u0432\n **\u043D\u0430\u0442\u0438\u0432\u043D\u043E\u043C \u0444\u043E\u0440\u043C\u0430\u0442\u0435 Bitrix** (`select`/`filter`/`order`/\u043F\u0430\u0433\u0438\u043D\u0430\u0446\u0438\u044F, \xA74). \u041E\u043D \u043C\u0435\u0440\u0436\u0438\u0442\u0441\u044F **\u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u043C** \u0438\n \u043F\u0435\u0440\u0435\u043A\u0440\u044B\u0432\u0430\u0435\u0442 \u0434\u0435\u0444\u043E\u043B\u0442\u044B \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438. \u041A\u043B\u044E\u0447\u0438 `action`, `c`, `mode`, `sessid` \u0432 `params` \u0437\u0430\u043F\u0440\u0435\u0449\u0435\u043D\u044B \u2014 \u0438\u0445 \u0437\u0430\u0434\u0430\u0451\u0442\n \u0441\u0430\u043C\u0430 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F; \u0432\u044B\u0437\u043E\u0432 \u0441 \u043D\u0438\u043C\u0438 \u0432\u0435\u0440\u043D\u0451\u0442 \u043E\u0448\u0438\u0431\u043A\u0443 `invalid arguments\u2026`, \u0437\u0430\u043F\u0440\u043E\u0441 \u043D\u0435 \u0443\u0439\u0434\u0451\u0442.\n- **`portal`** (\u043D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0439, \u0443 \u0432\u0441\u0435\u0445) \u2014 alias \u043F\u043E\u0440\u0442\u0430\u043B\u0430; \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u2014 \u043F\u043E\u0440\u0442\u0430\u043B \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0438\u0437 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A.\n- \u0423 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0439 \u0435\u0441\u0442\u044C \u0434\u0435\u0444\u043E\u043B\u0442\u044B (\u043D\u0430\u043F\u0440. `bitrix_tasks_list` \u0441\u043E\u0440\u0442\u0438\u0440\u0443\u0435\u0442 `{"ID":"desc"}`) \u2014 \u0441\u0440\u0430\u0432\u043D\u0438\u0432\u0430\u0435\u0448\u044C \u0432\u044B\u0434\u0430\u0447\u0438\n \u0441 \u0440\u0430\u0437\u043D\u044B\u043C\u0438 `params`, \u0437\u0430\u0434\u0430\u0432\u0430\u0439 `order` \u044F\u0432\u043D\u043E.\n- **\u041C\u0443\u0442\u0438\u0440\u0443\u044E\u0449\u0438\u0435** \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 (\u26A0 \u0432 \xA73, \u043F\u043E\u043B\u043D\u044B\u0439 \u0441\u043F\u0438\u0441\u043E\u043A \u2014 \u043F\u043E\u0441\u043B\u0435 \u0442\u0430\u0431\u043B\u0438\u0446\u044B) \u043C\u0435\u043D\u044F\u044E\u0442 \u0434\u0430\u043D\u043D\u044B\u0435 \u043D\u0430 \u043F\u043E\u0440\u0442\u0430\u043B\u0435 \u043E\u0442 \u0438\u043C\u0435\u043D\u0438\n \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F, \u0441\u0440\u0430\u0437\u0443 \u0438 \u0431\u0435\u0437 \u043E\u0442\u043C\u0435\u043D\u044B. \u041F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u043E\u043D\u0438 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u044B; \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C \u043C\u043E\u0436\u0435\u0442 \u0432\u044B\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0438\u0445\n \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0430\u0442\u0435\u043B\u0435\u043C \u043C\u0443\u0442\u0430\u0446\u0438\u0439 \u2014 \u0442\u043E\u0433\u0434\u0430 \u0432\u044B\u0437\u043E\u0432 \u0432\u0435\u0440\u043D\u0451\u0442 \u043E\u0448\u0438\u0431\u043A\u0443 `operation <\u0438\u043C\u044F> changes data, but mutations are\n disabled\u2026`; \u044D\u0442\u043E \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F, \u043E\u0431\u043E\u0439\u0442\u0438 \u0435\u0451 \u043D\u0435\u043B\u044C\u0437\u044F \u2014 \u0441\u043E\u043E\u0431\u0449\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E. \u0412\u043A\u043B\u044E\u0447\u0435\u043D\u044B \u043B\u0438 \u043E\u043D\u0438 \u0441\u0435\u0439\u0447\u0430\u0441 \u2014\n \u043F\u043E\u043B\u0435 `mutations` \u0432 `bitrix_status`. \u041E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0447\u0442\u0435\u043D\u0438\u044F \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0430\u0442\u0435\u043B\u044C \u043D\u0435 \u0442\u0440\u043E\u0433\u0430\u0435\u0442.\n- \u041E\u0442\u0432\u0435\u0442 `invalid_csrf` / `invalid_authentication` = \u0441\u0435\u0441\u0441\u0438\u044F \u043F\u043E\u0440\u0442\u0430\u043B\u0430 \u043F\u0440\u043E\u0442\u0443\u0445\u043B\u0430 \u2192 \u043F\u0435\u0440\u0435\u043B\u043E\u0433\u0438\u043D\u044C\u0441\u044F \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435\n \u043D\u0430 \u0432\u043A\u043B\u0430\u0434\u043A\u0435 \u043F\u043E\u0440\u0442\u0430\u043B\u0430.\n\n---\n\n## 2. \u0424\u043E\u0440\u043C\u0430\u0442 \u043E\u0442\u0432\u0435\u0442\u0430\n\nAjax-\u043A\u043E\u043D\u0442\u0440\u043E\u043B\u043B\u0435\u0440\u044B (`/bitrix/services/main/ajax.php`) \u043E\u0442\u0432\u0435\u0447\u0430\u044E\u0442 HTTP 200 \u0441 \u043A\u043E\u043D\u0432\u0435\u0440\u0442\u043E\u043C:\n\n```jsonc\n{ "status": "success" | "error",\n "data": { ... },\n "errors": [] } // \u041F\u0423\u0421\u0422\u041E\u0419 \u043C\u0430\u0441\u0441\u0438\u0432 \u043F\u0440\u0438 \u0443\u0441\u043F\u0435\u0445\u0435! (\u0432 JS [] \u2014 truthy)\n```\n\n\u0423\u0441\u043F\u0435\u0445 = `status:"success"` \u0438/\u0438\u043B\u0438 **\u043F\u0443\u0441\u0442\u043E\u0439** `errors`. \u041D\u0435\u043F\u0443\u0441\u0442\u043E\u0439 `errors` / `status:"error"` / top-level\n`error` \u2014 \u0440\u0435\u0430\u043B\u044C\u043D\u0430\u044F \u043E\u0448\u0438\u0431\u043A\u0430 (\u043C\u043E\u0441\u0442 \u043C\u0430\u043F\u043F\u0438\u0442 \u0435\u0451 \u0432 `ok:false`). REST-\u044D\u043D\u0434\u043F\u043E\u0438\u043D\u0442\u044B (`/rest/*.json`) \u043E\u0442\u0432\u0435\u0447\u0430\u044E\u0442\n\u0438\u043D\u0430\u0447\u0435: `{ "result": \u2026, "next", "total", "time" }` \u2014 \u0431\u0435\u0437 `errors`.\n\n---\n\n## 3. \u0418\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u044B: \u0447\u0442\u043E \u0434\u0435\u043B\u0430\u0435\u0442 \u2192 \u043A\u043B\u044E\u0447\u0435\u0432\u044B\u0435 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u044B\n\n`params` \u0432 \u0442\u0430\u0431\u043B\u0438\u0446\u0435 \u043D\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u0435\u0442\u0441\u044F \u2014 \u043E\u043D \u0435\u0441\u0442\u044C \u0443 \u0432\u0441\u0435\u0445 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0439 \u0441 \u043F\u043E\u043C\u0435\u0442\u043A\u043E\u0439 \xAB+ `params`\xBB (\xA71). \u0424\u043E\u0440\u043C\u0430\n`params` \u0440\u0430\u0437\u043B\u0438\u0447\u0430\u0435\u0442\u0441\u044F \u043F\u043E \u043C\u0435\u0442\u043E\u0434\u0443: \u0433\u0434\u0435-\u0442\u043E \u043F\u043B\u043E\u0441\u043A\u043E, \u0433\u0434\u0435-\u0442\u043E \u0432\u043B\u043E\u0436\u0435\u043D\u043D\u043E, \u0433\u0434\u0435-\u0442\u043E \u043E\u0431\u0451\u0440\u043D\u0443\u0442\u043E \u0432 `params[\u2026]` \u2014 \u043A\u043E\u043B\u043E\u043D\u043A\u0430\n\xABparams / \u043F\u0430\u0433\u0438\u043D\u0430\u0446\u0438\u044F\xBB \u043F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0435\u0442 \u0442\u043E\u0447\u043D\u0443\u044E \u0444\u043E\u0440\u043C\u0443 (\u043A\u043E\u0434\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 \u0442\u0435\u043B\u0430 \u043C\u043E\u0441\u0442 \u0431\u0435\u0440\u0451\u0442 \u043D\u0430 \u0441\u0435\u0431\u044F).\n\n| \u0418\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442 | \u0427\u0442\u043E \u0434\u0435\u043B\u0430\u0435\u0442 | \u041A\u043B\u044E\u0447\u0435\u0432\u044B\u0435 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u044B | params / \u043F\u0430\u0433\u0438\u043D\u0430\u0446\u0438\u044F |\n|---|---|---|---|\n| `bitrix_help` | \u044D\u0442\u0430 \u0441\u043F\u0440\u0430\u0432\u043A\u0430 | \u2014 | \u2014 |\n| `bitrix_status` | \u043A\u0430\u043A\u0438\u0435 \u043F\u043E\u0440\u0442\u0430\u043B\u044B \u0441\u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u044B \u0438 \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u044B, \u0432\u0435\u0440\u0441\u0438\u0438 \u043C\u043E\u0441\u0442\u0430 \u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u044F; `warning` \u2014 \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0435\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u0435 \u0438\u043B\u0438 \u0440\u0430\u0437\u0440\u043E\u0441\u0448\u0430\u044F\u0441\u044F \u043F\u0430\u043F\u043A\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043E\u043A (\xA75.5) | \u2014 | \u2014 |\n| *\u0417\u0430\u0434\u0430\u0447\u0438* | | | |\n| `bitrix_tasks_list` | \u0441\u043F\u0438\u0441\u043E\u043A \u0437\u0430\u0434\u0430\u0447 | + `params` | \u0432\u0435\u0440\u0445\u043D\u0438\u0439 \u0443\u0440\u043E\u0432\u0435\u043D\u044C: `filter{RESPONSIBLE_ID,REAL_STATUS,GROUP_ID,\u2026}`, `select[]`, `order{}`; **`PAGEN_1`** \u2014 \u043D\u043E\u043C\u0435\u0440 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B (1, 2, 3\u2026), \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430 = 20 \u0437\u0430\u0434\u0430\u0447; `start` **\u043D\u0435 \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442** (\u0432\u0435\u0440\u043D\u0451\u0442 \u0442\u0443 \u0436\u0435 \u043F\u0435\u0440\u0432\u0443\u044E \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443) |\n| `bitrix_task_get` | \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0437\u0430\u0434\u0430\u0447\u0438 (\u0432 \u0442.\u0447. `CHAT_ID`) | `taskId` + `params` | \u0432\u0435\u0440\u0445\u043D\u0438\u0439 \u0443\u0440\u043E\u0432\u0435\u043D\u044C: `select[]` |\n| `bitrix_task_get_v2` | \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0437\u0430\u0434\u0430\u0447\u0438 \u0447\u0435\u0440\u0435\u0437 v2-\u043F\u043E\u0434\u0441\u0438\u0441\u0442\u0435\u043C\u0443 | `taskId` + `params` | \u2014 |\n| `bitrix_task_scrum_info` | \u0441\u043F\u0440\u0438\u043D\u0442 / \u044D\u043F\u0438\u043A / story points \u0437\u0430\u0434\u0430\u0447\u0438 | `taskId` + `params` | \u2014 |\n| `bitrix_task_files` | \u0444\u0430\u0439\u043B\u044B \u0437\u0430\u0434\u0430\u0447\u0438 (\u0441\u0441\u044B\u043B\u043A\u0438 \u0434\u043B\u044F \u0441\u043A\u0430\u0447\u0438\u0432\u0430\u043D\u0438\u044F) | `ids[]` \u2014 id **\u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u0451\u043D\u043D\u044B\u0445 \u043E\u0431\u044A\u0435\u043A\u0442\u043E\u0432** (\xA74), \u043D\u0435 \u0437\u0430\u0434\u0430\u0447 + `params` | `downloadUrl` \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 \u043E\u0442\u043D\u043E\u0441\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0439 \u2014 \u0434\u043E\u043F\u0438\u0448\u0438 origin \u043F\u043E\u0440\u0442\u0430\u043B\u0430 |\n| `bitrix_task_views_count` | \u0441\u043A\u043E\u043B\u044C\u043A\u043E \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u0439 \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u043B\u0438 \u0437\u0430\u0434\u0430\u0447\u0443 | `taskId` + `params` | \u2014 |\n| `bitrix_task_subtasks` / `bitrix_task_related` | \u043F\u043E\u0434\u0437\u0430\u0434\u0430\u0447\u0438 / \u0441\u0432\u044F\u0437\u0430\u043D\u043D\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 | `taskId` + `params` | `navigation{size}` (\u0434\u0435\u0444\u043E\u043B\u0442 10) |\n| `bitrix_task_comments` | \u0441\u0442\u0430\u0440\u044B\u0435 \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 (\u0444\u043E\u0440\u0443\u043C), \xA75.6 | `taskId`, `limit?`, `maxPages?`, `beforeId?`, `output?` | `beforeId` \u2014 \u043A\u0443\u0440\u0441\u043E\u0440 |\n| `bitrix_task_description_set` \u26A0 | **\u0437\u0430\u043C\u0435\u043D\u0438\u0442\u044C** \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0446\u0435\u043B\u0438\u043A\u043E\u043C (`""` \u2014 \u043E\u0447\u0438\u0441\u0442\u0438\u0442\u044C) | `taskId`, `text` (\u2264 100 000) | \u0431\u0435\u0437 `params`; \u0440\u0430\u0437\u043C\u0435\u0442\u043A\u0430 \u2014 BBCode \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u044F (\u043D\u0438\u0436\u0435); \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442\u0441\u044F, \u043E\u0442\u0432\u0435\u0442 `{ taskId, length }` |\n| `bitrix_task_description_append` \u26A0 | **\u0434\u043E\u043F\u0438\u0441\u0430\u0442\u044C** \u0432 \u043A\u043E\u043D\u0435\u0446 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u044F \u0447\u0435\u0440\u0435\u0437 \u043F\u0443\u0441\u0442\u0443\u044E \u0441\u0442\u0440\u043E\u043A\u0443; \u0441\u0442\u0430\u0440\u043E\u0435 (\u0444\u0430\u0439\u043B\u044B `[disk file id=\u2026]`, \u0442\u0430\u0431\u043B\u0438\u0446\u044B) \u043D\u0435 \u0442\u0440\u043E\u0433\u0430\u0435\u0442 | `taskId`, `text` (\u2264 100 000) | \u0431\u0435\u0437 `params`; \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442\u0441\u044F, \u043E\u0442\u0432\u0435\u0442 `{ taskId, length }` |\n| `bitrix_task_description_replace` \u26A0 | **\u0442\u043E\u0447\u0435\u0447\u043D\u0430\u044F \u043F\u0440\u0430\u0432\u043A\u0430** \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u044F: \u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442 `find` \u2192 `replace` (`""` \u2014 \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442), \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u043E\u0435 \u043A\u0430\u043A \u0431\u044B\u043B\u043E | `taskId`, `find`, `replace`, `all?` | \u0431\u0435\u0437 `params`; `find` \u2014 \u0442\u043E\u0447\u043D\u0430\u044F \u043F\u043E\u0434\u0441\u0442\u0440\u043E\u043A\u0430 \u0441\u044B\u0440\u043E\u0433\u043E BBCode (`bitrix_task_get_v2` \u2192 `description`), \u0441 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043E\u043C \u0438 \u043F\u0435\u0440\u0435\u0432\u043E\u0434\u0430\u043C\u0438 \u0441\u0442\u0440\u043E\u043A. \u041D\u0435\u0442 \u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439 \u0438\u043B\u0438 \u0438\u0445 \u0431\u043E\u043B\u044C\u0448\u0435 \u043E\u0434\u043D\u043E\u0433\u043E \u0431\u0435\u0437 `all: true` \u2014 \u043E\u0448\u0438\u0431\u043A\u0430, \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0437\u0430\u043F\u0438\u0441\u0430\u043D\u043E. \u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442\u0441\u044F; \u043E\u0442\u0432\u0435\u0442 `{ taskId, replaced, length }` |\n| `bitrix_task_tags` \u26A0 | \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C / \u0443\u0431\u0440\u0430\u0442\u044C **\u0442\u0435\u0433\u0438** | `taskIds[]` (1\u201350), `add[]?`, `remove[]?` \u2014 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044F, \u0431\u0435\u0437 \u0443\u0447\u0451\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442 (\u043D\u0438\u0436\u0435), \u043F\u043E\u043B\u044F `tags`, `changed` |\n| `bitrix_task_checklist` | **\u0447\u0435\u043A-\u043B\u0438\u0441\u0442** \u0437\u0430\u0434\u0430\u0447\u0438 \u043F\u043B\u043E\u0441\u043A\u0438\u043C \u0441\u043F\u0438\u0441\u043A\u043E\u043C `{ taskId, items: [{ id, parentId, title, done }] }` | `taskId` | \u0431\u0435\u0437 `params`; `parentId: 0` \u2014 \u0433\u0440\u0443\u043F\u043F\u0430, \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u044B\u0435 \u2014 \u043F\u0443\u043D\u043A\u0442\u044B \u0433\u0440\u0443\u043F\u043F\u044B `parentId` |\n| `bitrix_task_checklist_edit` \u26A0 | \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0447\u0435\u043A-\u043B\u0438\u0441\u0442: \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C, \u043F\u0435\u0440\u0435\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u0442\u044C, \u043E\u0442\u043C\u0435\u0442\u0438\u0442\u044C / \u0441\u043D\u044F\u0442\u044C \u043E\u0442\u043C\u0435\u0442\u043A\u0443, \u0443\u0434\u0430\u043B\u0438\u0442\u044C | `taskId`, `add[]?` (\u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044F), `rename[{ itemId, title }]?`, `complete[]?`, `reopen[]?`, `remove[]?` | \u0431\u0435\u0437 `params`; id \u2014 \u0438\u0437 `bitrix_task_checklist`; \u2264 50 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0437\u0430 \u0432\u044B\u0437\u043E\u0432; \u043E\u0442\u0432\u0435\u0442 `{ taskId, added, items }` (\u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u043D) |\n| `bitrix_task_plan` \u26A0 | **\u043F\u043B\u0430\u043D\u0438\u0440\u0443\u0435\u043C\u044B\u0435** \u0434\u0430\u0442\u044B \u043D\u0430\u0447\u0430\u043B\u0430 / \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F | `taskId`, `start?`, `end?` \u2014 \u0434\u0430\u0442\u0430 (\u043D\u0438\u0436\u0435) \u0438\u043B\u0438 `null` (\u043E\u0447\u0438\u0441\u0442\u0438\u0442\u044C) | \u0431\u0435\u0437 `params`; \u0445\u043E\u0442\u044F \u0431\u044B \u043E\u0434\u043D\u0430; \u043D\u0435 \u043F\u0435\u0440\u0435\u0434\u0430\u043D\u043D\u0430\u044F \u043E\u0441\u0442\u0430\u0451\u0442\u0441\u044F \u043A\u0430\u043A \u0435\u0441\u0442\u044C; `start` \u043D\u0435 \u043F\u043E\u0437\u0436\u0435 `end`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, start, end }` |\n| `bitrix_task_priority` \u26A0 | **\u0432\u0430\u0436\u043D\u043E\u0441\u0442\u044C**: `high` \u2014 \xAB\u0412\u0430\u0436\u043D\u0430\u044F \u0437\u0430\u0434\u0430\u0447\u0430\xBB, `average` \u2014 \u043E\u0431\u044B\u0447\u043D\u0430\u044F | `taskIds[]` (1\u201350), `priority` | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u0435 `priority` |\n| `bitrix_task_deadline` \u26A0 | **\u043A\u0440\u0430\u0439\u043D\u0438\u0439 \u0441\u0440\u043E\u043A** | `taskIds[]` (1\u201350), `deadline` \u2014 \u0434\u0430\u0442\u0430 \u0438\u043B\u0438 `null` (\u0443\u0431\u0440\u0430\u0442\u044C), `reason?` (\u043F\u0440\u0438\u0447\u0438\u043D\u0430 \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0430, \u043F\u0440\u043E\u0441\u0442\u043E\u0439 \u0442\u0435\u043A\u0441\u0442 \u2264 1000) | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u0435 `deadline` |\n| `bitrix_task_close` \u26A0 | **\u0437\u0430\u043A\u0440\u044B\u0442\u044C** \u0437\u0430\u0434\u0430\u0447\u0443; Definition of Done \u043D\u0435 \u043E\u0431\u0445\u043E\u0434\u0438\u0442\u0441\u044F \u2014 \u0434\u0432\u0430 \u0448\u0430\u0433\u0430, \xA75.7 | `taskId`; \u0448\u0430\u0433 2 \u2014 \u043F\u043B\u044E\u0441 `typeId`, `confirmItems: true` | \u0431\u0435\u0437 `params`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, status, changed, typeId? }` \u0438\u043B\u0438 `{ taskId, needsConfirmation: true, types }` |\n| `bitrix_task_reopen` \u26A0 | **\u0432\u043E\u0437\u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C** \u0437\u0430\u0432\u0435\u0440\u0448\u0451\u043D\u043D\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 | `taskIds[]` (1\u201350) | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u044F `status`, `changed` |\n| `bitrix_task_result_add` \u26A0 | \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043E\u0434\u0438\u043D \u0438 \u0442\u043E\u0442 \u0436\u0435 **\u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442** \u0437\u0430\u0434\u0430\u0447\u0430\u043C: \u0437\u0430\u043A\u0440\u0435\u043F\u043B\u0451\u043D \u0432 \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0435, \u0430\u043D\u043E\u043D\u0441 \u0432 \u0447\u0430\u0442\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 | `taskIds[]` (1\u201350), `text` (\u2264 20 000) | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442 (\u043D\u0438\u0436\u0435), \u043F\u043E\u043B\u0435 `resultId` |\n| `bitrix_task_file_attach` \u26A0 | \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u0438\u0442\u044C **\u043B\u043E\u043A\u0430\u043B\u044C\u043D\u044B\u0439 \u0444\u0430\u0439\u043B** \u043A \u0437\u0430\u0434\u0430\u0447\u0435, \xA75.8 | `taskId`, `path` (\u0430\u0431\u0441\u043E\u043B\u044E\u0442\u043D\u044B\u0439), `name?` | \u0431\u0435\u0437 `params`; \u0444\u0430\u0439\u043B \u2264 10 \u041C\u0411 \u0443\u0445\u043E\u0434\u0438\u0442 \u043D\u0430 \u0414\u0438\u0441\u043A \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F; \u043E\u0442\u0432\u0435\u0442 `{ taskId, diskFileId, name, size, attachmentId }` |\n| `bitrix_task_mute` \u26A0 | \u0432\u044B\u043A\u043B\u044E\u0447\u0438\u0442\u044C (`true`) / \u0432\u043A\u043B\u044E\u0447\u0438\u0442\u044C (`false`) **\u0441\u0432\u043E\u0438** \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u043F\u043E \u0437\u0430\u0434\u0430\u0447\u0435 | `taskId`, `muted` | \u0431\u0435\u0437 `params`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, muted }` |\n| `bitrix_task_reminders` | \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F \u043F\u043E \u0437\u0430\u0434\u0430\u0447\u0435, \xA75.9 | `taskId` | \u0431\u0435\u0437 `params` |\n| `bitrix_task_reminder_set` \u26A0 | \u043F\u043E\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u043D\u043E\u0432\u043E\u0435 **\u0441\u0432\u043E\u0451** \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 \u0438\u043B\u0438 \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0441\u0432\u043E\u0451 (`reminderId`) | `taskId`, `at` (\u0434\u0430\u0442\u0430 \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043C), `via` (`notification` \\| `email`), `reminderId?` | \u0431\u0435\u0437 `params`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, reminder }` |\n| `bitrix_task_reminder_delete` \u26A0 | \u0443\u0434\u0430\u043B\u0438\u0442\u044C **\u0441\u0432\u043E\u0451** \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 | `taskId`, `reminderId` | \u0431\u0435\u0437 `params`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, reminderId, deleted: true }` |\n| *\u0423\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u0437\u0430\u0434\u0430\u0447* | | | |\n| `bitrix_task_delegate` \u26A0 | **\u0434\u0435\u043B\u0435\u0433\u0438\u0440\u043E\u0432\u0430\u0442\u044C**: `userId` \u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0441\u044F \u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043D\u043D\u044B\u043C | `taskIds[]` (1\u201350), `userId` | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u0435 `responsibleId` (\u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u043D) |\n| `bitrix_task_accomplices` / `bitrix_task_auditors` \u26A0 | \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C / \u0443\u0431\u0440\u0430\u0442\u044C **\u0441\u043E\u0438\u0441\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u0435\u0439** / **\u043D\u0430\u0431\u043B\u044E\u0434\u0430\u0442\u0435\u043B\u0435\u0439** | `taskIds[]` (1\u201350), `add[]?`, `remove[]?` \u2014 userId | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u044F `accomplices` / `auditors` (\u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u043D\u044B), `changed` |\n| `bitrix_user_find` | \u043D\u0430\u0439\u0442\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u0439 \u043F\u043E \u0444\u0430\u043C\u0438\u043B\u0438\u0438 `[{ id, name, lastName, active, workPosition }]` | `lastName` | \u0431\u0435\u0437 `params`; \u0432 \u0432\u044B\u0434\u0430\u0447\u0435 \u0438 **\u043D\u0435\u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0435** (\u0443\u0432\u043E\u043B\u0435\u043D\u043D\u044B\u0435, `active: false`) \u2014 \u043D\u0435 \u043D\u0430\u0437\u043D\u0430\u0447\u0430\u0439 \u0438\u0445 \u043D\u0430 \u0440\u0430\u0431\u043E\u0447\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 |\n| *\u0421\u0432\u044F\u0437\u0438 \u0437\u0430\u0434\u0430\u0447* | | | |\n| `bitrix_task_related_edit` \u26A0 | \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C / \u0443\u0431\u0440\u0430\u0442\u044C **\u0441\u0432\u044F\u0437\u0430\u043D\u043D\u044B\u0435** \u0437\u0430\u0434\u0430\u0447\u0438 (\u0431\u043B\u043E\u043A \xAB\u0421\u0432\u044F\u0437\u0430\u043D\u043D\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438\xBB) | `taskId`, `add[]?`, `remove[]?` \u2014 id \u0437\u0430\u0434\u0430\u0447 | \u0431\u0435\u0437 `params`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, related, changed }`; \u0437\u0430\u0434\u0430\u0447\u0438 \u0441\u043E 100 \u0438 \u0431\u043E\u043B\u0435\u0435 \u0441\u0432\u044F\u0437\u0430\u043D\u043D\u044B\u043C\u0438 \u043D\u0435 \u043F\u0440\u0430\u0432\u044F\u0442\u0441\u044F |\n| `bitrix_task_parent` \u26A0 | \u0441\u0434\u0435\u043B\u0430\u0442\u044C **\u043F\u043E\u0434\u0437\u0430\u0434\u0430\u0447\u0435\u0439** \u0437\u0430\u0434\u0430\u0447\u0438 `parentId`; `null` \u2014 \u043E\u0442\u0432\u044F\u0437\u0430\u0442\u044C \u043E\u0442 \u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044F | `taskId`, `parentId` | \u0431\u0435\u0437 `params`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, parentId, previousParentId, changed }` |\n| `bitrix_task_gantt_link` \u26A0 | \u0441\u0432\u044F\u0437\u044C \u0413\u0430\u043D\u0442\u0430 \xAB\u043E\u043A\u043E\u043D\u0447\u0430\u043D\u0438\u0435 \u2192 \u043D\u0430\u0447\u0430\u043B\u043E\xBB: `dependentId` \u043D\u0430\u0447\u0438\u043D\u0430\u0435\u0442\u0441\u044F \u043F\u043E\u0441\u043B\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F `taskId` | `taskId`, `dependentId`, `remove?` | \u0431\u0435\u0437 `params`; \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u0443\u044E \u0441\u0432\u044F\u0437\u044C \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044C \u043D\u0435\u043B\u044C\u0437\u044F \u2014 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u043F\u043E \u043F\u0440\u0438\u0437\u043D\u0430\u043A\u0443 \xAB\u0443 `dependentId` \u0435\u0441\u0442\u044C \u0441\u0432\u044F\u0437\u0438 \u0413\u0430\u043D\u0442\u0430\xBB: `confirmed: true` \u2014 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u043E, `confirmed: false` + `note` \u2014 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044C \u043D\u0435\u043B\u044C\u0437\u044F (\u0443 \u0437\u0430\u0434\u0430\u0447\u0438 \u0431\u044B\u043B\u0438 / \u043E\u0441\u0442\u0430\u043B\u0438\u0441\u044C \u0434\u0440\u0443\u0433\u0438\u0435 \u0441\u0432\u044F\u0437\u0438); \u043D\u0435\u0442 \u0441\u0432\u044F\u0437\u0435\u0439 \u043F\u043E\u0441\u043B\u0435 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u2014 \u043E\u0448\u0438\u0431\u043A\u0430; \u043F\u043E\u0432\u0442\u043E\u0440 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044E\u0449\u0435\u0439 \u0441\u0432\u044F\u0437\u0438 Bitrix \u043E\u0442\u0432\u0435\u0440\u0433\u0430\u0435\u0442 \u043A\u0430\u043A \xAB\u0446\u0438\u043A\u043B\u0438\u0447\u0435\u0441\u043A\u0443\u044E \u0437\u0430\u0432\u0438\u0441\u0438\u043C\u043E\u0441\u0442\u044C\xBB \u2014 \u0435\u0441\u043B\u0438 \u0443 `dependentId` \u0443\u0436\u0435 \u0431\u044B\u043B\u0438 \u0441\u0432\u044F\u0437\u0438, \u043E\u0448\u0438\u0431\u043A\u0430 \u0441\u043A\u0430\u0436\u0435\u0442, \u0447\u0442\u043E \u044D\u0442\u0430 \u0441\u0432\u044F\u0437\u044C, \u0441\u043A\u043E\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043E, \u0443\u0436\u0435 \u0435\u0441\u0442\u044C (\u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0437\u0430\u043F\u0438\u0441\u0430\u043D\u043E, \u043D\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u0439); \u043E\u0442\u0432\u0435\u0442 `{ taskId, dependentId, linked, confirmed, note? }` |\n| *Scrum* | | | |\n| `bitrix_sprint_columns` | \u043A\u043E\u043B\u043E\u043D\u043A\u0438 \u0434\u043E\u0441\u043A\u0438 **\u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0433\u043E** \u0441\u043F\u0440\u0438\u043D\u0442\u0430 `[{ id, name, type }]` | `groupId` (= `GROUP_ID` \u0437\u0430\u0434\u0430\u0447\u0438) | \u0431\u0435\u0437 `params`; `type` \u2014 `NEW`/`WORK`/`FINISH`, \u0443 \u0441\u0432\u043E\u0438\u0445 \u043A\u043E\u043B\u043E\u043D\u043E\u043A \u043F\u0443\u0441\u0442\u043E\u0439; \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0443 `FINISH` \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 \u043D\u0435 \u0441\u0442\u0430\u0432\u044F\u0442 |\n| `bitrix_task_move` \u26A0 | \u043F\u0435\u0440\u0435\u043D\u0435\u0441\u0442\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u0441\u043F\u0440\u0438\u043D\u0442\u0430 | `taskIds[]` (1\u201350), `column` (id \u0438\u043B\u0438 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435, \u0431\u0435\u0437 \u0443\u0447\u0451\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430) | \u0431\u0435\u0437 `params`; \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u0442\u0438\u043F\u0430 `FINISH` \u0443\u043A\u0430\u0437\u0430\u0442\u044C \u043D\u0435\u043B\u044C\u0437\u044F \u2014 \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0439 \u0447\u0435\u0440\u0435\u0437 `bitrix_task_close`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442 (\u043D\u0438\u0436\u0435), \u043F\u043E\u043B\u044F `stageId`, `column`, `status` \u2014 \u043F\u0435\u0440\u0435\u043D\u043E\u0441 \u043C\u043E\u0436\u0435\u0442 \u043F\u0435\u0440\u0435\u043E\u0442\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u043A\u0440\u044B\u0442\u0443\u044E \u0437\u0430\u0434\u0430\u0447\u0443 |\n| `bitrix_task_to_sprint` \u26A0 | \u043F\u043E\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0438 \u043D\u0430 \u0434\u043E\u0441\u043A\u0443 **\u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0433\u043E** \u0441\u043F\u0440\u0438\u043D\u0442\u0430: \u0438\u0437 \u0431\u044D\u043A\u043B\u043E\u0433\u0430 \u2014 \u0432 \u0441\u043F\u0440\u0438\u043D\u0442 \u0438 \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0443, \u0443\u0436\u0435 \u0441\u0442\u043E\u044F\u0449\u0438\u0435 \u0432 \u043D\u0451\u043C \u2014 \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0443 | `taskIds[]` (1\u201350), `column?` (\u0431\u0435\u0437 \u043D\u0435\u0433\u043E \u2014 \u043A\u043E\u043B\u043E\u043D\u043A\u0430 \u0442\u0438\u043F\u0430 `NEW`) | \u0431\u0435\u0437 `params`; \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u0442\u0438\u043F\u0430 `FINISH` \u0443\u043A\u0430\u0437\u0430\u0442\u044C \u043D\u0435\u043B\u044C\u0437\u044F \u2014 \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0439 \u0447\u0435\u0440\u0435\u0437 `bitrix_task_close`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u044F `sprintId`, `stageId`, `column`, `status`, `fromBacklog`; \u0437\u0430\u0434\u0430\u0447\u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u043F\u0440\u0438\u043D\u0442\u043E\u0432 \u2014 \u043E\u0448\u0438\u0431\u043A\u0430 |\n| `bitrix_task_to_backlog` \u26A0 | \u0432\u0435\u0440\u043D\u0443\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 **\u0431\u044D\u043A\u043B\u043E\u0433** \u043F\u0440\u043E\u0435\u043A\u0442\u0430 \u0438 \u0443\u0431\u0440\u0430\u0442\u044C \u0438\u0437 \u043A\u043E\u043B\u043E\u043D\u043A\u0438 \u0441\u043F\u0440\u0438\u043D\u0442\u0430 (\u0441\u0442\u0430\u0440\u0442\u043E\u0432\u0430\u044F \u0441\u0442\u0430\u0434\u0438\u044F \u043A\u0430\u043D\u0431\u0430\u043D\u0430 \u043F\u0440\u043E\u0435\u043A\u0442\u0430, \u043A\u0430\u043A \u0432 UI); \u0437\u0430\u0434\u0430\u0447\u0443, \u043A\u043E\u0442\u043E\u0440\u0430\u044F \u0443\u0436\u0435 \u0432 \u0431\u044D\u043A\u043B\u043E\u0433\u0435, \u043D\u043E \u0447\u0438\u0441\u043B\u0438\u0442\u0441\u044F \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0435 \u0441\u043F\u0440\u0438\u043D\u0442\u0430, \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u0435\u0440\u0435\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u0442 | `taskIds[]` (1\u201350) | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u044F `backlogId`, `stageId`, `changed` |\n| `bitrix_task_create` \u26A0 | **\u0441\u043E\u0437\u0434\u0430\u0442\u044C** \u0437\u0430\u0434\u0430\u0447\u0443 \u0441\u0440\u0430\u0437\u0443 \u043D\u0430 \u0434\u043E\u0441\u043A\u0435 \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0433\u043E \u0441\u043F\u0440\u0438\u043D\u0442\u0430, \u043A\u0430\u043A \xAB+\xBB \u043D\u0430 \u0434\u043E\u0441\u043A\u0435 | `groupId`, `title` (\u2264 255, \u043F\u0440\u043E\u0441\u0442\u043E\u0439 \u0442\u0435\u043A\u0441\u0442), `column?` (\u0431\u0435\u0437 \u043D\u0435\u0433\u043E \u2014 \u043A\u043E\u043B\u043E\u043D\u043A\u0430 \u0442\u0438\u043F\u0430 `NEW`) | \u0431\u0435\u0437 `params`; \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u0442\u0438\u043F\u0430 `FINISH` \u0443\u043A\u0430\u0437\u0430\u0442\u044C \u043D\u0435\u043B\u044C\u0437\u044F; \u043E\u0442\u0432\u0435\u0442 `{ taskId, sprintId, stageId, column }`; \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u044B\u0435 \u043F\u043E\u043B\u044F \u2014 \u043F\u043E\u0442\u043E\u043C \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u044B\u043C\u0438 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F\u043C\u0438 |\n| *\u041F\u0440\u043E\u0435\u043A\u0442\u044B* | | | |\n| `bitrix_projects_list` | \u0440\u0430\u0431\u043E\u0447\u0438\u0435 \u0433\u0440\u0443\u043F\u043F\u044B / \u043F\u0440\u043E\u0435\u043A\u0442\u044B | + `params` | \u0432\u0435\u0440\u0445\u043D\u0438\u0439 \u0443\u0440\u043E\u0432\u0435\u043D\u044C: `select[]`, `order{}`, `filter{}`; `start` (\u0448\u0430\u0433 50; `start=(N-1)*50`, `-1` \u2014 \u043E\u0442\u0432\u0435\u0442 \u0431\u0435\u0437 `total`) \u{1F4D6} |\n| `bitrix_project_get` | \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0433\u0440\u0443\u043F\u043F\u044B (\u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438, `CHAT_ID`) | `groupId` + `params` | **\u043E\u0431\u0451\u0440\u043D\u0443\u0442\u043E**: `params[groupId]`, `params[select][]` |\n| *\u0427\u0430\u0442\u044B* | | | |\n| `bitrix_chats_recent` | \u043D\u0435\u0434\u0430\u0432\u043D\u0438\u0435 \u0434\u0438\u0430\u043B\u043E\u0433\u0438 (\u0431\u0435\u0437 \u0447\u0430\u0442\u043E\u0432 \u0437\u0430\u0434\u0430\u0447) | + `params` | \u043F\u043B\u043E\u0441\u043A\u043E: `LIMIT`, `SKIP_OPENLINES`, `UNREAD_ONLY` |\n| `bitrix_recent_load` | \u043D\u0435\u0434\u0430\u0432\u043D\u0438\u0435 \u043F\u043E \u0441\u0435\u043A\u0446\u0438\u0438 (`tasksTask` \u2014 \u0447\u0430\u0442\u044B \u0437\u0430\u0434\u0430\u0447) | `section?`, `limit?`, `unread?`, `parentId?` + `params` | \u0434\u0430\u043B\u044C\u0448\u0435 \u2014 `bitrix_recent_tail` |\n| `bitrix_recent_tail` | \u043B\u0438\u0441\u0442\u0430\u0442\u044C \u043D\u0435\u0434\u0430\u0432\u043D\u0438\u0435 \u0432\u0433\u043B\u0443\u0431\u044C | `lastMessageDate` (\u043A\u0443\u0440\u0441\u043E\u0440), `section?`, `limit?`, `unread?` + `params` | `lastMessageDate` |\n| `bitrix_chat_load` | \u043E\u0442\u043A\u0440\u044B\u0442\u044C \u0447\u0430\u0442, \u043F\u0435\u0440\u0432\u044B\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F, \u0447\u0438\u0441\u043B\u043E\u0432\u043E\u0439 `chatId` | `dialogId` \\| `chatId`, `messageLimit?` + `params` | \u2014 |\n| `bitrix_chat_get_dialog_id` | `externalId` \u2192 `dialogId` (\u043D\u0430\u043F\u0440. `"sg"+groupId`) | `externalId` + `params` | \u2014 |\n| `bitrix_chat_messages` | \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u0447\u0430\u0442\u0430 | `chatId`, `limit?` + `params` | \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u044F\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430 \u2014 \u043D\u0430\u0437\u0430\u0434 **\u043D\u0435 \u043B\u0438\u0441\u0442\u0430\u0435\u0442**, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439 `bitrix_chat_history` |\n| `bitrix_chat_history` | \u043B\u0438\u0441\u0442\u0430\u0442\u044C \u0438\u0441\u0442\u043E\u0440\u0438\u044E \u0447\u0430\u0442\u0430 \u0432\u0433\u043B\u0443\u0431\u044C | `chatId`, `beforeId?`, `limit?` + `params` | `beforeId` (\xA75.1) |\n| `bitrix_chat_mark_read` \u26A0 | \u043F\u043E\u043C\u0435\u0442\u0438\u0442\u044C \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u043C\u0438 | `chatId`, `ids[]`, `actionUuid?` + `params` | \u2014 |\n| `bitrix_chat_read_all` \u26A0 | \u043F\u043E\u043C\u0435\u0442\u0438\u0442\u044C **\u0432\u0441\u0435** \u0447\u0430\u0442\u044B \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u043C\u0438 | + `params` | \u2014 |\n| `bitrix_chat_send` \u26A0 | \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 (\u0432\u0438\u0434\u044F\u0442 \u0432\u0441\u0435 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u0447\u0430\u0442\u0430) | `chatId` \\| `dialogId` (\u0440\u043E\u0432\u043D\u043E \u043E\u0434\u043D\u043E), `text` (\u2264 20 000), `replyTo?` (id \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u044D\u0442\u043E\u0433\u043E \u0447\u0430\u0442\u0430 \u2014 \u043E\u0442\u0432\u0435\u0442 \u043D\u0430 \u043D\u0435\u0433\u043E) | \u0431\u0435\u0437 `params`; \u0440\u0430\u0437\u043C\u0435\u0442\u043A\u0430 \u2014 \u043F\u043E\u0434\u043C\u043D\u043E\u0436\u0435\u0441\u0442\u0432\u043E \u0447\u0430\u0442\u0430 (\u043D\u0438\u0436\u0435); \u043E\u0442\u0432\u0435\u0442 `{ chatId?, dialogId, messageId }` |\n| `bitrix_chat_message_edit` \u26A0 | \u0437\u0430\u043C\u0435\u043D\u0438\u0442\u044C \u0442\u0435\u043A\u0441\u0442 **\u0441\u0432\u043E\u0435\u0433\u043E** \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u0446\u0435\u043B\u0438\u043A\u043E\u043C | `messageId`, `text` (\u2264 20 000, \u043D\u0435 \u043F\u0443\u0441\u0442\u043E\u0439) | \u0431\u0435\u0437 `params`; \u0447\u0443\u0436\u043E\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 Bitrix \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u043D\u0435 \u0434\u0430\u0441\u0442 \u2014 \u043E\u0448\u0438\u0431\u043A\u0430 |\n| `bitrix_chat_reaction` \u26A0 | \u043F\u043E\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0440\u0435\u0430\u043A\u0446\u0438\u044E \u043D\u0430 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 | `messageId`, `reaction` (\u043B\u0430\u0442\u0438\u043D\u0438\u0446\u0430; \u043F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u044B `like` \u{1F44D}, `whiteHeavyCheckMark` \u2705) | \u0431\u0435\u0437 `params`; \u0434\u0440\u0443\u0433\u0438\u0435 \u0438\u043C\u0435\u043D\u0430 \u0443\u0445\u043E\u0434\u044F\u0442 \u043A\u0430\u043A \u0435\u0441\u0442\u044C, \u0431\u0435\u0437 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438 |\n| `bitrix_task_chat_post` \u26A0 | \u043E\u0434\u043D\u043E \u0438 \u0442\u043E \u0436\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u0432 **\u0447\u0430\u0442\u044B \u0437\u0430\u0434\u0430\u0447** (\u0447\u0430\u0442 \u043A\u0430\u0436\u0434\u043E\u0439 \u2014 \u043F\u043E \u0435\u0451 `CHAT_ID`) | `taskIds[]` (1\u201350), `text` (\u2264 20 000) | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u044F `chatId`, `messageId`; \u0437\u0430\u0434\u0430\u0447\u0430 \u0431\u0435\u0437 \u0447\u0430\u0442\u0430 \u2014 \u043E\u0448\u0438\u0431\u043A\u0430 \u044D\u0442\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 |\n| *\u041B\u044E\u0434\u0438 / \u043F\u043E\u0438\u0441\u043A* | | | |\n| `bitrix_user_get` | \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043C\u0435\u0441\u0441\u0435\u043D\u0434\u0436\u0435\u0440\u0430 | `userId` + `params` | \u2014 |\n| `bitrix_entity_search` | \u0442\u0435\u043A\u0441\u0442\u043E\u0432\u044B\u0439 \u043F\u043E\u0438\u0441\u043A \u0447\u0430\u0442\u043E\u0432 / \u043B\u044E\u0434\u0435\u0439 | `query`, `section?`, `dialog?` + `params` | \u2014 |\n| `bitrix_entity_selector` | \u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0430 entityselector \u0441\u043E \u0441\u0432\u043E\u0438\u043C `dialog` | `dialog` + `params` | `{"dialog":{entities,preselectedItems,\u2026}}` |\n| `bitrix_entity_chat` | `chatId` \u0447\u0430\u0442\u0430, \u043F\u0440\u0438\u0432\u044F\u0437\u0430\u043D\u043D\u043E\u0433\u043E \u043A \u043E\u0431\u044A\u0435\u043A\u0442\u0443 | `entityType`, `entityId` + `params` | \u2014 |\n| *\u0421\u043E\u0437\u0432\u043E\u043D\u044B \u0438 \u0444\u0430\u0439\u043B\u044B* | | | |\n| `bitrix_chat_calls` | \u0437\u0432\u043E\u043D\u043A\u0438 \u0432 \u0447\u0430\u0442\u0435 (`callId` + \u0440\u0435\u0437\u044E\u043C\u0435), \xA75.4 | `chatId`, `limit?`, `maxPages?`, `beforeId?` + `params` | `beforeId` \u2014 \u043A\u0443\u0440\u0441\u043E\u0440 |\n| `bitrix_call_detail` | \u0432\u0441\u0451 \u043F\u043E \u0437\u0432\u043E\u043D\u043A\u0443, \xA75.4 | `callId`, `transcript?` + `params` | \u2014 |\n| `bitrix_call_recording` | \u0441\u043A\u0430\u0447\u0430\u0442\u044C \u0430\u0443\u0434\u0438\u043E\u0437\u0430\u043F\u0438\u0441\u044C \u0437\u0432\u043E\u043D\u043A\u0430, \xA75.5 | `callId`, `savePath?`, `overwrite?` | \u2014 |\n| `bitrix_file_download` | \u0441\u043A\u0430\u0447\u0430\u0442\u044C \u0444\u0430\u0439\u043B \u043F\u043E\u0440\u0442\u0430\u043B\u0430 \u043D\u0430 \u0434\u0438\u0441\u043A, \xA75.5 | `url`, `savePath?`, `overwrite?` | \u2014 |\n\n**\u041C\u0443\u0442\u0438\u0440\u0443\u044E\u0449\u0438\u0435 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438** (\u26A0) \u2014 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u044B:\n\n- \u0437\u0430\u0434\u0430\u0447\u0438: `bitrix_task_description_set`, `bitrix_task_description_append`,\n `bitrix_task_description_replace`, `bitrix_task_tags`, `bitrix_task_checklist_edit`, `bitrix_task_plan`,\n `bitrix_task_priority`, `bitrix_task_deadline`, `bitrix_task_close`, `bitrix_task_reopen`,\n `bitrix_task_result_add`, `bitrix_task_file_attach`, `bitrix_task_mute`, `bitrix_task_reminder_set`,\n `bitrix_task_reminder_delete`;\n- \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438: `bitrix_task_delegate`, `bitrix_task_accomplices`, `bitrix_task_auditors`;\n- \u0441\u0432\u044F\u0437\u0438: `bitrix_task_related_edit`, `bitrix_task_parent`, `bitrix_task_gantt_link`;\n- scrum: `bitrix_task_move`, `bitrix_task_to_sprint`, `bitrix_task_to_backlog`, `bitrix_task_create`;\n- \u0447\u0430\u0442\u044B: `bitrix_chat_send`, `bitrix_chat_message_edit`, `bitrix_chat_reaction`, `bitrix_task_chat_post`,\n `bitrix_chat_mark_read`, `bitrix_chat_read_all`.\n\n\u0412\u044B\u043A\u043B\u044E\u0447\u0430\u0435\u0442 \u0438\u0445 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C (\u0430\u0433\u0435\u043D\u0442\u0443 \u044D\u0442\u043E \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u043E): `"mutations": false` \u0432 `config.json` \u043C\u043E\u0441\u0442\u0430, env\n`BITRIX_MCP_MUTATIONS=off` \u0443 \u043F\u0440\u043E\u0446\u0435\u0441\u0441\u0430 daemon (\u043F\u0435\u0440\u0435\u043A\u0440\u044B\u0432\u0430\u0435\u0442 `config.json`) \u0438\u043B\u0438 `setup` \u2192 `[m]`. \u0422\u0435\u043A\u0443\u0449\u0435\u0435\n\u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u2014 `bitrix_status` \u2192 `mutations`; \u0432\u044B\u043A\u043B\u044E\u0447\u0435\u043D\u043D\u0430\u044F \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F \u043E\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u043E\u0448\u0438\u0431\u043A\u043E\u0439 \u0438\u0437 \xA71 \u0438 \u0432 Bitrix24 \u043D\u0435\n\u0443\u0445\u043E\u0434\u0438\u0442. `bitrix_task_comments` \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u043F\u043E\u043C\u0435\u0447\u0430\u0435\u0442 \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u043C \u0438 \u043C\u0443\u0442\u0438\u0440\u0443\u044E\u0449\u0438\u043C \u043D\u0435 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044F.\n\n**\u041A\u0430\u0436\u0434\u0430\u044F \u043C\u0443\u0442\u0430\u0446\u0438\u044F \u2014 \u043E\u0442 \u0438\u043C\u0435\u043D\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F, \u0441\u0440\u0430\u0437\u0443 \u0438 \u0431\u0435\u0437 \u043E\u0442\u043C\u0435\u043D\u044B.** \u0414\u0435\u043B\u0430\u0439 \u0442\u043E\u043B\u044C\u043A\u043E \u0442\u043E, \u043E \u0447\u0451\u043C \u043E\u043D \u043F\u0440\u043E\u0441\u0438\u043B; \u0435\u0441\u043B\u0438\n\u043F\u0440\u043E\u0441\u044C\u0431\u0430 \u0448\u0438\u0440\u0435 \u0438\u043B\u0438 \u043D\u0435\u043E\u0434\u043D\u043E\u0437\u043D\u0430\u0447\u043D\u0430 (\u043A\u043E\u0433\u043E \u043D\u0430\u0437\u043D\u0430\u0447\u0438\u0442\u044C, \u043A\u0430\u043A\u0443\u044E \u0437\u0430\u0434\u0430\u0447\u0443 \u0437\u0430\u043A\u0440\u044B\u0442\u044C, \u043A\u0430\u043A\u043E\u0439 \u0444\u0430\u0439\u043B \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C) \u2014 \u0441\u043D\u0430\u0447\u0430\u043B\u0430\n\u0441\u043F\u0440\u043E\u0441\u0438. \u0423\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0435, \u0443\u0448\u0435\u0434\u0448\u0435\u0435 \u0447\u0435\u043B\u043E\u0432\u0435\u043A\u0443, \u043D\u0435 \u043E\u0442\u0437\u044B\u0432\u0430\u0435\u0442\u0441\u044F.\n\n**\u041F\u0430\u043A\u0435\u0442\u043D\u044B\u0435 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438** (`taskIds[]`, 1\u201350 id \u0431\u0435\u0437 \u043F\u043E\u0432\u0442\u043E\u0440\u043E\u0432: `bitrix_task_tags`, `bitrix_task_priority`,\n`bitrix_task_deadline`, `bitrix_task_reopen`, `bitrix_task_result_add`, `bitrix_task_delegate`,\n`bitrix_task_accomplices`, `bitrix_task_auditors`, `bitrix_task_move`, `bitrix_task_to_sprint`,\n`bitrix_task_to_backlog`, `bitrix_task_chat_post`) \u043E\u0431\u0440\u0430\u0431\u0430\u0442\u044B\u0432\u0430\u044E\u0442 \u0437\u0430\u0434\u0430\u0447\u0438 \u043F\u043E \u043E\u0447\u0435\u0440\u0435\u0434\u0438 \u0438 \u043E\u0442\u0432\u0435\u0447\u0430\u044E\u0442\n`{ results: [{ taskId, ok, error?, \u2026\u043F\u043E\u043B\u044F \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 }] }` \u0432 \u043F\u043E\u0440\u044F\u0434\u043A\u0435 `taskIds`. \u041E\u0448\u0438\u0431\u043A\u0430 \u043E\u0434\u043D\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438\n(`ok: false`, \u0442\u0435\u043A\u0441\u0442 \u0432 `error`) \u043D\u0435 \u043E\u0441\u0442\u0430\u043D\u0430\u0432\u043B\u0438\u0432\u0430\u0435\u0442 \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u044B\u0435 \u2014 \u043F\u0440\u043E\u0432\u0435\u0440\u044F\u0439 `ok` \u0443 \u043A\u0430\u0436\u0434\u043E\u0439. \u0421\u0430\u043C\u0430 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F\n\u043F\u0430\u0434\u0430\u0435\u0442 \u0446\u0435\u043B\u0438\u043A\u043E\u043C \u0442\u043E\u043B\u044C\u043A\u043E \u043D\u0430 \u043D\u0435\u0432\u0435\u0440\u043D\u044B\u0445 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u0430\u0445 (\u0438 \u043D\u0430 \u043A\u043E\u043B\u043E\u043D\u043A\u0435 \u0442\u0438\u043F\u0430 `FINISH` \u0443 `bitrix_task_move` /\n`_to_sprint` \u2014 \u0442\u043E\u0433\u0434\u0430 \u043D\u0435 \u0442\u0440\u043E\u043D\u0443\u0442\u0430 \u043D\u0438 \u043E\u0434\u043D\u0430 \u0437\u0430\u0434\u0430\u0447\u0430). \u0411\u043B\u0438\u0436\u0435 \u043A \u043A\u043E\u043D\u0446\u0443 \u043E\u0442\u0432\u0435\u0434\u0451\u043D\u043D\u043E\u0433\u043E \u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u043F\u0430\u043A\u0435\u0442 \u043F\u0435\u0440\u0435\u0441\u0442\u0430\u0451\u0442\n\u043D\u0430\u0447\u0438\u043D\u0430\u0442\u044C \u043D\u043E\u0432\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438: \u043E\u043D\u0438 \u043F\u0440\u0438\u0445\u043E\u0434\u044F\u0442 \u0441 `ok: false` \u0438 \xAB\u043D\u0435 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043E: \u0438\u0441\u0442\u0435\u043A\u043B\u043E \u0432\u0440\u0435\u043C\u044F \u043F\u0430\u043A\u0435\u0442\u0430\u2026\xBB \u2014 \u043F\u043E\u0432\u0442\u043E\u0440\u0438\n\u0442\u043E\u043B\u044C\u043A\u043E \u0438\u0445, \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0432 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435. \u0420\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u044B \u0438 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u043D\u0435\u0438\u0434\u0435\u043C\u043F\u043E\u0442\u0435\u043D\u0442\u043D\u044B: \u043F\u043E\u0432\u0442\u043E\u0440 \u0441\u043E\u0437\u0434\u0430\u0441\u0442 \u0434\u0443\u0431\u043B\u044C.\n\n**\u041E\u0448\u0438\u0431\u043A\u0430 \u043F\u043E\u0441\u043B\u0435 \u0437\u0430\u043F\u0438\u0441\u0438 \u2014 \u043D\u0435 \u043F\u043E\u0432\u043E\u0434 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u0442\u044C \u0432\u0441\u043B\u0435\u043F\u0443\u044E.** \u0411\u043E\u043B\u044C\u0448\u0438\u043D\u0441\u0442\u0432\u043E \u043C\u0443\u0442\u0430\u0446\u0438\u0439 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u044E\u0442 \u0442\u043E, \u0447\u0442\u043E\n\u0437\u0430\u043F\u0438\u0441\u0430\u043B\u0438, \u0438 \u043F\u043E \u0442\u0435\u043A\u0441\u0442\u0443 \u043E\u0448\u0438\u0431\u043A\u0438 \u0432\u0438\u0434\u043D\u043E, \u0447\u0442\u043E \u0441\u043B\u0443\u0447\u0438\u043B\u043E\u0441\u044C:\n\n- \xAB\u2026\u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043E / \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0437\u0430\u043F\u0438\u0441\u0430\u043D\u043E / \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0443\u0434\u0430\u043B\u0435\u043D\u043E\xBB, \u043E\u0448\u0438\u0431\u043A\u0438 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u043E\u0432\n (`invalid arguments\u2026`) \u2014 \u0437\u0430\u043F\u0440\u043E\u0441\u0430 \u043D\u0430 \u0437\u0430\u043F\u0438\u0441\u044C \u043D\u0435 \u0431\u044B\u043B\u043E; \u043F\u043E\u043F\u0440\u0430\u0432\u044C \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u044B \u0438 \u0432\u044B\u0437\u044B\u0432\u0430\u0439 \u0441\u043D\u043E\u0432\u0430.\n- \xAB\u0437\u0430\u043F\u0438\u0441\u044C \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0430, \u043D\u043E \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0442\u044C \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C (\u043F\u0440\u043E\u0432\u0435\u0440\u044C \u0447\u0435\u0440\u0435\u0437 \u2026)\xBB \u0438 \u0435\u0433\u043E \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u044B (\xAB\u043F\u0435\u0440\u0435\u043D\u043E\u0441 /\n \u0434\u0435\u043B\u0435\u0433\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 / \u0437\u0430\u043A\u0440\u044B\u0442\u0438\u0435 / \u0432\u043E\u0437\u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u043E, \u043D\u043E \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C\xBB) \u2014 \u0437\u0430\u043F\u0438\u0441\u044C \u0443\u0448\u043B\u0430,\n \u0430 \u0438\u0442\u043E\u0433 \u043D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043D: \u043F\u0440\u043E\u0432\u0435\u0440\u044C \u043D\u0430\u0437\u0432\u0430\u043D\u043D\u044B\u043C \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u043C, \u043D\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u0439.\n- \xAB\u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u043C\u043E\u0433\u043B\u043E \u0443\u0439\u0442\u0438\xBB, \xAB\u0437\u0430\u0434\u0430\u0447\u0430 \u043C\u043E\u0433\u043B\u0430 \u0441\u043E\u0437\u0434\u0430\u0442\u044C\u0441\u044F\xBB, \xAB\u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442 \u043C\u043E\u0433 \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C\u0441\u044F\xBB, \xAB\u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u043C\u043E\u0433\u043B\u043E\n \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C\u0441\u044F\xBB, \xAB\u0444\u0430\u0439\u043B \u043C\u043E\u0433 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C\u0441\u044F \u043D\u0430 \u0414\u0438\u0441\u043A\xBB, \xAB\u0432\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u043C\u043E\u0433\u043B\u043E \u0441\u043E\u0437\u0434\u0430\u0442\u044C\u0441\u044F\xBB, \xAB\u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 \u043C\u043E\u0433\u043B\u043E \u0441\u043E\u0437\u0434\u0430\u0442\u044C\u0441\u044F\xBB \u2014\n \u043F\u043E\u0440\u0442\u0430\u043B \u043C\u043E\u0433 \u0432\u0441\u0451 \u0441\u0434\u0435\u043B\u0430\u0442\u044C, \u043D\u043E \u043E\u0442\u0432\u0435\u0442\u0430 \u043D\u0435 \u0434\u0430\u043B (\u0442\u0430\u0439\u043C\u0430\u0443\u0442, \u043D\u0435\u043E\u0436\u0438\u0434\u0430\u043D\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442): \u0441\u043D\u0430\u0447\u0430\u043B\u0430 \u043F\u0440\u043E\u0432\u0435\u0440\u044C (\u0447\u0430\u0442, \u0434\u043E\u0441\u043A\u0430\n \u0441\u043F\u0440\u0438\u043D\u0442\u0430, \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0437\u0430\u0434\u0430\u0447\u0438, `bitrix_task_get_v2`, \u0414\u0438\u0441\u043A, \u0444\u0430\u0439\u043B\u044B \u0437\u0430\u0434\u0430\u0447\u0438, `bitrix_task_reminders`), \u043F\u043E\u0432\u0442\u043E\u0440 \u0431\u0435\u0437\n \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438 \u0441\u043E\u0437\u0434\u0430\u0441\u0442 \u0434\u0443\u0431\u043B\u044C (\u0430 `bitrix_task_description_append` \u0434\u043E\u043F\u0438\u0448\u0435\u0442 \u0442\u0435\u043A\u0441\u0442 \u0432\u0442\u043E\u0440\u043E\u0439 \u0440\u0430\u0437).\n- \xABBitrix \u043E\u0442\u0432\u0435\u0442\u0438\u043B \u0443\u0441\u043F\u0435\u0445\u043E\u043C, \u043D\u043E \u2026\xBB, \xABBitrix \u043D\u0435 \u043F\u0440\u0438\u043C\u0435\u043D\u0438\u043B: \u2026\xBB \u2014 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u043D\u043D\u043E\u0435 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u043D\u0435 \u0442\u043E, \u0447\u0442\u043E \u043F\u0440\u043E\u0441\u0438\u043B\u0438; \u0432\n \u043E\u0448\u0438\u0431\u043A\u0435 \u2014 \u043A\u0430\u043A \u0441\u0435\u0439\u0447\u0430\u0441. \u041D\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u0439 \u0442\u043E\u0442 \u0436\u0435 \u0432\u044B\u0437\u043E\u0432 \u0432\u0441\u043B\u0435\u043F\u0443\u044E \u2014 \u0441\u043A\u0430\u0436\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E.\n- \u041C\u043D\u043E\u0433\u043E\u0448\u0430\u0433\u043E\u0432\u044B\u0435 \u043F\u0440\u0430\u0432\u043A\u0438 \u043D\u0430\u0437\u044B\u0432\u0430\u044E\u0442, \u0447\u0442\u043E \u0443\u0436\u0435 \u0441\u0434\u0435\u043B\u0430\u043D\u043E: `bitrix_task_checklist_edit` \u2014 \xAB\u0434\u043E \u044D\u0442\u043E\u0433\u043E \u0441\u0434\u0435\u043B\u0430\u043D\u043E: \u2026\xBB\n (\u043D\u0430 \u0438\u0441\u0445\u043E\u0434\u0435 \u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u0432\u044B\u0437\u043E\u0432\u0430 \u2014 \u0435\u0449\u0451 \u0438 \xAB\u0438\u0441\u0442\u0435\u043A\u043B\u043E \u0432\u0440\u0435\u043C\u044F \u0432\u044B\u0437\u043E\u0432\u0430, \u043D\u0435 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043E: \u2026\xBB: \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0439 \u0447\u0435\u043A-\u043B\u0438\u0441\u0442 \u0438 \u043F\u043E\u0432\u0442\u043E\u0440\u0438 \u0442\u043E\u043B\u044C\u043A\u043E \u044D\u0442\u043E),\n `bitrix_task_parent` \u2014 \u043F\u0440\u0435\u0436\u043D\u0435\u0433\u043E \u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044F \u0438 \u0432\u044B\u0437\u043E\u0432, \u043A\u043E\u0442\u043E\u0440\u044B\u043C \u0435\u0433\u043E \u0432\u0435\u0440\u043D\u0443\u0442\u044C, `bitrix_task_to_sprint` \u2014 \xAB\u0432\u0435\u0440\u043D\u0438\n \u0435\u0451 \u0432 \u0431\u044D\u043A\u043B\u043E\u0433 (`bitrix_task_to_backlog`) \u0438 \u043F\u043E\u0432\u0442\u043E\u0440\u0438\xBB.\n\n**\u0421\u043F\u0438\u0441\u043A\u0438 \u0446\u0435\u043B\u0438\u043A\u043E\u043C.** \u0421\u043E\u0438\u0441\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u0435\u0439, \u043D\u0430\u0431\u043B\u044E\u0434\u0430\u0442\u0435\u043B\u0435\u0439, \u0442\u0435\u0433\u0438 \u0438 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 Bitrix \u0445\u0440\u0430\u043D\u0438\u0442 \u0438 \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0438\u0441\u044B\u0432\u0430\u0435\u0442\n\u0446\u0435\u043B\u0438\u043A\u043E\u043C, \u043F\u043E\u044D\u0442\u043E\u043C\u0443 `bitrix_task_accomplices`, `bitrix_task_auditors`, `bitrix_task_tags`,\n`bitrix_task_description_append` / `_replace` \u0441\u0430\u043C\u0438 \u0447\u0438\u0442\u0430\u044E\u0442 \u0442\u0435\u043A\u0443\u0449\u0435\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 **\u043A\u0430\u0436\u0434\u043E\u0439** \u0437\u0430\u0434\u0430\u0447\u0438, \u043C\u0435\u043D\u044F\u044E\u0442 \u0432 \u043D\u0451\u043C\n\u0442\u043E\u043B\u044C\u043A\u043E \u043D\u0430\u0437\u0432\u0430\u043D\u043D\u043E\u0435 \u0438 \u0437\u0430\u043F\u0438\u0441\u044B\u0432\u0430\u044E\u0442 \u043E\u0431\u0440\u0430\u0442\u043D\u043E; \u0435\u0441\u043B\u0438 \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044C \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u2014 \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u043F\u0438\u0448\u0443\u0442. \u041F\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0439 \u0442\u043E\u043B\u044C\u043A\u043E\n`add` / `remove` (\u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442, \u0434\u043E\u043F\u0438\u0441\u043A\u0443), \u0430 \u043D\u0435 \u0432\u0435\u0441\u044C \u0441\u043F\u0438\u0441\u043E\u043A; \u0435\u0441\u043B\u0438 \u043C\u0435\u043D\u044F\u0442\u044C \u043D\u0435\u0447\u0435\u0433\u043E \u2014 `changed: false`, \u0437\u0430\u043F\u0438\u0441\u0438 \u043D\u0435\u0442.\n\u0422\u0430\u043A \u0436\u0435 `bitrix_task_related_edit` \u0434\u043E\u0431\u0430\u0432\u043B\u044F\u0435\u0442 \u0438 \u0443\u0431\u0438\u0440\u0430\u0435\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u043D\u0430\u0437\u0432\u0430\u043D\u043D\u044B\u0435 \u0441\u0432\u044F\u0437\u0438, \u0430 `bitrix_task_plan`\n\u0441\u043E\u0445\u0440\u0430\u043D\u044F\u0435\u0442 \u043D\u0435\u043F\u0435\u0440\u0435\u0434\u0430\u043D\u043D\u0443\u044E \u0434\u0430\u0442\u0443. `bitrix_task_description_set` \u2014 \u0435\u0434\u0438\u043D\u0441\u0442\u0432\u0435\u043D\u043D\u0430\u044F, \u0447\u0442\u043E \u0437\u0430\u043C\u0435\u043D\u044F\u0435\u0442 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u0446\u0435\u043B\u0438\u043A\u043E\u043C.\n\n**\u041A\u0442\u043E \u044D\u0442\u043E \u0443\u0432\u0438\u0434\u0438\u0442 \u0438 \u043A\u043E\u0433\u043E \u0443\u0432\u0435\u0434\u043E\u043C\u044F\u0442.**\n\n| \u041E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 | \u0412\u0438\u0434\u044F\u0442 | \u0423\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0435 |\n|---|---|---|\n| `bitrix_chat_send`, `bitrix_task_chat_post` | \u0432\u0441\u0435 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u0447\u0430\u0442\u0430 | \u0443\u043F\u043E\u043C\u044F\u043D\u0443\u0442\u044B\u043C `[user=ID]\u0418\u043C\u044F[/user]` |\n| `bitrix_chat_message_edit`, `bitrix_chat_reaction` | \u0432\u0441\u0435 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u0447\u0430\u0442\u0430 | \u043D\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043E (\u043D\u043E\u0432\u043E\u0435 \u0443\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 \u043F\u0440\u0438 \u043F\u0440\u0430\u0432\u043A\u0435; \u0430\u0432\u0442\u043E\u0440\u0443 \u2014 \u043E \u0440\u0435\u0430\u043A\u0446\u0438\u0438) |\n| `bitrix_task_delegate` | \u0438\u0441\u0442\u043E\u0440\u0438\u044F \u0437\u0430\u0434\u0430\u0447\u0438 | \u043D\u043E\u0432\u043E\u043C\u0443 \u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u043C\u0443 |\n| `bitrix_task_accomplices`, `bitrix_task_auditors` | \u0438\u0441\u0442\u043E\u0440\u0438\u044F \u0437\u0430\u0434\u0430\u0447\u0438 | \u043A\u0430\u0436\u0434\u043E\u043C\u0443 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u043D\u043E\u043C\u0443 |\n| `bitrix_task_close`, `bitrix_task_reopen` | \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 | \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0430\u043C \u0437\u0430\u0434\u0430\u0447\u0438 |\n| `bitrix_task_result_add` | \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0437\u0430\u0434\u0430\u0447\u0438; \u0430\u043D\u043E\u043D\u0441 \u0432 \u0435\u0451 \u0447\u0430\u0442\u0435 \u0432\u0438\u0434\u044F\u0442 \u0432\u0441\u0435 \u0435\u0433\u043E \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 | \u2014 |\n| \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435, \u0442\u0435\u0433\u0438, \u0432\u0430\u0436\u043D\u043E\u0441\u0442\u044C, \u0441\u0440\u043E\u043A, \u043F\u043B\u0430\u043D\u0438\u0440\u0443\u0435\u043C\u044B\u0435 \u0434\u0430\u0442\u044B | \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443; \u0438\u0441\u0442\u043E\u0440\u0438\u044F \u0437\u0430\u0434\u0430\u0447\u0438 | \u2014 |\n| `bitrix_task_checklist_edit`, \u0441\u0432\u044F\u0437\u0438, \u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044C, \u0441\u0432\u044F\u0437\u044C \u0413\u0430\u043D\u0442\u0430 | \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 | \u2014 |\n| `bitrix_task_file_attach` | \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 (\u0438 \u043C\u043E\u0433\u0443\u0442 \u0441\u043A\u0430\u0447\u0430\u0442\u044C) | \u2014 |\n| `bitrix_task_create`, `bitrix_task_move`, `_to_sprint`, `_to_backlog` | \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u043F\u0440\u043E\u0435\u043A\u0442\u0430 \u043D\u0430 scrum-\u0434\u043E\u0441\u043A\u0435 | \u2014 |\n| `bitrix_task_mute`, \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F | **\u0442\u043E\u043B\u044C\u043A\u043E \u0442\u044B** | \u0442\u043E\u043B\u044C\u043A\u043E \u0442\u0435\u0431\u0435 (\u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F) |\n\n\xAB\u2014\xBB \u2014 \u043D\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043E: \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F \u043E\u0431 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F\u0445 \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442, \u043D\u043E Bitrix \u043C\u043E\u0436\u0435\u0442 \u0441\u0430\u043C \u0441\u043B\u0430\u0442\u044C\n\u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0430\u043C \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u043E\u0431 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438. \u0427\u0430\u0442 \u0437\u0430\u0434\u0430\u0447\u0438 \u2014 `CHAT_ID` \u0438\u0437 `bitrix_task_get` (\u0438\u043B\u0438\n`bitrix_entity_chat { entityType:"TASKS_TASK" }`). userId \u0434\u043B\u044F \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u043E\u0432 \u2014 `bitrix_user_find` (\u043F\u043E\n\u0444\u0430\u043C\u0438\u043B\u0438\u0438) \u0438\u043B\u0438 \u043F\u043E\u043B\u044F \u0437\u0430\u0434\u0430\u0447\u0438; \u043B\u044E\u0434\u0435\u0439 \u0438\u0437 \u0432\u044B\u0434\u0430\u0447\u0438 `bitrix_user_find` \u0441 `active: false` \u043D\u0430 \u0440\u0430\u0431\u043E\u0447\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043D\u0435\n\u043D\u0430\u0437\u043D\u0430\u0447\u0430\u0439.\n\n**`bitrix_task_move`** \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u0434\u043B\u044F \u0437\u0430\u0434\u0430\u0447\u0438, \u043A\u043E\u0442\u043E\u0440\u0430\u044F \u0443\u0436\u0435 \u043D\u0430 \u0434\u043E\u0441\u043A\u0435 \u0441\u043F\u0440\u0438\u043D\u0442\u0430 (\u043D\u0435 \u0432 \u0431\u044D\u043A\u043B\u043E\u0433\u0435):\n`task.stages.movetask` \u043E\u0442\u0432\u0435\u0447\u0430\u0435\u0442 `true`, \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0441\u0434\u0435\u043B\u0430\u0432, \u2014 \u043C\u043E\u0441\u0442 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 \u0438 \u0432 \u044D\u0442\u043E\u043C \u0441\u043B\u0443\u0447\u0430\u0435\n\u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043E\u0448\u0438\u0431\u043A\u0443 \u043F\u043E \u044D\u0442\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0435. \u0417\u0430\u0434\u0430\u0447\u0443 \u0438\u0437 \u0431\u044D\u043A\u043B\u043E\u0433\u0430 \u0441\u0442\u0430\u0432\u0438\u0442 \u043D\u0430 \u0434\u043E\u0441\u043A\u0443 `bitrix_task_to_sprint` (\u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0438\u0442 \u0432\n\u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0439 \u0441\u043F\u0440\u0438\u043D\u0442, \u0441\u0442\u0430\u0432\u0438\u0442 \u043D\u0430 \u0434\u043E\u0441\u043A\u0443, \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442 \u0441\u043F\u0440\u0438\u043D\u0442 \u0438 \u043A\u043E\u043B\u043E\u043D\u043A\u0443); \u0437\u0430\u0434\u0430\u0447\u0438 \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0445 \u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0451\u043D\u043D\u044B\u0445\n\u0441\u043F\u0440\u0438\u043D\u0442\u043E\u0432 \u043E\u043D \u043D\u0435 \u0442\u0440\u043E\u0433\u0430\u0435\u0442. \u0415\u0441\u043B\u0438 \u043F\u0435\u0440\u0435\u043D\u043E\u0441 \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D, \u0430 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C, \u043E\u0448\u0438\u0431\u043A\u0430 \u0442\u0430\u043A \u0438 \u0433\u043E\u0432\u043E\u0440\u0438\u0442 \u2014\n\u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u0442\u043E\u0433\u0434\u0430 \u043F\u0440\u043E\u0432\u0435\u0440\u044C \u0447\u0435\u0440\u0435\u0437 `bitrix_task_get`. `task.stages.get` \u043E\u0442\u0434\u0430\u0451\u0442 \u0441\u0442\u0430\u0440\u044B\u0439 \u043A\u0430\u043D\u0431\u0430\u043D \u0433\u0440\u0443\u043F\u043F\u044B, \u0430 \u043D\u0435\n\u043A\u043E\u043B\u043E\u043D\u043A\u0438 \u0441\u043F\u0440\u0438\u043D\u0442\u0430. \u041F\u0435\u0440\u0435\u043D\u043E\u0441 \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u043C\u043E\u0436\u0435\u0442 \u043F\u0435\u0440\u0435\u043E\u0442\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u043A\u0440\u044B\u0442\u0443\u044E \u0437\u0430\u0434\u0430\u0447\u0443 \u2014 \u0441\u043C\u043E\u0442\u0440\u0438 `status` \u0432 \u043E\u0442\u0432\u0435\u0442\u0435.\n\n**\u041A\u043E\u043B\u043E\u043D\u043A\u0430 \u0442\u0438\u043F\u0430 `FINISH`** (\u043E\u0431\u044B\u0447\u043D\u043E \xAB\u0413\u043E\u0442\u043E\u0432\u043E\xBB, \u0441\u043C. `type` \u0432 `bitrix_sprint_columns`) \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442 \u0437\u0430\u0434\u0430\u0447\u0443,\n\u0430 Definition of Done \u0441\u043F\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u0432\u0441\u043F\u043B\u044B\u0432\u0430\u044E\u0449\u0435\u0435 \u043E\u043A\u043D\u043E \u0432\u0435\u0431-\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430. \u041F\u043E\u044D\u0442\u043E\u043C\u0443 `bitrix_task_move`,\n`bitrix_task_to_sprint` \u0438 `bitrix_task_create` \u0442\u0430\u043A\u0443\u044E \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u043D\u0435 \u043F\u0440\u0438\u043D\u0438\u043C\u0430\u044E\u0442 \u2014 \u043D\u0438 \u043F\u043E \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044E, \u043D\u0438 \u043F\u043E id:\n\xAB\u043A\u043E\u043B\u043E\u043D\u043A\u0430 \xAB\u2026\xBB \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 \u2014 \u0437\u0430\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u043C\u043E\u0436\u043D\u043E \u0442\u043E\u043B\u044C\u043A\u043E \u0447\u0435\u0440\u0435\u0437 `bitrix_task_close` \u2026; \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435\n\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043E\xBB. \u0423 \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0445 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0439 \u043E\u0442\u043A\u0430\u0437 \u2014 \u043D\u0430 \u0432\u0435\u0441\u044C \u0432\u044B\u0437\u043E\u0432: \u0441\u043D\u0430\u0447\u0430\u043B\u0430 \u0447\u0438\u0442\u0430\u044E\u0442\u0441\u044F \u0432\u0441\u0435 \u0437\u0430\u0434\u0430\u0447\u0438, \u0438 \u0435\u0441\u043B\u0438 \u043A\u043E\u043B\u043E\u043D\u043A\u0430\n\u0445\u043E\u0442\u044C \u0443 \u043E\u0434\u043D\u043E\u0439 \u0438\u0437 \u043D\u0438\u0445 (\u0432 \u0435\u0451 \u043F\u0440\u043E\u0435\u043A\u0442\u0435) \u2014 `FINISH`, \u043D\u0435 \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0438\u0442\u0441\u044F \u043D\u0438 \u043E\u0434\u043D\u0430. \u0417\u0430\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u2014\n`bitrix_task_close` (\xA75.7).\n\n**\u0414\u0430\u0442\u044B** (`bitrix_task_plan`, `bitrix_task_deadline`, `bitrix_task_reminder_set`) \u2014 ISO 8601 **\u0441\u043E\n\u0441\u043C\u0435\u0449\u0435\u043D\u0438\u0435\u043C**: `"2026-12-01T09:00:00+03:00"` \u0438\u043B\u0438 `"\u2026Z"`; \u0431\u0435\u0437 \u0441\u043C\u0435\u0449\u0435\u043D\u0438\u044F \u2014 \u043E\u0448\u0438\u0431\u043A\u0430 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u043E\u0432. \u0412 \u043E\u0442\u0432\u0435\u0442\u0435 \u0434\u0430\u0442\u044B \u0432\nUTC. Bitrix \u0445\u0440\u0430\u043D\u0438\u0442 \u0432\u0440\u0435\u043C\u044F \u0437\u0430\u0434\u0430\u0447 \u0441 \u0442\u043E\u0447\u043D\u043E\u0441\u0442\u044C\u044E \u0434\u043E \u043C\u0438\u043D\u0443\u0442\u044B: \u0441\u0435\u043A\u0443\u043D\u0434\u044B \u043D\u0435 \u0441\u0447\u0438\u0442\u0430\u044E\u0442\u0441\u044F \u0440\u0430\u0441\u0445\u043E\u0436\u0434\u0435\u043D\u0438\u0435\u043C.\n\n**\u0420\u0430\u0437\u043C\u0435\u0442\u043A\u0430 \u0442\u0435\u043A\u0441\u0442\u0430.**\n\n- **\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438** (`bitrix_task_description_*`) \u0438 **\u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442** (`bitrix_task_result_add`) \u2014 \u043F\u043E\u043B\u043D\u044B\u0439\n BBCode: `[b] [i] [u] [s]`, `[url=\u2026]\u2026[/url]`, `[user=ID]\u0418\u043C\u044F[/user]`, \u0441\u043F\u0438\u0441\u043A\u0438 `[list]` / `[list=1]` \u0441\n \u043F\u0443\u043D\u043A\u0442\u0430\u043C\u0438 `[*]`, `[quote]`, `[code]`, `[spoiler=\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A]\u2026[/spoiler]`, \u0442\u0430\u0431\u043B\u0438\u0446\u044B `[table][tr][th]/[td]`.\n \u0422\u0435\u0433\u0438 `[disk file id=\u2026]` \u2014 \u044D\u0442\u043E \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u0451\u043D\u043D\u044B\u0435 \u0444\u0430\u0439\u043B\u044B, \u0441\u043E\u0445\u0440\u0430\u043D\u044F\u0439 \u0438\u0445. \u041A\u0430\u043A BBCode \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0430 \u0432\u044B\u0433\u043B\u044F\u0434\u0438\u0442 \u0432 \u0435\u0433\u043E\n \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0435 \u0432 \u0447\u0430\u0442\u0435, \u043D\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043E.\n- **\u0421\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u0432 \u0447\u0430\u0442** (`bitrix_chat_send`, `bitrix_chat_message_edit`, `bitrix_task_chat_post`) \u2014 \u0442\u043E\u043B\u044C\u043A\u043E\n \u0442\u043E, \u0447\u0442\u043E \u0440\u0435\u043D\u0434\u0435\u0440\u044F\u0442 \u0438 \u0432\u0435\u0431, \u0438 \u043C\u043E\u0431\u0438\u043B\u044C\u043D\u043E\u0435 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435: `[b] [i] [u] [s]`, `[url=\u2026]\u2026[/url]`,\n `[user=ID]\u0418\u043C\u044F[/user]`, `[code]`, `[color=#hex]\u2026[/color]`, `[br]`. \u0426\u0438\u0442\u0430\u0442\u0430 \u2014 \u0441\u0442\u0440\u043E\u043A\u0430, \u043D\u0430\u0447\u0438\u043D\u0430\u044E\u0449\u0430\u044F\u0441\u044F \u0441 `>>`,\n \u0438\u043B\u0438 \u0431\u043B\u043E\u043A \u043C\u0435\u0436\u0434\u0443 \u0434\u0432\u0443\u043C\u044F \u0441\u0442\u0440\u043E\u043A\u0430\u043C\u0438 \u0438\u0437 \u0434\u0435\u0444\u0438\u0441\u043E\u0432; \u0441\u043F\u0438\u0441\u043E\u043A \u2014 \u0441\u0442\u0440\u043E\u043A\u0438, \u043D\u0430\u0447\u0438\u043D\u0430\u044E\u0449\u0438\u0435\u0441\u044F \u0441 `\u2022`. `[quote]`, `[list]`,\n `[spoiler]`, \u0442\u0430\u0431\u043B\u0438\u0446\u044B \u0438 Markdown \u0432 \u0447\u0430\u0442\u0435 **\u043D\u0435 \u0440\u0435\u043D\u0434\u0435\u0440\u044F\u0442\u0441\u044F**. \u0414\u043B\u0438\u043D\u043D\u0435\u0435 20 000 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 Bitrix \u043C\u043E\u043B\u0447\u0430 \u043E\u0431\u0440\u0435\u0436\u0435\u0442 \u2014\n \u043C\u043E\u0441\u0442 \u0442\u0430\u043A\u043E\u0435 \u043D\u0435 \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442.\n- **\u041F\u0440\u043E\u0441\u0442\u043E\u0439 \u0442\u0435\u043A\u0441\u0442:** \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 (`bitrix_task_create` \u2014 BBCode \u0432 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0438 \u043D\u0435 \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442), \u0442\u0435\u0433\u0438, \u043F\u0440\u0438\u0447\u0438\u043D\u0430\n \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0430 \u0441\u0440\u043E\u043A\u0430. \u041D\u0430\u0437\u0432\u0430\u043D\u0438\u044F \u043F\u0443\u043D\u043A\u0442\u043E\u0432 \u0447\u0435\u043A-\u043B\u0438\u0441\u0442\u0430 \u2014 \u0442\u043E\u0436\u0435 \u043F\u0440\u043E\u0441\u0442\u043E\u0439 \u0442\u0435\u043A\u0441\u0442 (\u043A\u0430\u043A \u0432 \u043D\u0438\u0445 \u0440\u0435\u043D\u0434\u0435\u0440\u0438\u0442\u0441\u044F BBCode, \u043D\u0435\n \u043F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043E).\n- Markdown \u043D\u0435 \u0440\u0435\u043D\u0434\u0435\u0440\u0438\u0442\u0441\u044F \u043D\u0438\u0433\u0434\u0435.\n\n---\n\n## 4. \u0421\u043F\u0440\u0430\u0432\u043E\u0447\u043D\u0438\u043A \u043F\u043E\u043B\u0435\u0439\n\n**\u0417\u0430\u0434\u0430\u0447\u0430** (`tasks.task.*`) \u2014 \u043F\u043E\u043B\u044F \u0434\u043B\u044F `select`/`filter` \u0432 UPPER_CASE: `ID`, `TITLE`, `DESCRIPTION`,\n`STATUS`, `REAL_STATUS`, `RESPONSIBLE_ID`, `CREATED_BY`, `CREATED_DATE`, `CHANGED_DATE`, `DEADLINE`,\n`CLOSED_DATE`, `PRIORITY`, `GROUP_ID`, `TAGS`, `TIME_ESTIMATE`, **`CHAT_ID`** (id \u0447\u0430\u0442\u0430-\u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u044F\n\u0437\u0430\u0434\u0430\u0447\u0438 \u2014 \u043F\u0440\u044F\u043C\u043E\u0439 \u0440\u0435\u0437\u043E\u043B\u0432\u0435\u0440 `taskId \u2192 chatId`, \xA75.2), `COMMENTS_COUNT` (\xA75.6), **`UF_TASK_WEBDAV_FILES`**\n(id **\u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u0451\u043D\u043D\u044B\u0445 \u043E\u0431\u044A\u0435\u043A\u0442\u043E\u0432** \u2014 \u0438\u043C\u0435\u043D\u043D\u043E \u0438\u0445 \u0436\u0434\u0451\u0442 `bitrix_task_files`; \u0441 id \u0437\u0430\u0434\u0430\u0447\u0438 \u043E\u043D \u0432\u0435\u0440\u043D\u0451\u0442 \u043F\u0443\u0441\u0442\u043E\u0439\n\u0441\u043F\u0438\u0441\u043E\u043A \u0431\u0435\u0437 \u043E\u0448\u0438\u0431\u043A\u0438), `UF_*`. \u041E\u0442\u0432\u0435\u0442 \u043F\u043E\u0434\u043A\u043B\u0430\u0434\u044B\u0432\u0430\u0435\u0442 \u043E\u0431\u044A\u0435\u043A\u0442\u044B `group`,\n`responsible`, `creator`, `action`.\n\u{1F4D6} (`tasks.task.get`/`list`) \u2014 \u0441\u0432\u0435\u0440\u0445 \u044D\u0442\u043E\u0433\u043E: `parentId`, `stageId`, `sprintId`, `backlogId`,\n`commentsCount`, `timeSpentInLogs`, `favorite`, `flowId`, `mark`, `accomplices[]`, `auditors[]`,\n`checklist{}`, `subStatus`; \u0432 \u043E\u0444\u0438\u0446\u0438\u0430\u043B\u044C\u043D\u043E\u043C REST-\u043E\u0442\u0432\u0435\u0442\u0435 \u043F\u043E\u043B\u044F \u043F\u0440\u0438\u0445\u043E\u0434\u044F\u0442 **camelCase**, \u0430 \u0432 `select`/`filter`\n\u043E\u043D\u0438 \u0432\u0441\u0435\u0433\u0434\u0430 **UPPER_CASE**. \u0414\u043E\u043F. \u0432\u044B\u0447\u0438\u0441\u043B\u0435\u043D\u0438\u044F \u2014 \u0444\u043B\u0430\u0433\u0430\u043C\u0438 `params{WITH_TIMER_INFO, WITH_RESULT_INFO,\nWITH_PARSED_DESCRIPTION}`.\n\n**\u0421\u0442\u0430\u0442\u0443\u0441\u044B** (`REAL_STATUS` \u2014 \xAB\u043D\u0430\u0441\u0442\u043E\u044F\u0449\u0435\u0435\xBB \u0447\u0438\u0441\u043B\u043E\u0432\u043E\u0435 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435): `1` \u041D\u043E\u0432\u0430\u044F \xB7 `2` \u0416\u0434\u0451\u0442 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \xB7\n`3` \u0412\u044B\u043F\u043E\u043B\u043D\u044F\u0435\u0442\u0441\u044F \xB7 `4` \u0416\u0434\u0451\u0442 \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u044F \xB7 `5` \u0417\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0430 \xB7 `6` \u041E\u0442\u043B\u043E\u0436\u0435\u043D\u0430 \xB7 `7` \u041E\u0442\u043A\u043B\u043E\u043D\u0435\u043D\u0430. \u041F\u043E\u043B\u0435 `STATUS`\n\u043F\u043E\u0432\u0435\u0440\u0445 \u044D\u0442\u043E\u0433\u043E \u043D\u0435\u0441\u0451\u0442 **\u043C\u0435\u0442\u0430-\u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u044F** \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F (\u043F\u043E\u0447\u0442\u0438 \u043F\u0440\u043E\u0441\u0440\u043E\u0447\u0435\u043D\u0430 / \u043D\u0435 \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u043D\u0430 / \u043F\u0440\u043E\u0441\u0440\u043E\u0447\u0435\u043D\u0430),\n\u043F\u043E\u044D\u0442\u043E\u043C\u0443 \xAB\u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442 \u043B\u0438 \u0437\u0430\u0434\u0430\u0447\u0430 \u0441\u0435\u0439\u0447\u0430\u0441\xBB \u0444\u0438\u043B\u044C\u0442\u0440\u0443\u0439 \u043F\u043E **`REAL_STATUS`** (\u043D\u0430\u043F\u0440. `{"REAL_STATUS":3}`) \u{1F4D6}.\n\u0410\u0441\u0438\u043C\u043C\u0435\u0442\u0440\u0438\u044F: \u0432 **`filter`** \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442 `REAL_STATUS`, \u0430 \u0432 **`select`** \u0435\u0433\u043E \u0443\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u0431\u0435\u0441\u043F\u043E\u043B\u0435\u0437\u043D\u043E \u2014 \u043F\u043E\u043B\u0435 \u043C\u043E\u043B\u0447\u0430\n\u043D\u0435 \u0432\u0435\u0440\u043D\u0451\u0442\u0441\u044F; \u0447\u0442\u043E\u0431\u044B \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435, \u043F\u0440\u043E\u0441\u0438 `select:["STATUS"]` \u2192 \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 \u0431\u0443\u0434\u0435\u0442 \u043A\u043B\u044E\u0447 `status` \u0441\u043E\n\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u043C \u043F\u043E \u0442\u043E\u0439 \u0436\u0435 \u0448\u043A\u0430\u043B\u0435 1..7 (\u0443 \u043E\u0431\u0451\u0440\u0442\u043A\u0438 `bitrix_tasks_list` \u043E\u043D \u0443\u0436\u0435 \u0432 \u0434\u0435\u0444\u043E\u043B\u0442\u043D\u043E\u043C `select`).\n\n**\u0424\u0438\u043B\u044C\u0442\u0440 `tasks.task.list`** \u2014 \u043E\u043F\u0435\u0440\u0430\u0442\u043E\u0440 \u0441\u0442\u0430\u0432\u0438\u0442\u0441\u044F \u043F\u0435\u0440\u0435\u0434 \u0438\u043C\u0435\u043D\u0435\u043C \u043F\u043E\u043B\u044F: `!` (\u043D\u0435 \u0440\u0430\u0432\u043D\u043E / \u0438\u0441\u043A\u043B\u044E\u0447\u0438\u0442\u044C),\n`<`, `<=`, `>`, `>=`, `%` (LIKE-\u043F\u043E\u0434\u0441\u0442\u0440\u043E\u043A\u0430). \u041D\u0430\u043F\u0440. `{"!REAL_STATUS":5}` \u2014 \u0432\u0441\u0435 **\u043D\u0435\u0437\u0430\u043A\u0440\u044B\u0442\u044B\u0435**,\n`{">=DEADLINE":"2026-07-01"}`, `{"%TITLE":"\u043A\u0430\u0440\u0442\u0430"}`. \u0424\u0438\u043B\u044C\u0442\u0440\u0443\u0435\u043C\u044B\u0435 \u043F\u043E\u043B\u044F: `ID`, `PARENT_ID`, `GROUP_ID`,\n`CREATED_BY`, `RESPONSIBLE_ID`, `ACCOMPLICE`, `AUDITOR`, `REAL_STATUS`, `STATUS`, `PRIORITY`, `TAG`,\n`STAGE_ID`, `SPRINT_ID`, `BACKLOG_ID`, `DEADLINE`, `*_DATE`, `UF_CRM_TASK`.\n\n> **\xAB\u041C\u043E\u0438 \u0437\u0430\u0434\u0430\u0447\u0438\xBB \u2260 \u0442\u043E\u043B\u044C\u043A\u043E `RESPONSIBLE_ID`.** \u0420\u043E\u043B\u0438 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0430 \u0440\u0430\u0437\u0434\u0435\u043B\u044C\u043D\u044B: \u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043D\u043D\u044B\u0439\n> (`RESPONSIBLE_ID`), \u0441\u043E\u0438\u0441\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C (`ACCOMPLICE`), \u043D\u0430\u0431\u043B\u044E\u0434\u0430\u0442\u0435\u043B\u044C (`AUDITOR`), \u043F\u043E\u0441\u0442\u0430\u043D\u043E\u0432\u0449\u0438\u043A\n> (`CREATED_BY`); \u0435\u0434\u0438\u043D\u043E\u0433\u043E \xAB\u043B\u044E\u0431\u0430\u044F \u0440\u043E\u043B\u044C\xBB \u043F\u043E\u043B\u044F \u0432 `list` \u043D\u0435\u0442 \u2014 \u0447\u0442\u043E\u0431\u044B \u0441\u043E\u0431\u0440\u0430\u0442\u044C **\u0432\u0441\u0435** \u0441\u0432\u043E\u0438 \u0437\u0430\u0434\u0430\u0447\u0438, \u043E\u0431\u044A\u0435\u0434\u0438\u043D\u0438\n> \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u044B \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u0438\u0445 \u0432\u044B\u0437\u043E\u0432\u043E\u0432 (\u043C\u0438\u043D\u0438\u043C\u0443\u043C `RESPONSIBLE_ID` + `ACCOMPLICE`) \u0438 **\u0434\u0435\u0434\u0443\u043F\u043B\u0438\u0446\u0438\u0440\u0443\u0439 \u043F\u043E `id`** \u2014\n> \u043E\u0434\u043D\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u0447\u0430\u0441\u0442\u043E \u043F\u043E\u043F\u0430\u0434\u0430\u0435\u0442 \u0441\u0440\u0430\u0437\u0443 \u0432 \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u043E \u0440\u043E\u043B\u0435\u0439. \u0412 **`filter`** \u0440\u043E\u043B\u0438 \u0432 **\u0435\u0434\u0438\u043D\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u043C** \u0447\u0438\u0441\u043B\u0435\n> (`ACCOMPLICE`/`AUDITOR`), \u0432 **`select`** \u2014 \u0432\u043E **\u043C\u043D\u043E\u0436\u0435\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u043C** (`ACCOMPLICES`/`AUDITORS`).\n\n> **Scrum-\u0437\u0430\u0434\u0430\u0447\u0438 (\u0441\u043F\u0440\u0438\u043D\u0442\u044B).** \u041F\u043E\u043B\u0435 `SPRINT_ID` \u0437\u0430\u0434\u0430\u0447\u0438 \u0438 \u0436\u0451\u0441\u0442\u043A\u0438\u0439 `filter[SPRINT_ID]` \u043C\u043E\u0433\u0443\u0442 \u0440\u0430\u0441\u0445\u043E\u0434\u0438\u0442\u044C\u0441\u044F:\n> \u0437\u0430\u0434\u0430\u0447\u0430 \u0447\u0438\u0441\u043B\u0438\u0442\u0441\u044F \u0437\u0430 \u0441\u043F\u0440\u0438\u043D\u0442\u043E\u043C \u043F\u043E \u0441\u0432\u043E\u0435\u043C\u0443 \u043F\u043E\u043B\u044E, \u043D\u043E \u043D\u0435 \u043F\u043E\u043F\u0430\u0434\u0430\u0435\u0442 \u0432 \u0432\u044B\u0431\u043E\u0440\u043A\u0443 \u043F\u043E \u0444\u0438\u043B\u044C\u0442\u0440\u0443 (\u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0435\u043D\u0430 \u0432 \u0431\u044D\u043A\u043B\u043E\u0433\n> \u0438\u043B\u0438 \u0432 \u0438\u043D\u043E\u0439 stage). \u0415\u0441\u043B\u0438 \u043F\u043E \u0444\u0438\u043B\u044C\u0442\u0440\u0443 \xAB\u043C\u0430\u043B\u043E\u0432\u0430\u0442\u043E\xBB \u2014 \u043F\u0435\u0440\u0435\u043F\u0440\u043E\u0432\u0435\u0440\u044C \u0431\u0435\u0437 \u043D\u0435\u0433\u043E \u0438 \u043E\u0442\u0444\u0438\u043B\u044C\u0442\u0440\u0443\u0439 \u043F\u043E\n> `SPRINT_ID`/`STAGE_ID` \u0443 \u0441\u0435\u0431\u044F. `STAGE_ID` \u2192 \u0438\u043C\u044F \u043A\u043E\u043B\u043E\u043D\u043A\u0438 \u2014 `bitrix_sprint_columns { groupId }` (\xA73).\n\n**\u0413\u0440\u0443\u043F\u043F\u0430/\u043F\u0440\u043E\u0435\u043A\u0442 \u2014 \u0441\u043F\u0438\u0441\u043E\u043A** (`workgroup.list`): `ID`, `NAME`, `DESCRIPTION`, `NUMBER_OF_MEMBERS`,\n`OWNER_ID`, `DATE_CREATE`, `PROJECT` (Y=\u043F\u0440\u043E\u0435\u043A\u0442/N=\u0433\u0440\u0443\u043F\u043F\u0430), `TYPE`; **\u0431\u0435\u0437 `select` \u0432\u0435\u0440\u043D\u0451\u0442\u0441\u044F \u0442\u043E\u043B\u044C\u043A\u043E `ID`**.\n\u{1F4D6} \u0444\u0438\u043B\u044C\u0442\u0440\u0443\u0435\u043C\u044B\u0435: `ID`, `NAME`, `OWNER_ID`, `ACTIVE`, `VISIBLE`, `OPENED`, `CLOSED`, `PROJECT`,\n`SUBJECT_ID`, `SITE_ID`, `DATE_CREATE`, `DATE_UPDATE`, `DATE_ACTIVITY`; \u043E\u043F\u0435\u0440\u0430\u0442\u043E\u0440\u044B \u0444\u0438\u043B\u044C\u0442\u0440\u0430\n`>= > <= < % =% %= !% != !`.\n**\u0413\u0440\u0443\u043F\u043F\u0430 \u2014 \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430** (`workgroup.get`): \u043F\u043B\u044E\u0441 `OWNER_DATA`, `SUBJECT_DATA`, `MEMBERS[]`,\n`MODERATOR_MEMBERS[]`, **`CHAT_ID`**, `DIALOG_ID`, `IMAGE_ID`, UF-\u043F\u043E\u043B\u044F.\n\n**\u041D\u0435\u0434\u0430\u0432\u043D\u0438\u0439 \u0447\u0430\u0442** (`im.recent.list`): `id` (\u044D\u0442\u043E dialogId: \u0447\u0438\u0441\u043B\u043E = \u044E\u0437\u0435\u0440, `"chat"+N` = \u0447\u0430\u0442), `chat_id`,\n`type` (`user`/`chat`), `title`, `message{id,text,file,author_id,date,status}`, `counter` (\u043D\u0435\u043F\u0440\u043E\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u0445),\n`unread`, `last_id`, `pinned`, `date_update`, `date_last_activity`, `user{\u2026}`,\n`chat{\u2026 entity_type, entity_id, owner, \u2026}`; \u0435\u0441\u0442\u044C \u043B\u0438 \u0435\u0449\u0451 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B \u2014 `hasMore`/`hasMorePages` \u{1F4D6}.\n**\u041D\u0435\u0434\u0430\u0432\u043D\u0438\u0435 \u043F\u043E \u0441\u0435\u043A\u0446\u0438\u0438** (`im.v2.Recent.load`): `filter[recentSection]` \u2014 `default` (\u043E\u0431\u044B\u0447\u043D\u044B\u0435 \u0434\u0438\u0430\u043B\u043E\u0433\u0438),\n**`tasksTask` (\u0447\u0430\u0442\u044B \u0437\u0430\u0434\u0430\u0447)**, `collab`/`collabDefault`. \u0412\u0433\u043B\u0443\u0431\u044C \u2014 `im.v2.Recent.tail` \u0441 \u043A\u0443\u0440\u0441\u043E\u0440\u043E\u043C\n`filter[lastMessageDate]` (ISO-\u0434\u0430\u0442\u0430 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0433\u043E \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B).\n\n**\u041A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u044E\u0437\u0435\u0440\u0430** (`im.user.get`): `id`, `name`, `first_name`, `last_name`, `avatar`, `work_position`,\n`gender`, `status`, `online` \u2014 \u0440\u0435\u0437\u043E\u043B\u0432 \u0430\u0432\u0442\u043E\u0440\u0430 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F (`authorId`) \u0432 \u0438\u043C\u044F.\n\n**\u0421\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435** (`im.v2.Chat.Message.*`): `id`, `chatId`, `authorId`, `date`, `text`, `params`, `viewed`;\n\u043E\u0442\u0432\u0435\u0442 \u0442\u0430\u043A\u0436\u0435 \u043D\u0435\u0441\u0451\u0442 `users[]` (\u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438), `additionalMessages[]`, `hasPrevPage`/`hasNextPage`.\n\n---\n\n## 5. \u0421\u0446\u0435\u043D\u0430\u0440\u0438\u0438\n\n```jsonc\n// \u043E\u0442\u043A\u0440\u044B\u0442\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u0433\u043E 55, \u043F\u043E \u0434\u0435\u0434\u043B\u0430\u0439\u043D\u0443, \u0432\u0442\u043E\u0440\u0430\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430\nbitrix_tasks_list { "params": { "filter": {"RESPONSIBLE_ID":55,"REAL_STATUS":2},\n "order": {"DEADLINE":"asc"}, "PAGEN_1": 2 } }\n\n// \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0437\u0430\u0434\u0430\u0447\u0438 \u0441 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u043D\u044B\u043C \u043D\u0430\u0431\u043E\u0440\u043E\u043C \u043F\u043E\u043B\u0435\u0439; v2-\u043F\u043E\u0434\u0441\u0438\u0441\u0442\u0435\u043C\u0430; \u0444\u0430\u0439\u043B\u044B, \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u044B, \u0441\u0432\u044F\u0437\u0438\nbitrix_task_get { "taskId": 4229, "params": { "select": ["ID","TITLE","DESCRIPTION","TAGS"] } }\nbitrix_task_get_v2 { "taskId": 4229 } // \u2192 { "task": { "id": 4229 } }\nbitrix_task_get { "taskId": 4229, "params": { "select": ["ID","UF_TASK_WEBDAV_FILES"] } }\nbitrix_task_files { "ids": [<id \u0438\u0437 UF_TASK_WEBDAV_FILES>] } // \u041D\u0415 id \u0437\u0430\u0434\u0430\u0447\u0438\nbitrix_task_subtasks { "taskId": 4229 }\nbitrix_task_related { "taskId": 4229 }\n\n// \u043F\u0440\u043E\u0435\u043A\u0442\u044B \u043F\u043E \u0434\u0430\u0442\u0435 \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u044F; \u043F\u043E\u043B\u043D\u0430\u044F \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0433\u0440\u0443\u043F\u043F\u044B (\u043E\u0442\u0434\u0430\u0451\u0442 CHAT_ID / DIALOG_ID)\nbitrix_projects_list { "params": { "order": {"DATE_CREATE":"desc"} } }\nbitrix_project_get { "groupId": 15 }\n```\n\n### 5.1. \u041C\u0435\u0441\u0441\u0435\u043D\u0434\u0436\u0435\u0440 (IM): \u043A\u0430\u043A \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C `chatId`\n\n\u0412\u0441\u0451 \u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u2014 **\u0447\u0430\u0442\u044B**: \u043B\u0438\u0447\u043D\u044B\u0435 1-\u043D\u0430-1, \u0433\u0440\u0443\u043F\u043F\u043E\u0432\u044B\u0435 (\u043F\u0440\u043E\u0435\u043A\u0442\u043E\u0432, \u043A\u0430\u043D\u0430\u043B\u043E\u0432) \u0438 **\u0447\u0430\u0442\u044B-\u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u044F \u0437\u0430\u0434\u0430\u0447**.\n\u0427\u0438\u0441\u043B\u043E\u0432\u043E\u0439 **`chatId`** \u2014 \u043A\u043B\u044E\u0447 \u043A\u043E \u0432\u0441\u0435\u043C \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F\u043C \u0441 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F\u043C\u0438 (`bitrix_chat_messages`,\n`bitrix_chat_history`, `bitrix_chat_mark_read`); \u043F\u043E\u0447\u0442\u0438 \u043B\u044E\u0431\u0430\u044F \u043E\u0448\u0438\u0431\u043A\u0430 \u0430\u0433\u0435\u043D\u0442\u0430 \u0437\u0434\u0435\u0441\u044C \u2014 \u043D\u0430 \u0448\u0430\u0433\u0435 \u0435\u0433\u043E \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u044F.\n\n**\u0422\u0440\u0438 \u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u0430 \u043E\u0434\u043D\u043E\u0433\u043E \u0447\u0430\u0442\u0430** (\u0433\u043E\u0434\u044F\u0442\u0441\u044F \u0434\u043B\u044F \u0440\u0430\u0437\u043D\u044B\u0445 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0439):\n\n| \u0418\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 | \u0427\u0442\u043E \u044D\u0442\u043E | \u041F\u0440\u0438\u043C\u0435\u0440 | \u041A\u0443\u0434\u0430 \u043F\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044C |\n|---|---|---|---|\n| `chatId` | \u0447\u0438\u0441\u043B\u043E\u0432\u043E\u0439 id \u0447\u0430\u0442\u0430 | `485` | \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F / \u0438\u0441\u0442\u043E\u0440\u0438\u044F / \u043E\u0442\u043C\u0435\u0442\u043A\u0430 \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u043C |\n| `dialogId` | \u0430\u0434\u0440\u0435\u0441 \u0434\u043B\u044F \u041E\u0422\u041A\u0420\u042B\u0422\u0418\u042F: `userId` (\u043B\u0438\u0447\u043D\u044B\u0439 1-\u043D\u0430-1) **\u0438\u043B\u0438** `"chat"+chatId` (\u0433\u0440\u0443\u043F\u043F\u043E\u0432\u043E\u0439) | `11`, `"chat485"` | `bitrix_chat_load` |\n| `externalId` | \u0432\u043D\u0435\u0448\u043D\u0438\u0439 \u043A\u043B\u044E\u0447 \u0441\u0443\u0449\u043D\u043E\u0441\u0442\u0438 \u2192 \u0440\u0435\u0437\u043E\u043B\u0432\u0438\u0442\u0441\u044F \u0432 `dialogId` | `"sg15"` (\u0441\u043E\u0446\u0433\u0440\u0443\u043F\u043F\u0430 15) | `bitrix_chat_get_dialog_id` |\n\n\u041A\u043B\u044E\u0447\u0435\u0432\u043E\u0435: **\u043B\u0438\u0447\u043D\u044B\u0439 \u0447\u0430\u0442 \u0441 \u0447\u0435\u043B\u043E\u0432\u0435\u043A\u043E\u043C = \u0435\u0433\u043E `userId` \u0432 \u0440\u043E\u043B\u0438 `dialogId`** (\u043E\u0442\u0434\u0435\u043B\u044C\u043D\u043E\u0433\u043E \xABid \u0447\u0430\u0442\u0430\xBB \u0443 1-\u043D\u0430-1\n\u0437\u043D\u0430\u0442\u044C \u043D\u0435 \u043D\u0443\u0436\u043D\u043E). `bitrix_chat_load` \u043F\u0440\u0438\u043D\u0438\u043C\u0430\u0435\u0442 `dialogId` **\u0438\u043B\u0438** `chatId` \u0438 \u0432\u0441\u0435\u0433\u0434\u0430 **\u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\n\u0447\u0438\u0441\u043B\u043E\u0432\u043E\u0439 `chatId`** \u2014 \u0434\u0430\u043B\u044C\u0448\u0435 \u043E\u043F\u0435\u0440\u0438\u0440\u0443\u0435\u0448\u044C \u0438\u043C.\n\n**\u041A\u0430\u043A \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C `chatId` \u2014 \u043F\u043E \u0446\u0435\u043B\u0438:**\n\n| \u0425\u043E\u0447\u0443 \u043E\u0442\u043A\u0440\u044B\u0442\u044C \u0447\u0430\u0442\u2026 | \u0428\u0430\u0433\u0438 |\n|---|---|\n| **\u0441 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u043C \u043F\u043E \u0418\u041C\u0415\u041D\u0418** | `bitrix_entity_search { query:"\u0434\u043C\u0438\u0442\u0440\u0438\u0439" }` \u2192 \u0434\u0438\u0430\u043B\u043E\u0433 \u0441 `dialogId` = \u0435\u0433\u043E userId \u2192 `bitrix_chat_load { dialogId }` |\n| **\u0441 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u043C, id \u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043D** | `bitrix_chat_load { dialogId: <userId> }` (userId \u2014 \u0438\u0437 \u0437\u0430\u0434\u0430\u0447\u0438 `RESPONSIBLE_ID`/`CREATED_BY`, \u0438\u0437 `bitrix_chats_recent`, \u0438\u0437 `bitrix_user_get`) |\n| **\u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435 \u0417\u0410\u0414\u0410\u0427\u0418** | `bitrix_task_get` \u2192 `CHAT_ID` (\xA75.2) |\n| **\u041F\u0420\u041E\u0415\u041A\u0422\u0410/\u0433\u0440\u0443\u043F\u043F\u044B** | `bitrix_task_get`\u2192`GROUP_ID`\u2192`bitrix_project_get`\u2192`CHAT_ID`; \u043B\u0438\u0431\u043E `bitrix_chat_get_dialog_id { externalId:"sg<groupId>" }` |\n| **\u043D\u0435 \u0437\u043D\u0430\u044E \u0442\u043E\u0447\u043D\u043E, \u043A\u0430\u043A\u043E\u0439** | `bitrix_chats_recent` (\u043D\u0435\u0434\u0430\u0432\u043D\u0438\u0435, \u0441\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u044C \u043F\u043E `title`/`user`) \u0438\u043B\u0438 `bitrix_entity_search { query }` |\n\n> \u041F\u043E\u0447\u0435\u043C\u0443 \u043D\u0435 \xAB\u043F\u0440\u043E\u0441\u0442\u043E \u0441\u043F\u0438\u0441\u043E\u043A \u0447\u0430\u0442\u043E\u0432\xBB: `bitrix_chats_recent` (`im.recent.list`) \u043E\u0442\u0434\u0430\u0451\u0442 \u043B\u0438\u0448\u044C \u043D\u0435\u0434\u0430\u0432\u043D\u0438\u0435 \u0438\n> **\u0431\u0435\u0437 \u0447\u0430\u0442\u043E\u0432 \u0437\u0430\u0434\u0430\u0447**. \u0414\u043B\u044F \u043F\u043E\u0438\u0441\u043A\u0430 \u043A\u043E\u043D\u043A\u0440\u0435\u0442\u043D\u043E\u0433\u043E \u0447\u0430\u0442\u0430 \u2014 `bitrix_entity_search`; \u0434\u043B\u044F \u0447\u0430\u0442\u043E\u0432 \u0437\u0430\u0434\u0430\u0447 \u2014\n> `bitrix_recent_load { section:"tasksTask" }`.\n\n**\u0427\u0438\u0442\u0430\u0442\u044C \u0438\u0441\u0442\u043E\u0440\u0438\u044E.** `bitrix_chat_messages` \u043E\u0442\u0434\u0430\u0451\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u044E\u044E \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443; \u0432\u0433\u043B\u0443\u0431\u044C \u043B\u0438\u0441\u0442\u0430\u0435\u0442\n`bitrix_chat_history` \u043F\u043E \u043A\u0443\u0440\u0441\u043E\u0440\u0443 `beforeId` = \u043C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u044B\u0439 id \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u0442\u0435\u043A\u0443\u0449\u0435\u0439 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B (\u043F\u043E\u0432\u0442\u043E\u0440\u044F\u0439,\n\u0443\u043C\u0435\u043D\u044C\u0448\u0430\u044F `beforeId`, \u0434\u043E \u043D\u0430\u0447\u0430\u043B\u0430 \u0438\u0441\u0442\u043E\u0440\u0438\u0438).\n\n```jsonc\nbitrix_chat_load { "dialogId": 11 } // \u043B\u0438\u0447\u043D\u044B\u0439 \u0447\u0430\u0442 \u044E\u0437\u0435\u0440\u0430 11 \u2192 \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 chatId\nbitrix_chat_history { "chatId": 485, "beforeId": 1861279 }\nbitrix_chat_mark_read { "chatId": 40271, "ids": [1884131] } // \u26A0 \u043C\u0443\u0442\u0438\u0440\u0443\u044E\u0449\u0438\u0439; actionUuid \u2014 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u043E\u043C\n```\n\n\u{1F4D6} \u041F\u0443\u0431\u043B\u0438\u0447\u043D\u044B\u0435 \u0430\u043D\u0430\u043B\u043E\u0433\u0438 \u0447\u0442\u0435\u043D\u0438\u044F \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0439: `im.dialog.messages.get` (\u0434\u0435\u0444\u043E\u043B\u0442 20, \u043C\u0430\u043A\u0441 50; \u043B\u0438\u0441\u0442\u0430\u043D\u0438\u0435\n`LAST_ID` \u2014 \u0441\u0442\u0430\u0440\u0435\u0435, `FIRST_ID` \u2014 \u043D\u043E\u0432\u0435\u0435); `imbot.v2 chat.getMessageContext` \u2014 \u043E\u0442\u0432\u0435\u0442 `messages[]`\n(oldest\u2192newest) + `users[]` + `hasPrevPage`/`hasNextPage`, \u043F\u043E \u0444\u043E\u0440\u043C\u0435 **\u0441\u043E\u0432\u043F\u0430\u0434\u0430\u0435\u0442** \u0441 \u0432\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u0438\u043C\u0438\n`im.v2.Chat.Message.*`.\n\n### 5.2. \u041E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435 (\u0447\u0430\u0442) \u043A\u043E\u043D\u043A\u0440\u0435\u0442\u043D\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438\n\n**\u0410. \u041F\u0440\u044F\u043C\u043E\u0439 \u0440\u0435\u0437\u043E\u043B\u0432 \u2014 \u043F\u0440\u0435\u0434\u043F\u043E\u0447\u0442\u0438\u0442\u0435\u043B\u044C\u043D\u043E.** `bitrix_task_get` \u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 `CHAT_ID` \u0447\u0430\u0442\u0430-\u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u044F (\u0432\u0445\u043E\u0434\u0438\u0442\n\u0432 \u0434\u0435\u0444\u043E\u043B\u0442\u043D\u044B\u0439 `select` \u{1F4D6}) \u2014 \u044D\u0442\u043E `taskId \u2192 chatId` \u0431\u0435\u0437 \u043F\u043E\u0438\u0441\u043A\u0430 \u043F\u043E \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044E \u0438 \u0431\u0435\u0437 \u043F\u0440\u043E\u043C\u0430\u0445\u0430 \u043F\u043E \u0442\u0451\u0437\u043A\u0430\u043C:\n\n```jsonc\nbitrix_task_get { "taskId": 28373 } // \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 CHAT_ID\nbitrix_chat_load { "chatId": <CHAT_ID> }\nbitrix_chat_history { "chatId": <CHAT_ID>, "beforeId": <\u043C\u0438\u043D id \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B> }\n```\n\n\u041E\u0431\u0449\u0430\u044F \u0430\u043B\u044C\u0442\u0435\u0440\u043D\u0430\u0442\u0438\u0432\u0430 \u2014 **`bitrix_entity_chat`** (\u043E\u0431\u0451\u0440\u0442\u043A\u0430 \u043D\u0430\u0434 `im.chat.get`): chatId \u043B\u044E\u0431\u043E\u0433\u043E \u0441\u0432\u044F\u0437\u0430\u043D\u043D\u043E\u0433\u043E\n\u043E\u0431\u044A\u0435\u043A\u0442\u0430 \u043F\u043E \u043F\u0430\u0440\u0435 `entityType`/`entityId`; \u043A\u0440\u043E\u043C\u0435 `TASKS_TASK` \u0442\u0430\u043A \u0436\u0435 \u0430\u0434\u0440\u0435\u0441\u0443\u044E\u0442\u0441\u044F `SONET_GROUP`\n(\u0433\u0440\u0443\u043F\u043F\u0430/\u043F\u0440\u043E\u0435\u043A\u0442), `CRM`, `CALENDAR`, `MAIL`, `VIDEOCONF`, `CALL`:\n\n```jsonc\nbitrix_entity_chat { "entityType": "TASKS_TASK", "entityId": 28373 } // \u2192 chatId\n```\n\n**\u0411. \u0427\u0435\u0440\u0435\u0437 \u0441\u043F\u0438\u0441\u043E\u043A \u0447\u0430\u0442\u043E\u0432 \u0437\u0430\u0434\u0430\u0447** (\u0441\u0435\u043A\u0446\u0438\u044F `tasksTask`; \u0432 `bitrix_chats_recent` \u0438\u0445 \u041D\u0415\u0422):\n\n```jsonc\nbitrix_recent_load { "section": "tasksTask" } // \u2192 \u0447\u0430\u0442\u044B \u0437\u0430\u0434\u0430\u0447 \u0441 chatId/dialogId\nbitrix_recent_tail { "section": "tasksTask", "lastMessageDate": "2026-06-29T17:25:38+03:00" }\nbitrix_chat_load { "dialogId": "chat38849" } // \u0438\u043B\u0438 { "chatId": 38849 }\n```\n\n**\u0427\u0430\u0442 \u043F\u0443\u0441\u0442, \u0430 `COMMENTS_COUNT > 0`** \u2014 \u0437\u0430\u0434\u0430\u0447\u0430 \u0441\u0442\u0430\u0440\u0448\u0435 \u0447\u0430\u0442\u043E\u0432 \u0437\u0430\u0434\u0430\u0447: \u0432 \u0447\u0430\u0442\u0435 \u0442\u043E\u043B\u044C\u043A\u043E \u0441\u0438\u0441\u0442\u0435\u043C\u043D\u043E\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435\n\xAB\u0427\u0442\u043E\u0431\u044B \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044C \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0438, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0440\u0430\u043D\u0435\u0435 \u043E\u0441\u0442\u0430\u0432\u0438\u043B\u0438 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u0437\u0430\u0434\u0430\u0447\u0438\u2026\xBB, \u0430 \u0441\u0430\u043C\u043E \u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435 \u043B\u0435\u0436\u0438\u0442 \u0432\n\u0444\u043E\u0440\u0443\u043C\u0435 \u2192 `bitrix_task_comments` (\xA75.6).\n\n**\u0412. \u041F\u043E\u0438\u0441\u043A\u043E\u043C \u043F\u043E \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044E \u0437\u0430\u0434\u0430\u0447\u0438** (\u0437\u0430\u043F\u0430\u0441\u043D\u043E\u0439, \u043C\u0430\u0442\u0447 \u043F\u043E \u0442\u0435\u043A\u0441\u0442\u0443):\n`bitrix_entity_search { "query": "\u0442\u0440\u0435\u043A\u0435\u0440", "section": "tasksTask" }`\n\n**\u0427\u0430\u0442 \u041F\u0420\u041E\u0415\u041A\u0422\u0410 \u0437\u0430\u0434\u0430\u0447\u0438** (\u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435 \u0433\u0440\u0443\u043F\u043F\u044B, \u043D\u0435 \u0441\u0430\u043C\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438) \u2014 \u0447\u0435\u0440\u0435\u0437 `GROUP_ID`:\n\n```jsonc\nbitrix_task_get { "taskId": 4229, "params": { "select": ["ID","GROUP_ID"] } }\nbitrix_project_get { "groupId": 15 } // \u043E\u0442\u0434\u0430\u0451\u0442 CHAT_ID / DIALOG_ID\nbitrix_chat_get_dialog_id { "externalId": "sg15" } // \u043B\u0438\u0431\u043E \u0440\u0435\u0437\u043E\u043B\u0432 dialogId \u0441\u043E\u0446\u0433\u0440\u0443\u043F\u043F\u044B \u043D\u0430\u043F\u0440\u044F\u043C\u0443\u044E\n```\n\n### 5.3. \u041F\u043E\u0438\u0441\u043A \u0447\u0430\u0442\u0430 / \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F\n\n`bitrix_entity_search` (\u043E\u0431\u0451\u0440\u0442\u043A\u0430 \u043D\u0430\u0434 \u0432\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u0438\u043C `ui.entityselector.doSearch`) \u0441\u0430\u043C \u0441\u043E\u0431\u0438\u0440\u0430\u0435\u0442 \u0434\u0438\u0430\u043B\u043E\u0433\n`IM_CHAT_SEARCH` \u0438 `searchQuery` \u0438\u0437 \u0441\u0442\u0440\u043E\u043A\u0438. \u041F\u0443\u0431\u043B\u0438\u0447\u043D\u044B\u0435 \u0430\u043D\u0430\u043B\u043E\u0433\u0438: \u043B\u044E\u0434\u0438 \u2014 `user.get`/`user.search`, \u0447\u0430\u0442\u044B \u2014\n`im.recent.list` + \u0444\u0438\u043B\u044C\u0442\u0440\u0430\u0446\u0438\u044F \u0443 \u0441\u0435\u0431\u044F.\n\n```jsonc\nbitrix_entity_search { "query": "\u0434\u043C\u0438\u0442\u0440\u0438\u0439" } // \u0441\u0440\u0435\u0434\u0438 \u0432\u0441\u0435\u0445 \u0447\u0430\u0442\u043E\u0432/\u0434\u0438\u0430\u043B\u043E\u0433\u043E\u0432\nbitrix_entity_search { "query": "\u0442\u0440\u0435\u043A\u0435\u0440", "section": "tasksTask" } // \u0441\u0440\u0435\u0434\u0438 \u0447\u0430\u0442\u043E\u0432 \u0437\u0430\u0434\u0430\u0447\nbitrix_user_get { "userId": 11 } // \u0440\u0435\u0437\u043E\u043B\u0432 authorId \u2192 \u0438\u043C\u044F\n```\n\n### 5.4. \u0421\u043E\u0437\u0432\u043E\u043D: \u0440\u0435\u0437\u044E\u043C\u0435, \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0430, \u0437\u0430\u043F\u0438\u0441\u044C\n\nAI-\u0430\u043D\u0430\u043B\u0438\u0437 \u0437\u0432\u043E\u043D\u043A\u0430 (BitrixGPT Follow-Up) \u0436\u0438\u0432\u0451\u0442 \u043D\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u043D\u043E \u043E\u0442\u0440\u0435\u043D\u0434\u0435\u0440\u0435\u043D\u043D\u043E\u0439 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0435 `/call/detail/<callId>`\n\u2014 JSON-\u044D\u043D\u0434\u043F\u043E\u0438\u043D\u0442\u0430 \u043F\u043E\u0434 \u043D\u0435\u0439 \u043D\u0435\u0442, \u043F\u0443\u0431\u043B\u0438\u0447\u043D\u043E\u0433\u043E REST \u0434\u043B\u044F \u0432\u0438\u0434\u0435\u043E\u0432\u0441\u0442\u0440\u0435\u0447 \u0442\u043E\u0436\u0435 (\u{1F4D6} \u0442\u043E\u043B\u044C\u043A\u043E \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0438\u044F `voximplant.*`\n\u0438 `crm.activity.call.getTranscript`). \u041C\u043E\u0441\u0442 \u0447\u0438\u0442\u0430\u0435\u0442 \u044D\u0442\u0443 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443 \u0438 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u0442 \u0435\u0451 \u0432 \u043D\u043E\u0440\u043C\u0430\u043B\u0438\u0437\u043E\u0432\u0430\u043D\u043D\u044B\u0439 JSON.\n\n**1) \u041D\u0430\u0439\u0442\u0438 \u0437\u0432\u043E\u043D\u043A\u0438.** \u0421\u0435\u0440\u0432\u0435\u0440\u043D\u043E\u0433\u043E \u043F\u043E\u0438\u0441\u043A\u0430 \u0437\u0432\u043E\u043D\u043A\u043E\u0432 \u043F\u043E \u043F\u043E\u0440\u0442\u0430\u043B\u0443 \u043D\u0435\u0442 \u2014 \u0438\u0449\u0435\u043C \u0432 \u043A\u043E\u043D\u043A\u0440\u0435\u0442\u043D\u043E\u043C \u0447\u0430\u0442\u0435: \u0437\u0432\u043E\u043D\u043E\u043A\n\u043E\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u0442 \u0441\u0438\u0441\u0442\u0435\u043C\u043D\u043E\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u0441 `params.COMPONENT_PARAMS = { messageType: "START", callId }`.\n\n```jsonc\nbitrix_chat_calls { "chatId": 9876 } // \u0447\u0430\u0442 \u043F\u0440\u043E\u0435\u043A\u0442\u0430: bitrix_project_get \u2192 CHAT_ID\nbitrix_chat_calls { "chatId": 9876, "maxPages": 10, "beforeId": 5001 } // \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C \u0432\u0433\u043B\u0443\u0431\u044C (maxPages \u2264 10)\n```\n\n\u041E\u0442\u0432\u0435\u0442: `calls[] { callId, startedAt, startedBy, startMessageId, events[], summaryMessageId }` \u043F\u043B\u044E\u0441\n`scannedPages` / `oldestScannedMessageId` / **`reachedHistoryStart`** \u2014 \u0435\u0441\u043B\u0438 \u043E\u043D `false`, \u0438\u0441\u0442\u043E\u0440\u0438\u044F\n\u0434\u043E\u0447\u0438\u0442\u0430\u043D\u0430 \u041D\u0415 \u0434\u043E \u043A\u043E\u043D\u0446\u0430, \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0430\u0439 \u0441 `beforeId: <oldestScannedMessageId>`.\n\n**2) \u0412\u0437\u044F\u0442\u044C \u0432\u0441\u0451 \u043F\u043E \u0437\u0432\u043E\u043D\u043A\u0443.**\n\n```jsonc\nbitrix_call_detail { "callId": 4242 } // \u0432\u0441\u0451; \u0434\u043B\u0438\u043D\u043D\u0430\u044F \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0430 \u0443\u0435\u0434\u0435\u0442 \u0432 \u0444\u0430\u0439\u043B\nbitrix_call_detail { "callId": 4242, "transcript": "inline" } // \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0430 \u043F\u0440\u044F\u043C\u043E \u0432 \u043E\u0442\u0432\u0435\u0442\u0435\nbitrix_call_detail { "callId": 4242, "transcript": "none" } // \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0430 \u043D\u0435 \u043D\u0443\u0436\u043D\u0430 \u0432\u043E\u0432\u0441\u0435\nbitrix_call_detail { "callId": 4242, "transcript": "file" } // \u0432\u0441\u0435\u0433\u0434\u0430 \u0432 \u0444\u0430\u0439\u043B, \u0434\u0430\u0436\u0435 \u043A\u043E\u0440\u043E\u0442\u043A\u0430\u044F\n```\n\n| \u041F\u043E\u043B\u0435 \u043E\u0442\u0432\u0435\u0442\u0430 | \u0427\u0442\u043E \u0432\u043D\u0443\u0442\u0440\u0438 |\n|---|---|\n| `title`, `agenda`, `meetingType` | \u0442\u0435\u043C\u0430, \u0432\u0441\u0442\u0443\u043F\u043B\u0435\u043D\u0438\u0435, \u0442\u0438\u043F \u0432\u0441\u0442\u0440\u0435\u0447\u0438 (\xAB\u0421\u0442\u0430\u0442\u0443\u0441-\u0432\u0441\u0442\u0440\u0435\u0447\u0430\xBB) |\n| `date`, `interval`, `duration` | \xAB23 \u0438\u044E\u043B\u044F, 15:46\xBB, \xAB15:46 - 16:51\xBB, \xAB1 \u0447 4 \u043C\u0438\u043D\xBB |\n| `efficiency`, `qualityChecklist[]` | \u043E\u0446\u0435\u043D\u043A\u0430 \u0432\u0441\u0442\u0440\u0435\u0447\u0438 \u0432 % \u0438 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 `{ ok, text }` |\n| `participants[]` | `{ id, name, talkTimePercent, talkTime, efficiency, metrics[], insight }` |\n| `overview`, `chapters[]` | \u043E\u0431\u0449\u0435\u0435 \u0440\u0435\u0437\u044E\u043C\u0435 \u0438 \u0433\u043B\u0430\u0432\u044B `{ from, to, title, text }` \u0441 \u0442\u0430\u0439\u043C\u043A\u043E\u0434\u0430\u043C\u0438 |\n| `decisions[]`, `tasks[]` | \xAB\u0447\u0442\u043E \u0440\u0435\u0448\u0438\u043B\u0438\xBB \u0438 \u0437\u0430\u0434\u0430\u0447\u0438 `{ assigneeId, assignee, text }` |\n| `transcript[]`, `transcriptCount` | \u0440\u0435\u043F\u043B\u0438\u043A\u0438 `{ from, to, speakerId, speaker, text }` |\n| `recording` | `{ path, url, trackId }` \u2014 \u0430\u0443\u0434\u0438\u043E\u0437\u0430\u043F\u0438\u0441\u044C, \u043A\u0430\u0447\u0430\u0435\u0442\u0441\u044F `bitrix_call_recording` (\xA75.5) |\n\n**\u0420\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0430 \u0434\u043B\u0438\u043D\u043D\u043E\u0433\u043E \u0437\u0432\u043E\u043D\u043A\u0430 \u043D\u0435 \u043F\u0440\u0438\u0445\u043E\u0434\u0438\u0442 \u0432 \u043E\u0442\u0432\u0435\u0442\u0435.** \u0423 \u0447\u0430\u0441\u043E\u0432\u043E\u0439 \u0432\u0441\u0442\u0440\u0435\u0447\u0438 \u043E\u043D\u0430 \u0434\u0430\u0451\u0442 ~70 \u041A\u0411 \u0438\u0437 80 \u041A\u0411, \u043F\u043E\u044D\u0442\u043E\u043C\u0443\n\u0441\u0432\u044B\u0448\u0435 ~20 \u041A\u0411 (\u0440\u0435\u0436\u0438\u043C `"auto"` = \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u0435) \u043F\u0438\u0448\u0435\u0442\u0441\u044F \u043D\u0430 \u0434\u0438\u0441\u043A, \u0430 \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 \u043E\u0441\u0442\u0430\u044E\u0442\u0441\u044F `transcript: []`,\n`transcriptCount` \u0438 **`files`**: `files.transcript` \u2014 `call-<id>-transcript.txt`, \u0433\u0434\u0435 \u0441\u0442\u0440\u043E\u043A\u0430 = \u0440\u0435\u043F\u043B\u0438\u043A\u0430\n(`[11:10\u201411:24] \u0418\u043C\u044F \u0424\u0430\u043C\u0438\u043B\u0438\u044F: \u2026`), \u0435\u0451 \u0443\u0434\u043E\u0431\u043D\u043E **\u0433\u0440\u0435\u043F\u0430\u0442\u044C** (\u043D\u0430\u0439\u0434\u0435\u043D\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430 \u0441\u0430\u043C\u0430 \u043D\u0435\u0441\u0451\u0442 \u0442\u0430\u0439\u043C\u043A\u043E\u0434 \u0438\n\u0441\u043F\u0438\u043A\u0435\u0440\u0430); `files.json` \u2014 \u043F\u043E\u043B\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442 \u0441 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u043E\u0439. \u041E\u0431\u0430 \u0444\u0430\u0439\u043B\u0430 \u2014 \u043A\u0435\u0448 \u0437\u0432\u043E\u043D\u043A\u0430, \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0438\u0441\u044B\u0432\u0430\u044E\u0442\u0441\u044F.\n\n\u0422\u043E\u043D\u043A\u043E\u0441\u0442\u0438:\n- **`speakerId`** \u0440\u0435\u0437\u043E\u043B\u0432\u0438\u0442\u0441\u044F \u043F\u043E \u0438\u043C\u0435\u043D\u0438 \u0438\u0437 \u0442\u0430\u0431\u043B\u0438\u0446\u044B \u0430\u043D\u0430\u043B\u0438\u0437\u0430; \u043A\u0442\u043E \u0433\u043E\u0432\u043E\u0440\u0438\u043B \u043C\u0430\u043B\u043E \u0438 \u0432 \u043D\u0435\u0451 \u043D\u0435 \u043F\u043E\u043F\u0430\u043B \u2014 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\n `speakerId: null`, \u043D\u043E \u043E\u0441\u0442\u0430\u043D\u0435\u0442\u0441\u044F \u0432 `participants` \u0441 `id: null`.\n- **`assigneeId` \u0437\u0430\u0434\u0430\u0447\u0438** \u2014 \u0443\u043F\u043E\u043C\u044F\u043D\u0443\u0442\u044B\u0439 \u0432 \u0442\u0435\u043A\u0441\u0442\u0435 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C, \u0430 \u041D\u0415 id \u0441\u043C\u043E\u0442\u0440\u044F\u0449\u0435\u0433\u043E.\n- \u041D\u0435\u0442 \u0434\u043E\u0441\u0442\u0443\u043F\u0430 \u043A \u0437\u0432\u043E\u043D\u043A\u0443 / \u043F\u0440\u043E\u0442\u0443\u0445\u043B\u0430 \u0441\u0435\u0441\u0441\u0438\u044F \u2192 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442 \u0432\u0435\u0440\u043D\u0451\u0442 \u0432\u043D\u044F\u0442\u043D\u0443\u044E \u043E\u0448\u0438\u0431\u043A\u0443 (\u043F\u043E\u0440\u0442\u0430\u043B \u043E\u0442\u0434\u0430\u0451\u0442 HTML \u043B\u043E\u0433\u0438\u043D\u0430).\n\n### 5.5. \u0421\u043A\u0430\u0447\u0430\u0442\u044C \u0444\u0430\u0439\u043B (\u0432\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0447\u0430\u0442\u0430, \u0444\u0430\u0439\u043B \u0437\u0430\u0434\u0430\u0447\u0438, \u0437\u0430\u043F\u0438\u0441\u044C \u0437\u0432\u043E\u043D\u043A\u0430)\n\n\u0421\u0441\u044B\u043B\u043A\u0438 \u043F\u043E\u0440\u0442\u0430\u043B \u043C\u0438\u043D\u0442\u0438\u0442 \u0438 \u043F\u043E\u0434\u043F\u0438\u0441\u044B\u0432\u0430\u0435\u0442 \u0441\u0430\u043C, \u043D\u043E \u043F\u043E\u0434\u043F\u0438\u0441\u044C \u041D\u0415 \u0437\u0430\u043C\u0435\u043D\u044F\u0435\u0442 \u0430\u0432\u0442\u043E\u0440\u0438\u0437\u0430\u0446\u0438\u044E \u2014 \u043A\u0430\u0447\u0430\u0435\u0442 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u0435 \u0432\n\u0441\u0435\u0441\u0441\u0438\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F.\n\n```jsonc\n// \u0432\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0447\u0430\u0442\u0430: \u0441\u0441\u044B\u043B\u043A\u0443 \u0431\u0435\u0440\u0451\u043C \u0438\u0437 files[].urlDownload \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 bitrix_chat_load\nbitrix_file_download { "url": "https://<\u043F\u043E\u0440\u0442\u0430\u043B>/bitrix/services/main/ajax.php?action=disk.api.file.download&\u2026" }\nbitrix_call_recording { "callId": 4242 } // \u0430\u0443\u0434\u0438\u043E\u0437\u0430\u043F\u0438\u0441\u044C \u0441\u043E\u0437\u0432\u043E\u043D\u0430 (\u0441\u0441\u044B\u043B\u043A\u0443 \u043D\u0430\u0439\u0434\u0451\u0442 \u0441\u0430\u043C)\nbitrix_file_download { "url": "\u2026", "savePath": "/tmp/photo.png", "overwrite": true }\n```\n\n\u041E\u0442\u0432\u0435\u0442 \u2014 **\u043F\u0443\u0442\u044C, \u0430 \u043D\u0435 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0435**: `{ path, bytes, contentType, fileName }` (\u0433\u0438\u0433\u0430\u0431\u0430\u0439\u0442\u044B \u043D\u0435 \u043F\u043E\u043F\u0430\u0434\u0430\u044E\u0442 \u0432\n\u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442). \u041F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0444\u0430\u0439\u043B \u043B\u043E\u0436\u0438\u0442\u0441\u044F \u0432 `~/.bitrix24-mcp-bridge/downloads/`; `savePath` \u0431\u0435\u0437 \u0432\u0435\u0434\u0443\u0449\u0435\u0433\u043E `/`\n\u0442\u0440\u0430\u043A\u0442\u0443\u0435\u0442\u0441\u044F \u043A\u0430\u043A \u0438\u043C\u044F \u0432\u043D\u0443\u0442\u0440\u0438 \u044D\u0442\u043E\u0439 \u043F\u0430\u043F\u043A\u0438. \u041F\u043E\u0442\u043E\u043B\u043E\u043A \u2014 512 \u041C\u0411.\n\n\u041C\u043E\u0441\u0442 \u043D\u0438\u0447\u0435\u0433\u043E \u0438\u0437 `downloads/` \u043D\u0435 \u0443\u0434\u0430\u043B\u044F\u0435\u0442. \u041A\u043E\u0433\u0434\u0430 \u0444\u0430\u0439\u043B\u044B \u043F\u0430\u043F\u043A\u0438 \u0432 \u0441\u0443\u043C\u043C\u0435 \u0431\u043E\u043B\u044C\u0448\u0435 500 \u041C\u0411, \u043E\u0442\u0432\u0435\u0442\u044B \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0439,\n\u0437\u0430\u043F\u0438\u0441\u0430\u0432\u0448\u0438\u0445 \u0444\u0430\u0439\u043B \u0432 \u044D\u0442\u0443 \u043F\u0430\u043F\u043A\u0443 (`bitrix_file_download`, `bitrix_call_recording`, `bitrix_call_detail` \u0438\n`bitrix_task_comments` \u2014 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0435 \u0434\u0432\u0435, \u043A\u043E\u0433\u0434\u0430 \u0441\u043E\u0445\u0440\u0430\u043D\u0438\u043B\u0438 \u0444\u0430\u0439\u043B; \u0441 `savePath` \u0432\u043D\u0435 \u043F\u0430\u043F\u043A\u0438 \u2014 \u043D\u0435\u0442), \u0438\n`bitrix_status` \u043D\u0435\u0441\u0443\u0442 `warning` \xAB\u043F\u0430\u043F\u043A\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043E\u043A \u043C\u043E\u0441\u0442\u0430 \u2026 \u0437\u0430\u043D\u0438\u043C\u0430\u0435\u0442 N \u041C\u0411 \u2014\n\u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u043D\u0435\u043D\u0443\u0436\u043D\u044B\u0435 \u0444\u0430\u0439\u043B\u044B\u2026\xBB \u2014 \u043F\u0435\u0440\u0435\u0434\u0430\u0439 \u044D\u0442\u043E \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E.\n\n\u0422\u043E\u043D\u043A\u043E\u0441\u0442\u0438:\n- **\u0422\u043E\u043B\u044C\u043A\u043E \u0441\u0441\u044B\u043B\u043A\u0438 \u043D\u0430 \u0444\u0430\u0439\u043B\u044B** \u0441\u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0433\u043E \u043F\u043E\u0440\u0442\u0430\u043B\u0430: `/bitrix/services/main/ajax.php` \u0441 `action`\n `disk.api.file.download` / `disk.attachedObject.download` / `call.Track.download` \u0438\u043B\u0438\n `/bitrix/tools/disk/uf.php` \u0441 `action` `download` / `show` / `downloadArchiveByEntity`. \u0427\u0443\u0436\u043E\u0439 origin\n \u2192 `not a configured portal`; \u0434\u0440\u0443\u0433\u043E\u0439 \u043F\u0443\u0442\u044C, \u0434\u0440\u0443\u0433\u043E\u0439, \u043F\u043E\u0432\u0442\u043E\u0440\u0451\u043D\u043D\u044B\u0439 \u0438\u043B\u0438 `action[]` \u2192 `not a portal file\n link`. \u0411\u0435\u0440\u0438 \u0441\u0441\u044B\u043B\u043A\u0438 \u0438\u0437 \u043E\u0442\u0432\u0435\u0442\u043E\u0432 \u043C\u043E\u0441\u0442\u0430, \u043D\u0435 \u0441\u043E\u0431\u0438\u0440\u0430\u0439 \u0438\u0445 \u0441\u0430\u043C.\n- **\u0418\u043C\u044F \u0434\u0430\u0451\u0442 \u043F\u043E\u0440\u0442\u0430\u043B** (`Content-Disposition`), \u043F\u043E\u044D\u0442\u043E\u043C\u0443 \u0431\u0435\u0437 `savePath` \u0443\u0433\u0430\u0434\u044B\u0432\u0430\u0442\u044C \u0435\u0433\u043E \u043D\u0435 \u043D\u0443\u0436\u043D\u043E.\n- **\u041F\u043E\u0432\u0442\u043E\u0440\u043D\u043E\u0435 \u0441\u043A\u0430\u0447\u0438\u0432\u0430\u043D\u0438\u0435** \u0442\u043E\u0433\u043E \u0436\u0435 \u0444\u0430\u0439\u043B\u0430 \u043F\u0430\u0434\u0430\u0435\u0442 \u0441 `already exists` \u2014 \u043F\u0435\u0440\u0435\u0434\u0430\u0439 `overwrite: true`.\n\n### 5.6. \u0421\u0442\u0430\u0440\u044B\u0435 \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 (\u0444\u043E\u0440\u0443\u043C)\n\n\u0414\u043E \u043F\u0435\u0440\u0435\u0445\u043E\u0434\u0430 \u043D\u0430 \u0447\u0430\u0442\u044B \u0437\u0430\u0434\u0430\u0447 \u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435 \u0436\u0438\u043B\u043E \u0432 \u0444\u043E\u0440\u0443\u043C\u0435 \u0437\u0430\u0434\u0430\u0447\u0438, \u0438 \u0443 \u0441\u0442\u0430\u0440\u044B\u0445 \u0437\u0430\u0434\u0430\u0447 \u043E\u043D\u043E \u0442\u0430\u043C \u0438 \u043E\u0441\u0442\u0430\u043B\u043E\u0441\u044C: \u0432\n\u0447\u0430\u0442\u0435 (`CHAT_ID`) \u0442\u043E\u043B\u044C\u043A\u043E \u0441\u0438\u0441\u0442\u0435\u043C\u043D\u0430\u044F \u0437\u0430\u0433\u043B\u0443\u0448\u043A\u0430 \u0441\u043E \u0441\u0441\u044B\u043B\u043A\u043E\u0439 `/task/comments/<id>/`. \u041F\u0440\u0438\u0437\u043D\u0430\u043A \u2014 \u0432\n`bitrix_task_get` \u043F\u043E\u043B\u0435 `COMMENTS_COUNT > 0` (\u0447\u0435\u0440\u0435\u0437 `params.select`; `FORUM_TOPIC_ID` \u0442\u043E\u0436\u0435 \u0437\u0430\u043F\u043E\u043B\u043D\u0435\u043D),\n\u0430 \u0447\u0430\u0442 \u043F\u0443\u0441\u0442. JSON-\u043C\u0435\u0442\u043E\u0434\u0430 \u0447\u0442\u0435\u043D\u0438\u044F \u043D\u0435\u0442 \u2014 \u043C\u043E\u0441\u0442 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u0442 HTML-\u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443 \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0435\u0432.\n\n```jsonc\nbitrix_task_comments { "taskId": 1234 } // \u0432\u0441\u0451 \u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435; \u0434\u043B\u0438\u043D\u043D\u043E\u0435 \u0443\u0435\u0434\u0435\u0442 \u0432 \u0444\u0430\u0439\u043B\nbitrix_task_comments { "taskId": 1234, "limit": 10 } // \u0442\u043E\u043B\u044C\u043A\u043E 10 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0445\nbitrix_task_comments { "taskId": 1234, "output": "inline" } // \u0432\u0441\u0435\u0433\u0434\u0430 \u0432 \u043E\u0442\u0432\u0435\u0442\u0435\nbitrix_task_comments { "taskId": 1234, "beforeId": 5678 } // \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C \u0432\u0433\u043B\u0443\u0431\u044C \u043E\u0442 id\n```\n\n\u041E\u0442\u0432\u0435\u0442: `comments[]` \u043F\u043E \u043F\u043E\u0440\u044F\u0434\u043A\u0443 (\u0441\u0442\u0430\u0440\u044B\u0435 \u2192 \u043D\u043E\u0432\u044B\u0435) \u2014 `{ id, authorId, author, date, dateIso, text, isNew,\nsystem, files[] }`, \u043F\u043B\u044E\u0441 `total`, `oldestId`, `scannedPages` \u0438 **`reachedHistoryStart`**: \u0435\u0441\u043B\u0438 \u043E\u043D\n`false` (\u0443\u043F\u0451\u0440\u043B\u0438\u0441\u044C \u0432 `maxPages` \u2014 \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u0435 \u0438 \u043C\u0430\u043A\u0441\u0438\u043C\u0443\u043C 10 \u2014 \u0438\u043B\u0438 \u0432 `limit`), \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0430\u0439 \u0441 `beforeId: <oldestId>`.\n\n- **`system: true`** \u2014 \u0441\u043B\u0443\u0436\u0435\u0431\u043D\u044B\u0435 \u0437\u0430\u043F\u0438\u0441\u0438 (\xAB\u0432\u044B \u043D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u044B \u0438\u0441\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u0435\u043C\xBB, \u0441\u043C\u0435\u043D\u0430 \u0441\u0440\u043E\u043A\u0430, \u043F\u0438\u043D\u0433\u0438), \u043D\u0435 \u0441\u043B\u043E\u0432\u0430 \u043B\u044E\u0434\u0435\u0439.\n- **`date`** \u2014 \u043A\u0430\u043A \u043D\u0430 \u043F\u043E\u0440\u0442\u0430\u043B\u0435 (\xAB9 \u043C\u0430\u0440\u0442\u0430 2024 08:15\xBB), **`dateIso`** \u2014 \u0442\u043E \u0436\u0435 \u0432 `2024-03-09T08:15`\n (\u043C\u0435\u0441\u0442\u043D\u043E\u0435 \u0432\u0440\u0435\u043C\u044F \u043F\u043E\u0440\u0442\u0430\u043B\u0430; \u0434\u043B\u044F \xAB\u0432\u0447\u0435\u0440\u0430, 12:00\xBB \u0438 \u0434\u0430\u0442 \u0431\u0435\u0437 \u0433\u043E\u0434\u0430 \u2014 `null`).\n- **`files[]`** \u2014 `{ attachedId, name, size, url }`; `url` \u0441\u043A\u0430\u0440\u043C\u043B\u0438\u0432\u0430\u0439 `bitrix_file_download` (\xA75.5).\n- **`text`** \u2014 \u0431\u0435\u0437 \u0440\u0430\u0437\u043C\u0435\u0442\u043A\u0438; \u0443 \u0441\u0441\u044B\u043B\u043A\u0438 \u0441 \u043F\u043E\u0434\u043F\u0438\u0441\u044C\u044E \u0430\u0434\u0440\u0435\u0441 \u0434\u043E\u043F\u0438\u0441\u0430\u043D \u0432 \u0441\u043A\u043E\u0431\u043A\u0430\u0445: \xAB\u043C\u0430\u043A\u0435\u0442 (https://\u2026)\xBB.\n- **\u0414\u043B\u0438\u043D\u043D\u043E\u0435 \u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435 \u043D\u0435 \u043F\u0440\u0438\u0445\u043E\u0434\u0438\u0442 \u0432 \u043E\u0442\u0432\u0435\u0442\u0435** (\u043A\u0430\u043A \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0430 \u0437\u0432\u043E\u043D\u043A\u0430, \xA75.4): \u0441\u0432\u044B\u0448\u0435 ~20 \u041A\u0411 (`output:\n "auto"` = \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u0435) \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 `comments: []` \u0438 `files`: `files.text` \u2014 `task-<id>-comments.txt`,\n \u0441\u0442\u0440\u043E\u043A\u0430 = \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0439 (`#5678 [2024-03-09T08:15] \u0418\u043C\u044F (id 101): \u0442\u0435\u043A\u0441\u0442`, \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u044B \u2014 ` \u23CE `), \u0435\u0451 \u0443\u0434\u043E\u0431\u043D\u043E\n \u0433\u0440\u0435\u043F\u0430\u0442\u044C; `files.json` \u2014 \u043F\u043E\u043B\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442. `output: "file"` \u2014 \u0432\u0441\u0435\u0433\u0434\u0430 \u0432 \u0444\u0430\u0439\u043B.\n- **\u041F\u0440\u043E\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u043C \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u043F\u043E\u043C\u0435\u0447\u0430\u0435\u0442\u0441\u044F.** \u041F\u043E\u0440\u0442\u0430\u043B \u043E\u0442\u043C\u0435\u0447\u0430\u0435\u0442 \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0438 \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u044B\u043C \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435\u043C\n `readComment`, \u043A\u043E\u0442\u043E\u0440\u043E\u0435 \u0448\u043B\u0451\u0442 JS \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B \u043F\u0440\u0438 \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0435; \u043C\u043E\u0441\u0442 JS \u043D\u0435 \u0438\u0441\u043F\u043E\u043B\u043D\u044F\u0435\u0442. \u041F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043E:\n `viewedDate` \u0437\u0430\u0434\u0430\u0447\u0438 \u043F\u043E\u0441\u043B\u0435 \u0447\u0442\u0435\u043D\u0438\u044F \u043D\u0435 \u043C\u0435\u043D\u044F\u0435\u0442\u0441\u044F. `isNew: true` \u2014 \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0439 \u043D\u0435 \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u043D \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u043C.\n- \u041D\u0435\u0442 \u0434\u043E\u0441\u0442\u0443\u043F\u0430 \u043A \u0437\u0430\u0434\u0430\u0447\u0435 / \u043F\u0440\u043E\u0442\u0443\u0445\u043B\u0430 \u0441\u0435\u0441\u0441\u0438\u044F \u2192 \u0432\u043D\u044F\u0442\u043D\u0430\u044F \u043E\u0448\u0438\u0431\u043A\u0430 (\u043F\u043E\u0440\u0442\u0430\u043B \u043E\u0442\u0434\u0430\u0451\u0442 HTML \u043B\u043E\u0433\u0438\u043D\u0430).\n\n### 5.7. \u0417\u0430\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443: Definition of Done\n\n\u0412 scrum-\u043F\u0440\u043E\u0435\u043A\u0442\u0435 \u0437\u0430\u0434\u0430\u0447\u0430 \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0435\u0442\u0441\u044F \u0447\u0435\u0440\u0435\u0437 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0433\u043E\u0442\u043E\u0432\u043D\u043E\u0441\u0442\u0438 (DoD), \u043A\u0430\u043A \u0432 \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0435 \u0437\u0430\u0434\u0430\u0447\u0438, \u0438 **\u043C\u043E\u0441\u0442 \u0438\u0445\n\u043D\u0435 \u043E\u0431\u0445\u043E\u0434\u0438\u0442**: \u043E\u0442\u043C\u0435\u0442\u0438\u0442\u044C \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043D\u044B\u043C\u0438 \u043C\u043E\u0436\u0435\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u0432\u0442\u043E\u0440\u043E\u0439 \u0432\u044B\u0437\u043E\u0432 \u2014 \u043F\u043E\u0441\u043B\u0435 \u044F\u0432\u043D\u043E\u0433\u043E \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u044F\n\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F. \u041F\u0435\u0440\u0435\u043D\u043E\u0441 \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u0442\u0438\u043F\u0430 `FINISH` \u0437\u0430\u043A\u0440\u044B\u043B \u0431\u044B \u0437\u0430\u0434\u0430\u0447\u0443 \u043C\u0438\u043C\u043E DoD, \u043F\u043E\u044D\u0442\u043E\u043C\u0443 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u043E\u0441\u043A\u0438 \u0442\u0430\u043A\u0443\u044E\n\u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u043D\u0435 \u043F\u0440\u0438\u043D\u0438\u043C\u0430\u044E\u0442 (\xA73) \u2014 \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0439 \u0442\u043E\u043B\u044C\u043A\u043E \u0442\u0430\u043A.\n\n```jsonc\n// \u0448\u0430\u0433 1\nbitrix_task_close { "taskId": 4229 }\n// \u043D\u0435 scrum-\u043F\u0440\u043E\u0435\u043A\u0442 \u0438\u043B\u0438 DoD \u043D\u0435 \u043D\u0443\u0436\u0435\u043D \u2192 \u0437\u0430\u0434\u0430\u0447\u0430 \u0441\u0440\u0430\u0437\u0443 \u0437\u0430\u043A\u0440\u044B\u0442\u0430: { taskId, status: 5, changed: true }\n// DoD \u043D\u0443\u0436\u0435\u043D \u2192 \u0437\u0430\u0434\u0430\u0447\u0430 \u041D\u0415 \u0437\u0430\u043A\u0440\u044B\u0442\u0430:\n// { taskId, needsConfirmation: true,\n// types: [{ id: 1, name: "\u2026", required: true, items: [{ title: "\u2026", group: "\u2026" }, \u2026] }, \u2026] }\n\n// \u0448\u0430\u0433 2 \u2014 \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u043E\u0441\u043B\u0435 \xAB\u0434\u0430\xBB \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043D\u0430 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E \u0442\u0438\u043F\u0430\nbitrix_task_close { "taskId": 4229, "typeId": 1, "confirmItems": true }\n// \u2192 { taskId, status: 5, changed: true, typeId: 1 }\n```\n\n- `types` \u2014 \u0442\u0438\u043F\u044B \u0437\u0430\u0434\u0430\u0447 \u043F\u0440\u043E\u0435\u043A\u0442\u0430 \u0438 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u043A\u0430\u0436\u0434\u043E\u0433\u043E; `required: true` \u2014 DoD \u0434\u043B\u044F \u0442\u0438\u043F\u0430 \u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u0435\u043D. `group` \u2014\n \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u0433\u0440\u0443\u043F\u043F\u044B \u0447\u0435\u043A-\u043B\u0438\u0441\u0442\u0430, \u0432 \u043A\u043E\u0442\u043E\u0440\u043E\u0439 \u043B\u0435\u0436\u0438\u0442 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0439 (\u0441\u0430\u043C\u0430 \u0433\u0440\u0443\u043F\u043F\u0430 \u0432 `items` \u043D\u0435 \u043F\u043E\u043F\u0430\u0434\u0430\u0435\u0442). \u041F\u043E\u043A\u0430\u0436\u0438\n \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0438 \u043F\u043E\u043B\u0443\u0447\u0438 \u0435\u0433\u043E \u044F\u0432\u043D\u043E\u0435 \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u0435 \u043E\u0442\u043C\u0435\u0442\u0438\u0442\u044C \u0438\u0445 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043D\u044B\u043C\u0438 \u0434\u043B\u044F \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E \u0442\u0438\u043F\u0430. \u0421\u0430\u043C \u0437\u0430\n \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043D\u0435 \u0440\u0435\u0448\u0430\u0439: \u043D\u0435\u0442 \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u044F \u2014 \u0448\u0430\u0433 2 \u043D\u0435 \u0432\u044B\u0437\u044B\u0432\u0430\u0439. **\u0422\u0438\u043F \u0432\u044B\u0431\u0438\u0440\u0430\u0435\u0442 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C**: \u0442\u0438\u043F \u0441\n `required: false` \u0437\u0430\u043A\u0440\u043E\u0435\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 \u0431\u0435\u0437 \u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0445 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0435\u0432 \u2014 \u0435\u0433\u043E \u0442\u043E\u0436\u0435 \u0431\u0435\u0440\u0438 \u0442\u043E\u043B\u044C\u043A\u043E \u0441 \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u044F\n \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F.\n- \u041D\u0430 \u0448\u0430\u0433\u0435 2 \u043E\u0442\u043C\u0435\u0447\u0430\u044E\u0442\u0441\u044F **\u0432\u0441\u0435** \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0442\u0438\u043F\u0430, \u0437\u0430\u0442\u0435\u043C \u0437\u0430\u0434\u0430\u0447\u0430 \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0435\u0442\u0441\u044F \u0438 \u0441\u0442\u0430\u0442\u0443\u0441 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442\u0441\u044F (\u043D\u0435\n \u0437\u0430\u043A\u0440\u044B\u043B\u0430\u0441\u044C \u2014 \u043E\u0448\u0438\u0431\u043A\u0430). `typeId` \u0438 `confirmItems: true` \u043F\u0435\u0440\u0435\u0434\u0430\u044E\u0442\u0441\u044F \u0442\u043E\u043B\u044C\u043A\u043E \u0432\u043C\u0435\u0441\u0442\u0435; \u0437\u0430\u0434\u0430\u0447\u0435 \u043D\u0435 \u0438\u0437\n scrum-\u043F\u0440\u043E\u0435\u043A\u0442\u0430 \u043E\u043D\u0438 \u043D\u0435 \u043D\u0443\u0436\u043D\u044B (\u043E\u0448\u0438\u0431\u043A\u0430 \u2014 \u0437\u0430\u043A\u0440\u043E\u0439 \u0435\u0451 \u0431\u0435\u0437 \u043D\u0438\u0445).\n- \u0423\u0436\u0435 \u0437\u0430\u043A\u0440\u044B\u0442\u0430\u044F \u0437\u0430\u0434\u0430\u0447\u0430 \u043D\u0435 \u0442\u0440\u043E\u0433\u0430\u0435\u0442\u0441\u044F (`changed: false`). \u0417\u0430\u043A\u0440\u044B\u0442\u0438\u0435 \u0432\u0438\u0434\u044F\u0442 \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443; \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438\n \u043F\u043E\u043B\u0443\u0447\u0430\u044E\u0442 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0435. \u0412\u043E\u0437\u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u2014 `bitrix_task_reopen { "taskIds": [4229] }`.\n- \xAB\u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 DoD \u043E\u0442\u043C\u0435\u0447\u0435\u043D\u044B \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043D\u044B\u043C\u0438, \u043D\u043E \u0437\u0430\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C\xBB \u2014 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0443\u0436\u0435 \u043E\u0442\u043C\u0435\u0447\u0435\u043D\u044B, \u0437\u0430\u0434\u0430\u0447\u0430\n \u043E\u0442\u043A\u0440\u044B\u0442\u0430. \xAB\u2026\u2014 \u0437\u0430\u043A\u0440\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0443 \u0432 \u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435\xBB \u2014 \u043C\u043E\u0441\u0442 \u043D\u0435 \u0441\u043C\u043E\u0433 \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044C DoD \u0438\u0437 \u043E\u0442\u0432\u0435\u0442\u0430 Bitrix; \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0438\n \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E \u0437\u0430\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u0432 \u0432\u0435\u0431-\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435.\n\n### 5.8. \u041F\u0440\u0438\u043A\u0440\u0435\u043F\u0438\u0442\u044C \u043B\u043E\u043A\u0430\u043B\u044C\u043D\u044B\u0439 \u0444\u0430\u0439\u043B \u043A \u0437\u0430\u0434\u0430\u0447\u0435\n\n```jsonc\nbitrix_task_file_attach { "taskId": 4229, "path": "/tmp/report.pdf" }\nbitrix_task_file_attach { "taskId": 4229, "path": "/tmp/out.csv", "name": "\u0438\u0442\u043E\u0433\u0438.csv" }\n// \u2192 { taskId, diskFileId, name, size, attachmentId }\n```\n\n- **\u0424\u0430\u0439\u043B \u0443\u0445\u043E\u0434\u0438\u0442 \u0441 \u043C\u0430\u0448\u0438\u043D\u044B**: \u043E\u043D \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044F \u0432 \u043A\u043E\u0440\u0435\u043D\u044C \u0414\u0438\u0441\u043A\u0430 \u0411\u0438\u0442\u0440\u0438\u043A\u044124 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u0438 \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u044F\u0435\u0442\u0441\u044F \u043A\n \u0437\u0430\u0434\u0430\u0447\u0435 \u2014 \u0435\u0433\u043E \u0443\u0432\u0438\u0434\u044F\u0442 \u0438 \u0441\u043C\u043E\u0433\u0443\u0442 \u0441\u043A\u0430\u0447\u0430\u0442\u044C \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443. \u041F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u044F\u0439 \u0442\u043E\u043B\u044C\u043A\u043E \u0442\u043E, \u0447\u0442\u043E \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\n \u044F\u0432\u043D\u043E \u043F\u043E\u043F\u0440\u043E\u0441\u0438\u043B; \u043B\u044E\u0431\u043E\u0439 \u0434\u0440\u0443\u0433\u043E\u0439 \u0444\u0430\u0439\u043B \u2014 \u0441\u043D\u0430\u0447\u0430\u043B\u0430 \u0441\u043F\u0440\u043E\u0441\u0438.\n- `path` \u2014 **\u0430\u0431\u0441\u043E\u043B\u044E\u0442\u043D\u044B\u0439** \u043F\u0443\u0442\u044C \u043A \u043E\u0431\u044B\u0447\u043D\u043E\u043C\u0443 \u043D\u0435\u043F\u0443\u0441\u0442\u043E\u043C\u0443 \u0444\u0430\u0439\u043B\u0443 \u0434\u043E 10 \u041C\u0411: \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F \u0432\u044B\u043F\u043E\u043B\u043D\u044F\u0435\u0442\u0441\u044F \u0432 \u043F\u0440\u043E\u0446\u0435\u0441\u0441\u0435\n daemon, \u0430 \u043D\u0435 \u0432 \u0442\u0432\u043E\u0451\u043C \u0440\u0430\u0431\u043E\u0447\u0435\u043C \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0435. `name` \u2014 \u0438\u043C\u044F \u0432 \u0411\u0438\u0442\u0440\u0438\u043A\u044124 (\u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u2014 \u0438\u0437 `path`, \u0431\u0435\u0437\n \u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B\u0435\u0439 \u043F\u0443\u0442\u0438); \u0435\u0441\u043B\u0438 \u0438\u043C\u044F \u043D\u0430 \u0414\u0438\u0441\u043A\u0435 \u0437\u0430\u043D\u044F\u0442\u043E, \u0411\u0438\u0442\u0440\u0438\u043A\u044124 \u0434\u043E\u0431\u0430\u0432\u0438\u0442 \u0441\u0443\u0444\u0444\u0438\u043A\u0441 \u2014 \u0438\u0442\u043E\u0433\u043E\u0432\u043E\u0435 \u0438\u043C\u044F \u0432 \u043E\u0442\u0432\u0435\u0442\u0435.\n- \u0418\u0437 \u0441\u043B\u0443\u0436\u0435\u0431\u043D\u043E\u0433\u043E \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0430 \u043C\u043E\u0441\u0442\u0430 (`~/.bitrix24-mcp-bridge` \u0438\u043B\u0438 `BITRIX24_MCP_BRIDGE_HOME`; \u0442\u0430\u043C \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0438\n \u0442\u043E\u043A\u0435\u043D) \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u044F\u044E\u0442\u0441\u044F \u0442\u043E\u043B\u044C\u043A\u043E \u0444\u0430\u0439\u043B\u044B, \u0441\u043A\u0430\u0447\u0430\u043D\u043D\u044B\u0435 \u043C\u043E\u0441\u0442\u043E\u043C, \u2014 \u0438\u0437 `downloads/` (\u0438\u0445 \u043C\u043E\u0436\u043D\u043E \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u0438\u0442\u044C \u043A \u0434\u0440\u0443\u0433\u043E\u0439\n \u0437\u0430\u0434\u0430\u0447\u0435). \u0412\u0441\u0451 \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u043E\u0435 \u0432 \u043D\u0451\u043C \u2014 \u043E\u0442\u043A\u0430\u0437, \u0432 \u0442\u043E\u043C \u0447\u0438\u0441\u043B\u0435 \u0447\u0435\u0440\u0435\u0437 \u0441\u0438\u043C\u043B\u0438\u043D\u043A \u0438\u043B\u0438 `..`.\n- \u041D\u0443\u0436\u043D\u043E \u043F\u0440\u0430\u0432\u043E \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u044F\u0442\u044C \u0444\u0430\u0439\u043B\u044B \u043A \u0437\u0430\u0434\u0430\u0447\u0435: \u0442\u043E\u043C\u0443, \u043A\u0442\u043E \u0437\u0430\u0434\u0430\u0447\u0443 \u0442\u043E\u043B\u044C\u043A\u043E \u0432\u0438\u0434\u0438\u0442, Bitrix \u043C\u043E\u0436\u0435\u0442 \u043E\u0442\u043A\u0430\u0437\u0430\u0442\u044C \u0443\u0436\u0435 \u043F\u043E\u0441\u043B\u0435\n \u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0438. \u0415\u0441\u043B\u0438 \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u0438\u0442\u044C \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C, \u0444\u0430\u0439\u043B **\u043E\u0441\u0442\u0430\u0451\u0442\u0441\u044F \u043D\u0430 \u0414\u0438\u0441\u043A\u0435** \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u2014 \u043E\u0448\u0438\u0431\u043A\u0430 \u043D\u0430\u0437\u044B\u0432\u0430\u0435\u0442 \u0435\u0433\u043E (\u0438\u043C\u044F\n \u0438 id); \u0441\u043A\u0430\u0436\u0438 \u043E\u0431 \u044D\u0442\u043E\u043C \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E.\n- \xAB\u0444\u0430\u0439\u043B \u043C\u043E\u0433 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C\u0441\u044F \u043D\u0430 \u0414\u0438\u0441\u043A\xBB \u2014 \u043F\u0440\u043E\u0432\u0435\u0440\u044C \u043A\u043E\u0440\u043D\u0435\u0432\u0443\u044E \u043F\u0430\u043F\u043A\u0443 \u0414\u0438\u0441\u043A\u0430 \u043F\u0435\u0440\u0435\u0434 \u043F\u043E\u0432\u0442\u043E\u0440\u043E\u043C; \xAB\u0432\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u043C\u043E\u0433\u043B\u043E\n \u0441\u043E\u0437\u0434\u0430\u0442\u044C\u0441\u044F\xBB \u2014 \u043F\u0440\u043E\u0432\u0435\u0440\u044C \u0444\u0430\u0439\u043B\u044B \u0437\u0430\u0434\u0430\u0447\u0438 (`bitrix_task_get` \u0441 `select: ["UF_TASK_WEBDAV_FILES"]` \u2192\n `bitrix_task_files`). \u041F\u043E\u0441\u043B\u0435 \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u0435\u043D\u0438\u044F \u0444\u0430\u0439\u043B\u044B \u0437\u0430\u0434\u0430\u0447\u0438 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u044E\u0442\u0441\u044F; \u0432\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u043D\u0435\u0442 \u2014 \u043E\u0448\u0438\u0431\u043A\u0430.\n\n### 5.9. \u041D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F \u0438 \u0441\u0432\u043E\u0438 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u043F\u043E \u0437\u0430\u0434\u0430\u0447\u0435\n\n\u041D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F \u0438 \u0432\u044B\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0439 \u043A\u0430\u0441\u0430\u044E\u0442\u0441\u044F **\u0442\u043E\u043B\u044C\u043A\u043E \u0442\u0435\u043A\u0443\u0449\u0435\u0433\u043E \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F**: \u0434\u0440\u0443\u0433\u0438\u0435 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u0438\u0445 \u043D\u0435\n\u0432\u0438\u0434\u044F\u0442 \u0438 \u043F\u043E\u043B\u0443\u0447\u0430\u044E\u0442 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u043A\u0430\u043A \u043F\u0440\u0435\u0436\u0434\u0435.\n\n```jsonc\nbitrix_task_reminders { "taskId": 4229 }\n// \u2192 { taskId, reminders: [{ id, at, via, remindBy, recipient, userId, mine }] }\nbitrix_task_reminder_set { "taskId": 4229, "at": "2026-12-01T09:00:00+03:00", "via": "notification" } // \u043D\u043E\u0432\u043E\u0435 \u2014 \u0442\u0435\u0431\u0435\nbitrix_task_reminder_set { "taskId": 4229, "reminderId": 61, "at": "2026-12-02T06:00:00Z", "via": "email" }\nbitrix_task_reminder_delete { "taskId": 4229, "reminderId": 61 }\nbitrix_task_mute { "taskId": 4229, "muted": true } // \u0432\u044B\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0441\u0432\u043E\u0438 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u043F\u043E \u0437\u0430\u0434\u0430\u0447\u0435\n```\n\n- \u041C\u0435\u043D\u044F\u0442\u044C \u0438 \u0443\u0434\u0430\u043B\u044F\u0442\u044C \u043C\u043E\u0436\u043D\u043E \u0442\u043E\u043B\u044C\u043A\u043E **\u0441\u0432\u043E\u0438** \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F \u2014 `mine: true` \u0432 `bitrix_task_reminders`; \u0447\u0443\u0436\u043E\u0435 \u0438\u043B\u0438\n \u043D\u0435 \u044D\u0442\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u2014 \u043E\u0448\u0438\u0431\u043A\u0430, \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u043C\u0435\u043D\u044F\u0435\u0442\u0441\u044F.\n- `at` \u2014 \u0430\u0431\u0441\u043E\u043B\u044E\u0442\u043D\u0430\u044F \u0434\u0430\u0442\u0430 **\u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043C** (\u0444\u043E\u0440\u043C\u0430\u0442 \u2014 \xAB\u0414\u0430\u0442\u044B\xBB, \xA73); `via` \u2014 `notification` (\u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0435 \u0432\n \u0411\u0438\u0442\u0440\u0438\u043A\u044124) \u0438\u043B\u0438 `email`. \u041D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 \u043E\u0442\u043D\u043E\u0441\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u0441\u0440\u043E\u043A\u0430 (`remindBy: "deadline"`) \u043F\u043E\u0441\u043B\u0435 \u043F\u0440\u0430\u0432\u043A\u0438 \u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0441\u044F\n \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435\u043C \u043D\u0430 \u0434\u0430\u0442\u0443; \u043F\u043E\u043B\u0443\u0447\u0430\u0442\u0435\u043B\u044C (`recipient`) \u043E\u0441\u0442\u0430\u0451\u0442\u0441\u044F \u043F\u0440\u0435\u0436\u043D\u0438\u043C.\n- \u041F\u043E\u0441\u043B\u0435 \u0437\u0430\u043F\u0438\u0441\u0438 \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 \u0438 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0439 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u044E\u0442\u0441\u044F; \u0435\u0441\u043B\u0438 \u043E\u043D\u0438 \u043D\u0435 \u0442\u0435 \u2014 \u043E\u0448\u0438\u0431\u043A\u0430.\n\n---\n\n\u041D\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0430 \u043F\u043E\u0434 \u043D\u0443\u0436\u043D\u043E\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u2014 \u0441\u043A\u0430\u0436\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E: \u043D\u043E\u0432\u044B\u0435 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u043E\u0431\u0430\u0432\u043B\u044F\u0435\u0442\n\u043C\u0435\u0439\u043D\u0442\u0435\u0439\u043D\u0435\u0440 \u043C\u043E\u0441\u0442\u0430 (\u043F\u0440\u043E\u0446\u0435\u0441\u0441 \u2014 `docs/reconnaissance.md` \u0432 \u0440\u0435\u043F\u043E\u0437\u0438\u0442\u043E\u0440\u0438\u0438 \u043C\u043E\u0441\u0442\u0430).\n' : load();
|
|
32013
32110
|
|
|
32014
32111
|
// src/tools/register.ts
|
|
32015
32112
|
function ok(data) {
|
|
@@ -32043,6 +32140,14 @@ function registerTools(server, deps) {
|
|
|
32043
32140
|
try {
|
|
32044
32141
|
const { portals, mutations } = await deps.sink.status();
|
|
32045
32142
|
const stale = portals.filter((p) => p.connected && p.extensionVersion !== PACKAGE_VERSION);
|
|
32143
|
+
const warnings = [];
|
|
32144
|
+
if (stale.length > 0) {
|
|
32145
|
+
warnings.push(
|
|
32146
|
+
`\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u0435 \u0443\u0441\u0442\u0430\u0440\u0435\u043B\u043E (${stale.map((p) => `${p.alias}: ${p.extensionVersion ?? "\u0434\u043E 0.3.0"}`).join(", ")}), \u043C\u043E\u0441\u0442 \u0432\u0435\u0440\u0441\u0438\u0438 ${PACKAGE_VERSION}. \u0424\u0430\u0439\u043B\u044B \u0443\u0436\u0435 \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u044B \u2014 \u043D\u0430\u0436\u043C\u0438 \xAB\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C\xBB \u043D\u0430 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u0438 \u0432 chrome://extensions \u0438 \u043F\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438 \u0432\u043A\u043B\u0430\u0434\u043A\u0443 \u043F\u043E\u0440\u0442\u0430\u043B\u0430, \u0438\u043D\u0430\u0447\u0435 \u043D\u043E\u0432\u044B\u0435 \u043C\u0435\u0442\u043E\u0434\u044B \u0440\u0430\u0431\u043E\u0442\u0430\u0442\u044C \u043D\u0435 \u0431\u0443\u0434\u0443\u0442.`
|
|
32147
|
+
);
|
|
32148
|
+
}
|
|
32149
|
+
const downloads = await downloadsWarning(deps.downloadsDir);
|
|
32150
|
+
if (downloads !== void 0) warnings.push(`${downloads}.`);
|
|
32046
32151
|
return ok({
|
|
32047
32152
|
configured: true,
|
|
32048
32153
|
defaultPortal: deps.defaultPortal,
|
|
@@ -32050,9 +32155,7 @@ function registerTools(server, deps) {
|
|
|
32050
32155
|
// null: the daemon is too old to report whether mutating operations are allowed.
|
|
32051
32156
|
mutations: mutations ?? null,
|
|
32052
32157
|
portals,
|
|
32053
|
-
...
|
|
32054
|
-
warning: `\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u0435 \u0443\u0441\u0442\u0430\u0440\u0435\u043B\u043E (${stale.map((p) => `${p.alias}: ${p.extensionVersion ?? "\u0434\u043E 0.3.0"}`).join(", ")}), \u043C\u043E\u0441\u0442 \u0432\u0435\u0440\u0441\u0438\u0438 ${PACKAGE_VERSION}. \u0424\u0430\u0439\u043B\u044B \u0443\u0436\u0435 \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u044B \u2014 \u043D\u0430\u0436\u043C\u0438 \xAB\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C\xBB \u043D\u0430 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u0438 \u0432 chrome://extensions \u0438 \u043F\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438 \u0432\u043A\u043B\u0430\u0434\u043A\u0443 \u043F\u043E\u0440\u0442\u0430\u043B\u0430, \u0438\u043D\u0430\u0447\u0435 \u043D\u043E\u0432\u044B\u0435 \u043C\u0435\u0442\u043E\u0434\u044B \u0440\u0430\u0431\u043E\u0442\u0430\u0442\u044C \u043D\u0435 \u0431\u0443\u0434\u0443\u0442.`
|
|
32055
|
-
} : {}
|
|
32158
|
+
...warnings.length > 0 ? { warning: warnings.join(" ") } : {}
|
|
32056
32159
|
});
|
|
32057
32160
|
} catch (e) {
|
|
32058
32161
|
return fail(e instanceof Error ? e.message : String(e));
|
|
@@ -32589,7 +32692,8 @@ async function runMcpClient() {
|
|
|
32589
32692
|
sink: client,
|
|
32590
32693
|
operations: OPERATIONS,
|
|
32591
32694
|
defaultPortal: cfg.defaultPortal,
|
|
32592
|
-
portals: Object.keys(cfg.portals)
|
|
32695
|
+
portals: Object.keys(cfg.portals),
|
|
32696
|
+
downloadsDir: paths.downloadsDir
|
|
32593
32697
|
});
|
|
32594
32698
|
await server.connect(new StdioServerTransport());
|
|
32595
32699
|
console.error("[mcp] bitrix24-bridge client running on stdio");
|