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/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 = resolve3.call(this, root, ref);
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 resolve3(root, ref) {
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 resolve3(baseURI, relativeURI, options) {
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: resolve3,
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((resolve3) => setTimeout(resolve3, pollInterval));
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((resolve3, reject) => {
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
- resolve3(parseResult.data);
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((resolve3, reject) => {
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(resolve3, interval);
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((resolve3) => setTimeout(resolve3, pollInterval));
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((resolve3) => {
24771
+ return new Promise((resolve4) => {
24772
24772
  const json = serializeMessage(message);
24773
24773
  if (this._stdout.write(json)) {
24774
- resolve3();
24774
+ resolve4();
24775
24775
  } else {
24776
- this._stdout.once("drain", resolve3);
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 dirname2 } from "node:path";
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((resolve3, reject) => {
24902
- this.wss = new import_websocket_server.default({ host: "127.0.0.1", port: this.opts.port }, () => resolve3());
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((resolve3, reject) => {
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: resolve3, reject, timer });
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((resolve3) => {
25053
- if (!this.wss) return resolve3();
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
- resolve3();
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
- resolve3();
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 BATCH_RESERVE_MS = 3e4;
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
- async function forEachTask(taskIds, fn, { budgetMs = BUDGET_TIMEOUT_MS.long, now = Date.now } = {}) {
25150
- const startBefore = now() + budgetMs - BATCH_RESERVE_MS;
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 (now() >= startBefore) {
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, { budgetMs = BUDGET_TIMEOUT_MS.long, now = Date.now } = {}) {
25168
- const startedAt = now();
25169
- const { results } = await forEachTask(taskIds, async (taskId) => ({ prepared: await steps.prepare(taskId) }), { budgetMs, now });
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
- return forEachTask(
25173
- taskIds,
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
- { budgetMs: budgetMs - (now() - startedAt), now }
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 = callTarget({ action: "tasks.v2.Task.get", method: "POST", bodyType: "json" });
25192
- var TASK_SCRUM_INFO = callTarget({ action: "tasks.v2.Scrum.getTaskInfo", method: "POST", bodyType: "json" });
25193
- var TASK_FILES = callTarget({ action: "tasks.v2.File.listObjects", method: "POST", bodyType: "json" });
25194
- var TASK_VIEWS_COUNT = callTarget({ action: "tasks.v2.Task.View.User.count", method: "POST", bodyType: "json" });
25195
- var TASK_SUBTASKS = callTarget({ action: "tasks.v2.Task.Relation.Child.list", method: "POST", bodyType: "json" });
25196
- var TASK_RELATED = callTarget({ action: "tasks.v2.Task.Relation.Related.list", method: "POST", bodyType: "json" });
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 = callTarget({ action: "ui.entityselector.load", method: "POST", bodyType: "json" });
25213
- var ENTITYSELECTOR_SEARCH = callTarget({ action: "ui.entityselector.doSearch", method: "POST", bodyType: "json" });
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 parseResponse(taskResponse, raw, "tasks.task.get").result.task;
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 = callTarget({ action: "tasks.v2.Task.Result.add", method: "POST", bodyType: "json" });
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 parseResponse(descriptionResponse, raw, "tasks.v2.Task.get (description)").data.description ?? "";
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 parseResponse(responsibleResponse, raw, "tasks.task.get").result.task;
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 parseResponse(response, raw, "tasks.task.get").result.task[def.key];
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, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0443\u0436\u0435 \u0432 \u0431\u044D\u043A\u043B\u043E\u0433\u0435, \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, changed }] } \u2014 \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u043D\u043E \u043F\u043E\u0441\u043B\u0435 \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0430.",
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
- if (task.entityId === backlogId) return { backlogId, changed: false };
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 = callTarget({ action: "tasks.v2.Task.update", method: "POST", bodyType: "json" });
25873
- var PLAN_UPDATE = callTarget({ action: "tasks.v2.Task.Plan.update", method: "POST", bodyType: "json" });
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 parseResponse(tagsResponse, raw, "tasks.v2.Task.get (tags)").data.tags.map((t) => t.name);
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 } = parseResponse(planResponse, raw, "tasks.v2.Task.get (plan dates)").data;
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
- for (const id of remove) {
26071
- if (gone.has(id)) continue;
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 parseResponse(schema, raw, `tasks.v2.Task.get (${what})`);
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 parseResponse(taskChatResponse, raw, "tasks.task.get").result.task.chatId;
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) => downloadToDisk(ctx, ctx.origins, { ...a, fallbackName: "bitrix-file" })
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
- return downloadToDisk(ctx, { [ctx.portal]: ctx.origin }, { url: detail.recording.url, savePath, overwrite, fallbackName: `call-${detail.id}.mp3` });
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 resolve2, sep } from "node:path";
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 parseResponse(taskFilesResponse, raw, "tasks.task.get").result.task.ufTaskWebdavFiles ?? [];
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(() => resolve2(dir));
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 v22 = (action) => callTarget({ action, method: "POST", bodyType: "json" });
31251
- var STATUS_COMPLETE = v22("tasks.v2.Task.Status.complete");
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 v23 = (action) => callTarget({ action, method: "POST", bodyType: "json" });
31417
- var RELATED_ADD = v23("tasks.v2.Task.Relation.Related.add");
31418
- var RELATED_DELETE = v23("tasks.v2.Task.Relation.Related.delete");
31419
- var CHILD_ADD = v23("tasks.v2.Task.Relation.Child.add");
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 parseResponse(parentResponse, raw, "tasks.task.get").result.task.parentId;
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 parseResponse(ganttFlagResponse, raw, "tasks.v2.Task.get (containsGanttLinks)").data.containsGanttLinks;
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: '\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. type \u2014 \u0442\u043E\u043B\u044C\u043A\u043E "finish_start" (\u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E) \u0438 \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u0440\u0438 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u0438. \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. \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? }.',
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.0.0" : DEV_VERSION;
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(dirname2(sockPath), { recursive: true, mode: 448 });
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((resolve3, reject) => {
31759
+ await new Promise((resolve4, reject) => {
31663
31760
  this.uds.once("error", reject);
31664
- this.uds.listen(sockPath, () => resolve3());
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((resolve3, reject) => {
31959
+ return new Promise((resolve4, reject) => {
31863
31960
  const s = connect(this.opts.sockPath);
31864
- s.once("connect", () => resolve3(s));
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((resolve3, reject) => {
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: resolve3, reject, timer, sock });
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((resolve3) => {
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
- resolve3(v);
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
- ...stale.length > 0 ? {
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");